Wim Taymans [Fri, 10 Jun 2011 14:19:46 +0000 (16:19 +0200)]
memory: fix is_span
Subtract the offset of the parent from is_span.
Wim Taymans [Fri, 10 Jun 2011 11:59:31 +0000 (13:59 +0200)]
memory: respect configured alignment
Move the alignment from GstBuffer to GstMemory.
make sure memory is at least aligned to the configured values.
Wim Taymans [Fri, 10 Jun 2011 11:40:57 +0000 (13:40 +0200)]
buffer: make new _buffer_allocate method
Make a new method to allocate a buffer + memory that takes the allocator and the
alignment as parameters. Provide a macro for the old method but prefer to use
the new method to encourage plugins to negotiate the allocator properly.
Edward Hervey [Fri, 10 Jun 2011 11:44:19 +0000 (13:44 +0200)]
design: part-bufferlist.txt was merged into another doc
Edward Hervey [Fri, 10 Jun 2011 11:34:59 +0000 (13:34 +0200)]
docs: Update sections files for added/removed symbols
Edward Hervey [Fri, 10 Jun 2011 11:10:42 +0000 (13:10 +0200)]
win32: Update for added/removed symbols
Wim Taymans [Fri, 10 Jun 2011 11:04:23 +0000 (13:04 +0200)]
basesrc: add fill vmethod to basesrc
Add a new fill virtual method to basesrc. The purpose of this method is to fill
a provided buffer with data.
Add a default implementation of the create method that allocates a buffer and
calls the fill method on it. This would allow the base class to implement
bufferpool and allocator negotiation on behalf of the subclasses.
Fix the blocksize property.
Make filesrc use the new fill method.
Wim Taymans [Fri, 10 Jun 2011 10:09:49 +0000 (12:09 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstelementfactory.c
gst/gstelementfactory.h
gst/gstpad.h
gst/gstpluginfeature.c
gst/gstpluginfeature.h
Wim Taymans [Fri, 10 Jun 2011 09:55:08 +0000 (11:55 +0200)]
event: add reset_time boolean to flush_stop event
Add a boolean to the flush_stop event to make it possible to implement flushes
that don't reset_time.
Make basesink post async_done with the reset_time property from the flush stop
event.
Fix some unit tests
Javier Jardón [Thu, 9 Jun 2011 16:13:35 +0000 (17:13 +0100)]
Use "const" instead G_CONST_RETURN
G_CONST_RETURN will be deprecated soon.
https://bugzilla.gnome.org/show_bug.cgi?id=652211
Wim Taymans [Thu, 9 Jun 2011 11:37:28 +0000 (13:37 +0200)]
pad: use new event methods to replace events
Using the new event methods, we can atomically transfer the event from the
pending list to the active list.
Wim Taymans [Thu, 9 Jun 2011 11:36:52 +0000 (13:36 +0200)]
event: make macros for new miniobject methods
Wim Taymans [Thu, 9 Jun 2011 11:35:08 +0000 (13:35 +0200)]
miniobject: add new methods to manage miniobject pointers
Add a new method to steal the miniobject stored at a location.
Add a new method to store a miniobject in a location and taking ownership
of the miniobject.
Wim Taymans [Thu, 9 Jun 2011 11:34:19 +0000 (13:34 +0200)]
pad: fix header
Wim Taymans [Thu, 9 Jun 2011 10:31:47 +0000 (12:31 +0200)]
pad: fix spurious include
Wim Taymans [Thu, 9 Jun 2011 10:01:02 +0000 (12:01 +0200)]
Merge branch 'master' into 0.11
Conflicts:
libs/gst/base/gstbasesrc.c
Wim Taymans [Thu, 9 Jun 2011 09:39:08 +0000 (11:39 +0200)]
pad: forward events by default
Always forward all events in the default handler. Previously it used to not
forward caps events by default. It makes more sense to forward the caps events,
if the element is interested in the caps, it will implement an event handler to
retrieve the caps and then it can decide to forward or not. If the element has
no event handler, it probably just doesn't care about caps and it probably is
also not going to modify the data in a way that needs a caps change.
Wim Taymans [Thu, 9 Jun 2011 09:13:55 +0000 (11:13 +0200)]
buffer: fix typo in docs
Mark Nauwelaerts [Wed, 8 Jun 2011 16:22:36 +0000 (18:22 +0200)]
filesrc/fdsrc: indicate dynamic size handling to basesrc
Mark Nauwelaerts [Wed, 8 Jun 2011 16:22:03 +0000 (18:22 +0200)]
basesrc: add dynamic size handling
This allows subclass to indicate that size reported by src may not be static
and should as such be updated regularly, rather than only when really
needed.
Particular examples are filesrc or fdsrc reading from a file that is still
growing (e.g. being downloaded).
Fixes #652037.
Mark Nauwelaerts [Wed, 8 Jun 2011 18:14:16 +0000 (20:14 +0200)]
Revert "basesrc: Send an update NEWSEGMENT event downstream if the duration changes"
This reverts commit
934faf163caf10ed3d54d81fd7b793069913dffd.
Original commit leads to possibly sending newsegment event downstream
in pull mode. In push mode, quite some downstream elements
are likely to only expect newsegment event following a seek they performed
and as such may have their state messed up.
Wim Taymans [Wed, 8 Jun 2011 16:35:16 +0000 (18:35 +0200)]
basesink: inline the clip segment
Wim Taymans [Wed, 8 Jun 2011 15:25:43 +0000 (17:25 +0200)]
message: rename variable
Rename the new_base_time variable to reset_time, which looks better.
Wim Taymans [Wed, 8 Jun 2011 14:41:05 +0000 (16:41 +0200)]
segment: separate the seek and segment flags
Separate the seek flags and segment flags as separate enums because we might
want to have different flags for both.
Wim Taymans [Wed, 8 Jun 2011 11:40:32 +0000 (13:40 +0200)]
message: move the new_base_time flag to async_done
Move the flag to indicate that a new_base_time should be distributed to the
pipeline, from the async_start to the async_done message. This would allow us to
decide when to reset the pipeline time based on other reasons than the
FLUSH_START event.
The main goal eventually is to make the FLUSH events not reset time at all but
reset the time based on the first buffer or segment that prerolls the pipeline
again.
Edward Hervey [Wed, 8 Jun 2011 11:39:19 +0000 (13:39 +0200)]
docs: Update gstreamer-sections for new/removed API
Edward Hervey [Wed, 8 Jun 2011 11:30:49 +0000 (13:30 +0200)]
gstbuffer: Remove deprecated GST_BUFFER_* macros
data, size, mallocdata and free_func no longer exist.
Edward Hervey [Wed, 8 Jun 2011 11:06:17 +0000 (13:06 +0200)]
win32: Update for added/removed symbols
Wim Taymans [Wed, 8 Jun 2011 10:58:29 +0000 (12:58 +0200)]
pad: remove setcaps function
Remove the setcaps function, elements should use the caps event to be informed
of the format.
Wim Taymans [Wed, 8 Jun 2011 10:04:49 +0000 (12:04 +0200)]
memory: Require implementation to implement _share
Require the memory implementations to implement a share operation. This allows
us to remove the fallback share implementation which uses a different allocator
implementation and complicates things too much.
Update design doc a bit.
Wim Taymans [Wed, 8 Jun 2011 09:03:50 +0000 (11:03 +0200)]
memory: cleanups and improve docs
Make the fallback copy use the same memory allocator as the original object.
Improve some docs.
Require an alloc function when registering an allocator.
Remove gst_memory_allocator_get_default() and merge the feature in
gst_memory_allocator_find()
Fix locks on the hashtable.
Remove defined but not-implemented gst_memory_span() method.
Wim Taymans [Tue, 7 Jun 2011 16:18:27 +0000 (18:18 +0200)]
docs: add beginnings of memory design doc
Wim Taymans [Tue, 7 Jun 2011 15:54:33 +0000 (17:54 +0200)]
memory: pass user_data to the alloc function
Pass the user data that was passed to _register to the alloc function of an
allocator.
Wim Taymans [Tue, 7 Jun 2011 15:34:17 +0000 (17:34 +0200)]
memory: fix some typos
Wim Taymans [Tue, 7 Jun 2011 15:03:09 +0000 (17:03 +0200)]
filesrc: remove MMAP code
Remove the mmap code, it was disabled and probably needs a complete rewrite
anyway if this is to be ported to 0.11.
Wim Taymans [Tue, 7 Jun 2011 14:35:07 +0000 (16:35 +0200)]
query: add methods to query allocators
Add API to add and query allocator implementations to/from the ALLOCATION query.
Wim Taymans [Tue, 7 Jun 2011 14:14:50 +0000 (16:14 +0200)]
memory: use allocators to allocate memory
Rename the GstMemoryImpl to GstMemoryAllocator because that's really what it is.
Add an alloc vmethod to the allocator members.
Improve registration of allocators.
Add methods to get and set the default allocator
Always use an allocator to allocate memory, use the default allocator when NULL
is passed.
Add user_data to the allocator Info so that we can pass extra info to the
allocator new method.
Tim-Philipp Müller [Tue, 7 Jun 2011 12:03:29 +0000 (13:03 +0100)]
docs: minor fix and clarification
Wim Taymans [Tue, 7 Jun 2011 11:38:35 +0000 (13:38 +0200)]
event: move some more defines on top
Wim Taymans [Tue, 7 Jun 2011 11:25:26 +0000 (13:25 +0200)]
fix some circular includes
typedef some structs before including other files to avoid circular dependencies
in the header files.
Edward Hervey [Tue, 7 Jun 2011 09:01:36 +0000 (11:01 +0200)]
win32: Update for added/removed symbols
Edward Hervey [Mon, 6 Jun 2011 10:23:04 +0000 (12:23 +0200)]
check/tee: Pads need to be activated before caps are set
Also add debugging to figure out what's going on
Wim Taymans [Tue, 7 Jun 2011 08:52:02 +0000 (10:52 +0200)]
utils: remove proxy_setcaps
Remove proxy_setcaps, elements should use the caps event and forward caps
themselves.
Wim Taymans [Tue, 7 Jun 2011 08:51:23 +0000 (10:51 +0200)]
outputselector: fix refcounting of events
_pad_event_forward() takes ownership of the caps.
Wim Taymans [Tue, 7 Jun 2011 08:49:34 +0000 (10:49 +0200)]
pad: Improve pad event forward code
Return TRUE when the pad has no parent or when there are no internally linked
pads.
Wim Taymans [Tue, 7 Jun 2011 08:04:52 +0000 (10:04 +0200)]
plugins: use the caps event
Use the caps event and avoid using the setcaps function. Use some of the new pad
forward functions to implement desired behaviour.
Wim Taymans [Tue, 7 Jun 2011 08:02:06 +0000 (10:02 +0200)]
pad: Rename and rework the dispatcher function
Rename gst_pad_dispatcher() to gst_pad_forward() and make it more useful by
iterating the internal links of a pad and handling resync properly.
Add a method gst_pad_event_forward() that unconditionally forwards an event to
all internally linked pads.
Update some pad code to use the new forward function.
Wim Taymans [Tue, 7 Jun 2011 07:43:20 +0000 (09:43 +0200)]
caps: use the caps event
Use the caps event instead of gst_pad_set_caps() and the setcaps function
Wim Taymans [Mon, 6 Jun 2011 14:11:31 +0000 (16:11 +0200)]
docs: go over design docs and fix things
Remove bufferlist part, it's merged with part-buffer.txt
Edward Hervey [Mon, 6 Jun 2011 09:21:23 +0000 (11:21 +0200)]
gst: Add enum/flags (de)registration in gst_(de)init
Edward Hervey [Mon, 6 Jun 2011 09:20:29 +0000 (11:20 +0200)]
basesink: Don't accept segments after EOS
And refactor the code slightly to avoid code duplication.
This solves a regression introduced by
bdbc0693
Edward Hervey [Mon, 6 Jun 2011 08:27:57 +0000 (10:27 +0200)]
check/ghostpad: Activate pads before checking for caps forwarding/setting
This is now done via in-band events, so the pads need to be active
Tim-Philipp Müller [Sun, 5 Jun 2011 17:11:22 +0000 (18:11 +0100)]
docs: update for API changes
Also remove GST_PAD_CHECKGETRANGEFUNC macro
Tim-Philipp Müller [Sun, 5 Jun 2011 14:46:54 +0000 (15:46 +0100)]
Merge branch 'master' into 0.11
Tim-Philipp Müller [Sat, 4 Jun 2011 14:42:13 +0000 (15:42 +0100)]
parse: add prototypes for unused functions to avoid compiler warning
The warning is never fatal, because we don't use -Werror for the
parser helper library build, but the warnings are annoying anyway.
Tim-Philipp Müller [Sun, 5 Jun 2011 13:10:50 +0000 (14:10 +0100)]
tools: remove unversioned gst-launch, gst-inspect and gst-typefind
The unversioned tool wrappers are confusing and annoying for packagers,
users and developers alike. A gst-launch pipeline that works in 0.10
will likely not work in 0.11 (e.g. because elements or properties get
renamed, or syntax changes). The unversioned tools also yield useless
results when used with gdb or valgrind. Packagers need to co-ordinate
the packaging of all major versions to make sure there are no conflicts
when both try to install the same files. When two major versions are
in use (e.g. 0.10 and 0.11/1.0), it may be unclear (when looking at
things on IRC/pastebin/mailing list etc.) which version is actually
being used when there are unversioned wrappers. For all these reasons,
it seems best to just remove them for now.
Tim-Philipp Müller [Sat, 4 Jun 2011 15:04:35 +0000 (16:04 +0100)]
win32: update exports and other things
Tim-Philipp Müller [Sat, 4 Jun 2011 14:44:39 +0000 (15:44 +0100)]
po: update for new translatable string and removed strings
Tim-Philipp Müller [Sat, 4 Jun 2011 14:23:56 +0000 (15:23 +0100)]
info: remove GST_XML debug category as well
Tim-Philipp Müller [Sat, 4 Jun 2011 14:22:06 +0000 (15:22 +0100)]
Remove everything libxml2- and loadsave-related
Tim-Philipp Müller [Sat, 4 Jun 2011 13:41:16 +0000 (14:41 +0100)]
tools: remove SIGUSR* handling from gst-launch
Remove SIGUSR* handling from gst-launch, since it might interfere
with other things (e.g. libleaks), and should be done differently
anyway (either via support for simple timed-commands scripting or
remote control via DBus or so).
Tim-Philipp Müller [Sat, 4 Jun 2011 13:28:08 +0000 (14:28 +0100)]
tools: remove gst-xmlinspect
People should just query the registry themselves or write a small
python script if they need this functionality (which is likely
less work than parsing the XML that this script outputs, and I'm
not aware of anything using the xml2text xsl either).
Tim-Philipp Müller [Sat, 4 Jun 2011 13:22:05 +0000 (14:22 +0100)]
tools: remove gst-feedback
It's not really that useful, and no one's been using it for years.
Tim-Philipp Müller [Sat, 4 Jun 2011 13:13:07 +0000 (14:13 +0100)]
tools, tests: fix some unused-but-set-variable compiler warnings
Tim-Philipp Müller [Sat, 4 Jun 2011 13:02:23 +0000 (14:02 +0100)]
po: update for new translatable string
David Schleef [Sat, 4 Jun 2011 07:30:15 +0000 (00:30 -0700)]
Work around changes in g_atomic API
See #651514 for details. It's apparently impossible to write code
that avoids both type punning warnings with old g_atomic headers and
assertions in the new. Thus, macros and a version check.
Edward Hervey [Fri, 3 Jun 2011 16:10:24 +0000 (18:10 +0200)]
gstpad: Small doc fixup
Edward Hervey [Fri, 3 Jun 2011 13:53:21 +0000 (15:53 +0200)]
win32: Update .def for latest APi changes
Wim Taymans [Fri, 3 Jun 2011 15:24:45 +0000 (17:24 +0200)]
pad: clean up probe flags
Wim Taymans [Fri, 3 Jun 2011 15:24:21 +0000 (17:24 +0200)]
docs: first version of probes document
Wim Taymans [Fri, 3 Jun 2011 14:46:26 +0000 (16:46 +0200)]
pad: check flushing in pullrange too
Wim Taymans [Fri, 3 Jun 2011 11:56:04 +0000 (13:56 +0200)]
pad: cleanups
Use defines instead of hardcoded values for masks.
Wim Taymans [Fri, 3 Jun 2011 11:25:54 +0000 (13:25 +0200)]
structure: fix some more 0.11 fixmes
don't allow spaces in structure names and fix unit tests.
Wim Taymans [Fri, 3 Jun 2011 10:43:32 +0000 (12:43 +0200)]
docs: update bufferpool design doc
Move the bufferpool design doc from draft to part and merge it with
the allocation draft.
Wim Taymans [Fri, 3 Jun 2011 10:40:56 +0000 (12:40 +0200)]
bufferpool: make the default behaviour to wait
The most common case is to not specify any flags when doing the allocation. Make
the allocation from a pool with a maximum amount of buffers block by default for
this reason.
Wim Taymans [Fri, 3 Jun 2011 09:15:30 +0000 (11:15 +0200)]
docs: update porting doc
Wim Taymans [Thu, 2 Jun 2011 17:24:26 +0000 (19:24 +0200)]
baseparse: use caps event instead of setcaps
Wim Taymans [Thu, 2 Jun 2011 17:23:47 +0000 (19:23 +0200)]
ghostpad: remove setcaps functions
Remove the setcaps functions, it is now handled with the caps event.
Wim Taymans [Thu, 2 Jun 2011 16:28:54 +0000 (18:28 +0200)]
buffer: pass the right alignment
Wim Taymans [Thu, 2 Jun 2011 16:28:17 +0000 (18:28 +0200)]
memmory: small cleanup
Wim Taymans [Thu, 2 Jun 2011 16:13:33 +0000 (18:13 +0200)]
memory: fix alignment calculations
Fix the alignment calculation.
Improve documentation.
Wim Taymans [Thu, 2 Jun 2011 16:13:10 +0000 (18:13 +0200)]
pool: debug the config
Wim Taymans [Thu, 2 Jun 2011 13:38:43 +0000 (15:38 +0200)]
utils: remove some macros now in glib
We depend on the right glib now
Wim Taymans [Thu, 2 Jun 2011 13:38:29 +0000 (15:38 +0200)]
structure: fix a FIXME
Wim Taymans [Thu, 2 Jun 2011 13:38:04 +0000 (15:38 +0200)]
utils: use g_printerr() as stated in the FIXME
Wim Taymans [Thu, 2 Jun 2011 13:37:41 +0000 (15:37 +0200)]
element: small cleanups
Wim Taymans [Thu, 2 Jun 2011 12:09:46 +0000 (14:09 +0200)]
element: inline the recursice state lock
Wim Taymans [Thu, 2 Jun 2011 11:46:26 +0000 (13:46 +0200)]
pad: inline the recursive stream lock
Wim Taymans [Thu, 2 Jun 2011 11:35:52 +0000 (13:35 +0200)]
pad: remove unused fields and methods and signals
Wim Taymans [Thu, 2 Jun 2011 11:23:53 +0000 (13:23 +0200)]
pad: use new gst_value_fixate instead
Use the new gst_value_fixate() function instead of our own version.
Wim Taymans [Thu, 2 Jun 2011 11:21:55 +0000 (13:21 +0200)]
value: add function to fixate a value
Add a function to fixate a GValue. This is the same function as is in GstPad.
Wim Taymans [Thu, 2 Jun 2011 11:18:39 +0000 (13:18 +0200)]
caps: remove some custom refcounting methods
Remove some custom made refcounting methods and use the miniobject ones instead.
Wim Taymans [Thu, 2 Jun 2011 10:40:05 +0000 (12:40 +0200)]
pad: optimize linking
Optimize linking by only releasing the pad locks when there are link functions
installed on the pads.
Add some G_LIKELY here and there.
Move error paths out of the main code flow.
Wim Taymans [Thu, 2 Jun 2011 10:39:34 +0000 (12:39 +0200)]
pad: remove deprecated have-data signal
Wim Taymans [Thu, 2 Jun 2011 09:21:09 +0000 (11:21 +0200)]
pad: add idle probe for pull method too
Wim Taymans [Thu, 2 Jun 2011 09:01:31 +0000 (11:01 +0200)]
pad: more cleanups
Use miniobject unref when we can
Reuse existing data type identifier instead of an extra boolean.
Wim Taymans [Wed, 1 Jun 2011 17:47:10 +0000 (19:47 +0200)]
Merge branch 'master' into 0.11
Conflicts:
plugins/elements/gstoutputselector.c
Wim Taymans [Wed, 1 Jun 2011 17:27:55 +0000 (19:27 +0200)]
pad: further improve probes and pad blocking
Keep track of installed number of probes to shortcut emission.
Allow NULL callbacks, this is useful for blocking probes.
Improve probe selection based on the mask, an empty mask for the data or the
scheduling flags equals that all probes match.
Add some more debug info.
Don't check the flushing flag in the probe callback handler, this needs to be
done before calling the handler.
Fix blocking probes.
Fix unit tests
Wim Taymans [Tue, 31 May 2011 17:16:09 +0000 (19:16 +0200)]
pad: implement pad block with probes
Wim Taymans [Mon, 30 May 2011 17:03:38 +0000 (19:03 +0200)]
utils: remove _full variants of probes
Remove the _full variants and add the destroy notify to the regular methods.