Wim Taymans [Sat, 30 Jul 2011 12:04:43 +0000 (14:04 +0200)]
bufferpool: add method to check for an option
Add a method to check if an option is supported on the bufferpool.
Wim Taymans [Fri, 29 Jul 2011 15:10:09 +0000 (17:10 +0200)]
bufferpool: add options API to bufferpool
Make it possible to query the supported options of a bufferpool and enable
options. This is a bit more generic than the API to enable metadata. The purpose
is to make it possible to add new custom config options to the configuration of
the bufferpool when supported.
Tim-Philipp Müller [Thu, 28 Jul 2011 11:11:36 +0000 (12:11 +0100)]
element: don't use G_CONST_RETURN
It's been deprecated in newer GLib versions
Tim-Philipp Müller [Thu, 28 Jul 2011 11:01:58 +0000 (12:01 +0100)]
manual: update for position/duration query API change
Tim-Philipp Müller [Tue, 26 Jul 2011 23:28:50 +0000 (00:28 +0100)]
tests: update for query API changes
Tim-Philipp Müller [Tue, 26 Jul 2011 23:28:19 +0000 (00:28 +0100)]
plugins: update for query API changes
Tim-Philipp Müller [Tue, 26 Jul 2011 23:26:43 +0000 (00:26 +0100)]
base: update for query API changes
Tim-Philipp Müller [Tue, 26 Jul 2011 23:17:02 +0000 (00:17 +0100)]
gst: fix awkward dest_format inout parameter in query utility functions
The idea was originally that if one passed &dest_fmt with
dest_fmt=GST_FORMAT_DEFAULT, then the code answering the query
could change dest_fmt to the actual default format used. However,
in more than half a decade of GStreamer 0.10 no piece of code in
GStreamer has ever used that feature, nor are there that many
users of this API that actually check whether the format returned
is the original format passed before using the values returned.
Also, it's just annoying-to-use API in its own right.
For all these reasons, make it so that the destination format is
passed directly and can't be changed by the element queried.
Wim Taymans [Wed, 27 Jul 2011 10:50:39 +0000 (12:50 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Wed, 27 Jul 2011 10:49:40 +0000 (12:49 +0200)]
basetransform: add more comments
Wim Taymans [Wed, 27 Jul 2011 11:45:17 +0000 (12:45 +0100)]
basetrans: also pass allocation query in in_place
When we are doing an in_place transform, don't do the allocation query but let
the upstream element decide.
Evan Nemerson [Wed, 27 Jul 2011 05:41:59 +0000 (22:41 -0700)]
base: add missing (out) annotation for byte reader/writer functions
https://bugzilla.gnome.org/show_bug.cgi?id=655381
Tim-Philipp Müller [Wed, 27 Jul 2011 09:09:11 +0000 (10:09 +0100)]
elementfactory: fix g-i annotation for _create() and _make() to allow NULL object names
Wim Taymans [Tue, 26 Jul 2011 16:48:20 +0000 (18:48 +0200)]
pad: improve the getcaps function
Refactor calling the GETCAPS function and checks.
Move the filter code in one place.
When using fixed pad caps, get the currently configured caps and then fallback
to the GETCAPS function. We used to simply ignore the GETCAPS function, which
resulted in transform elements returning the template caps instead of doing the
caps transform.
Wim Taymans [Tue, 26 Jul 2011 13:43:55 +0000 (15:43 +0200)]
pad: only update caps when changed
Only call the event function with the caps event when the caps changed.
Wim Taymans [Tue, 26 Jul 2011 12:37:51 +0000 (14:37 +0200)]
basesrc: add some more debug info
Wim Taymans [Tue, 26 Jul 2011 10:21:38 +0000 (12:21 +0200)]
basesink: make it easy to override the pad query
Add a vmethod to handle the pad query.
Install a default handler for the pad query.
Add a vmethod to setup the allocation properties.
Use the new query function in filesink
Wim Taymans [Tue, 26 Jul 2011 10:20:55 +0000 (12:20 +0200)]
basesrc: improve docs
Wim Taymans [Tue, 26 Jul 2011 10:20:04 +0000 (12:20 +0200)]
pad: add allocation query just because
Wim Taymans [Mon, 25 Jul 2011 13:21:21 +0000 (15:21 +0200)]
poll: improve debugging
Wim Taymans [Mon, 25 Jul 2011 10:53:10 +0000 (12:53 +0200)]
miniobject: avoid race in bufferpool release
Avoid playing with the refcount to decide when a buffer has been recycled by the
dispose function. The problem is that we then temporarily can have a buffer with
a refcount > 1 being acquired from the pool, which is not writable. Instead use
a simple boolean return value from the dispose function to inform the called
that the object was recycled or not.
Wim Taymans [Mon, 25 Jul 2011 10:49:24 +0000 (12:49 +0200)]
basesrc: use DEBUG instead of ERROR for logging
Don't use the ERROR log category because the allocation failure migh only be
bacause of a state change.
Wim Taymans [Mon, 25 Jul 2011 11:14:16 +0000 (12:14 +0100)]
bufferpool: start with raised control socket
In the inactive state, the control socket should be in the raised state, we will
release it when we start.
Stefan Kost [Sun, 24 Jul 2011 09:24:44 +0000 (11:24 +0200)]
pwd: discontinous event -> newsegment event
Fix a 0.8 leftover as mentioned on bug #621121.
Wim Taymans [Sun, 24 Jul 2011 07:05:22 +0000 (09:05 +0200)]
talk about the basetransform sink_event vmethod
Tim-Philipp Müller [Sat, 23 Jul 2011 07:00:09 +0000 (08:00 +0100)]
controller: fix build failure due to compiler warning
Presumably with newer GLib version.
https://bugzilla.gnome.org/show_bug.cgi?id=655155
Wim Taymans [Fri, 22 Jul 2011 19:17:42 +0000 (21:17 +0200)]
basetransform: fix sink event handling
Implement the sink event handling like the src event handler. Make the default
implementation parse and forward the event. This makes it possible to actually
return an error value from the event handler.
Wim Taymans [Fri, 22 Jul 2011 17:19:59 +0000 (19:19 +0200)]
basetransform: handle failures
Handle failure to activate the bufferpool.
Wim Taymans [Fri, 22 Jul 2011 17:11:56 +0000 (19:11 +0200)]
basetrans: improve debugging.
Wim Taymans [Thu, 21 Jul 2011 16:50:25 +0000 (18:50 +0200)]
bufferpool: add reset_buffer vmethod
Add a vmethod to reset a buffer to its original state. Add a default
implementation that resets the flags, timestamps and offsets.
Add some more docs.
Wim Taymans [Thu, 21 Jul 2011 15:42:08 +0000 (17:42 +0200)]
basetrans: Remove ref in passthrough
Remove the requirement to have to return a ref to the input buffer when in
passthrough mode. This saves a few ref/unref cycles and fixes another 0.11
FIXME.
Wim Taymans [Thu, 21 Jul 2011 15:29:13 +0000 (17:29 +0200)]
basetransform: make new copy_metadata vmethod
Make a new copy_metadata vmethod and move the code to copy the timestamps, flags
and offsets into a default implementation. This will allow us to give the
subclasses a chance to override the copy method.
Wim Taymans [Thu, 21 Jul 2011 14:49:13 +0000 (16:49 +0200)]
Merge branch 'master' into 0.11
Conflicts:
libs/gst/base/gstbaseparse.c
libs/gst/base/gstbasesink.c
Wim Taymans [Thu, 21 Jul 2011 14:39:04 +0000 (16:39 +0200)]
basetrans: avoid intermediate method
Simply call the prepare_output_buffer method instead of calling an intermediate
function.
Wim Taymans [Thu, 21 Jul 2011 14:30:07 +0000 (16:30 +0200)]
basetransform: move the metadata copy code
Move the metadata copy code to the default prepare_output_buffer implementation.
Wim Taymans [Thu, 21 Jul 2011 13:49:00 +0000 (15:49 +0200)]
basetransform: move prepare_output_buffer code
Move the code for prepare_output_buffer to a default implementation. this allows
us to simplify some things and have subclasses call into the default
implementation when needed.
Wim Taymans [Thu, 21 Jul 2011 13:48:25 +0000 (15:48 +0200)]
basetransform: only get size for debug
Wim Taymans [Thu, 21 Jul 2011 12:18:30 +0000 (14:18 +0200)]
basetrans: fix comment and warn
Emit a warning in the debug log when something seems weird.
Wim Taymans [Thu, 21 Jul 2011 12:14:58 +0000 (14:14 +0200)]
basetransform: only get caps for size transform
Delay getting the caps until we need to call the transform_size function.
Wim Taymans [Thu, 21 Jul 2011 11:56:11 +0000 (13:56 +0200)]
basetrans: remove useless variables from prepare_output_buffer
Remove the caps and size from the prepare_output_buffer function. with
bufferpools and capsnego done differently, we don't need this in most cases and
if we do, we can simply use the transform_size function and get the caps from
the srcpad.
Stefan Kost [Mon, 18 Jul 2011 15:22:41 +0000 (17:22 +0200)]
docs: clarify clocks docs in manual
After a question on the mailing list, mention that *flushing* seeks reset the
running time.
Raluca Elena Podiuc [Sat, 16 Jul 2011 19:00:15 +0000 (22:00 +0300)]
docs: removed double negation in event/message seq num description
https://bugzilla.gnome.org/show_bug.cgi?id=654751
Tim-Philipp Müller [Sat, 16 Jul 2011 11:21:12 +0000 (12:21 +0100)]
tests: make sure non-ASCII chars in filenames are escaped when creating URIs from them
https://bugzilla.gnome.org/show_bug.cgi?id=654673
Wim Taymans [Fri, 15 Jul 2011 15:04:11 +0000 (16:04 +0100)]
basesrc: don't accidentally disable the pool
When we set a pool and it is the same as the old pool, don't disable the pool.
Wim Taymans [Fri, 15 Jul 2011 11:27:13 +0000 (13:27 +0200)]
bufferpool: call release_buffer after alloc
After we allocated a new buffer, call the release_buffer vmethod to put the new
buffer in the pool instead of assuming that the pool uses the default
release_method implementation.
Wim Taymans [Fri, 15 Jul 2011 09:52:22 +0000 (11:52 +0200)]
bufferpool: add macro to check for flushing
Wim Taymans [Fri, 15 Jul 2011 09:51:54 +0000 (11:51 +0200)]
buffer: improve debug message
Tim-Philipp Müller [Thu, 14 Jul 2011 11:45:33 +0000 (12:45 +0100)]
baseparse: fix printf format in debug message
Mark Nauwelaerts [Wed, 13 Jul 2011 09:39:15 +0000 (11:39 +0200)]
basesink: unset PLAYING transition flag when transition completed
Wim Taymans [Tue, 12 Jul 2011 12:07:57 +0000 (14:07 +0200)]
buffer: fix resize function some more
Don't remove memory blocks from the buffer when we clip and resize, instead set
the memory offset and size to 0. This allows us to make the buffer larger again
later.
Wim Taymans [Tue, 12 Jul 2011 11:40:35 +0000 (13:40 +0200)]
buffer: improve size handling
Also handle the case where multiple empty memory blocks are in the buffer.
Add unit test for this.
Wim Taymans [Tue, 12 Jul 2011 10:00:58 +0000 (12:00 +0200)]
buffer: fix _resize some more
Add more debug.
Alow resize to 0 bytes.
Do clipping correctly.
Add more unit tests. Also add a failing test: when we resize to 0 and then
try to resize back to the original size it fails because the memory was
removed.
Wim Taymans [Mon, 11 Jul 2011 16:00:52 +0000 (18:00 +0200)]
buffer: fix negative offsets some more
Allow for negative offsets when doing memory copy and share.
Add fast path in the _get_sizes() function.
Fix resize for negative offset and expanding the buffer.
Add some unit tests.
Wim Taymans [Mon, 11 Jul 2011 14:43:33 +0000 (16:43 +0200)]
defs: add defs for new methods
Wim Taymans [Mon, 11 Jul 2011 14:42:56 +0000 (16:42 +0200)]
buffer: fix _resize better
Wim Taymans [Mon, 11 Jul 2011 14:17:57 +0000 (16:17 +0200)]
buffer: add api to get the current memory offset
Also return the offset in a GstMemory block with the get_sizes() method. This
allows us to figure out how much prefix there is unused.
Change the resize function so that a negative offset can be given. This would
make it possible to resize the buffer so that the prefix becomes available.
Add gst_buffer_get_sizes() to return the offset and maxsize as well as the size.
Also change the buffer resize method so that we can specify a negative offset
to remove prefix bytes.
Mark Nauwelaerts [Mon, 11 Jul 2011 12:40:07 +0000 (14:40 +0200)]
buffer: add some memory wrapped buffer allocation helpers
Wim Taymans [Mon, 11 Jul 2011 10:11:13 +0000 (12:11 +0200)]
miniobject: cleanup headers
Mark Nauwelaerts [Mon, 11 Jul 2011 09:40:08 +0000 (11:40 +0200)]
baseparse: eat incoming caps event
... as it is typically up to baseclass to set proper src caps.
Mark Nauwelaerts [Mon, 11 Jul 2011 09:37:28 +0000 (11:37 +0200)]
pad: avoid inadvertently dropping an event
... particularly a non-sticky serialized event that happens to pass
when an event update is pending.
Mark Nauwelaerts [Mon, 4 Jul 2011 10:58:54 +0000 (12:58 +0200)]
basesink: try harder to arrange increasing position reporting
... rather than having a momentary decreasing one while transitioning
to PLAYING.
Fixes #628021.
Tim-Philipp Müller [Fri, 8 Jul 2011 15:07:12 +0000 (16:07 +0100)]
win32: add new API to .def file
Tim-Philipp Müller [Wed, 6 Jul 2011 14:13:30 +0000 (15:13 +0100)]
buffer: make idx argument to gst_buffer_take_memory() signed
Since -1 is acceptable, it should be signed.
Tim-Philipp Müller [Thu, 7 Jul 2011 13:57:18 +0000 (14:57 +0100)]
baseparse: fix invalid memory access in debug messages
Don't use buffers that we've given away or unrefed in debug messages.
Wim Taymans [Thu, 7 Jul 2011 09:14:34 +0000 (11:14 +0200)]
basesrc: fix after merge
Wim Taymans [Thu, 7 Jul 2011 09:13:19 +0000 (11:13 +0200)]
Merge branch 'master' into 0.11
Conflicts:
libs/gst/base/gstbasesrc.c
Wim Taymans [Wed, 6 Jul 2011 14:08:56 +0000 (16:08 +0200)]
buffer: add memset function
Tim-Philipp Müller [Wed, 6 Jul 2011 11:09:28 +0000 (12:09 +0100)]
buffer: fix guards for gst_buffer_take_memory()
Since idx = -1 makes it default to idx=len, len is also
a valid input idx.
Wim Taymans [Tue, 5 Jul 2011 14:38:06 +0000 (16:38 +0200)]
gst: add class ref/unref
Wim Taymans [Tue, 5 Jul 2011 14:32:45 +0000 (16:32 +0200)]
test: disable failing unit tests
Disable unit tests that are failing until someone ports this to 0.11
Wim Taymans [Tue, 5 Jul 2011 14:20:03 +0000 (16:20 +0200)]
queue: fix unit test
Set the right position member in the segment event.
Add some debug to queue.
Tim-Philipp Müller [Mon, 4 Jul 2011 23:10:26 +0000 (00:10 +0100)]
gst: make compiler warn about unstable API if GST_USE_UNSTABLE_API is not defined
And define it in our own build.
Tim-Philipp Müller [Mon, 4 Jul 2011 23:12:13 +0000 (00:12 +0100)]
win32: update .def files for latest API changes/additions
Mark Nauwelaerts [Thu, 30 Jun 2011 15:39:37 +0000 (17:39 +0200)]
basesrc: do not sneakily mess with current offset when updating length
Mark Nauwelaerts [Tue, 28 Jun 2011 20:18:46 +0000 (22:18 +0200)]
basesrc: unref allocation query when no longer needed
Mark Nauwelaerts [Tue, 28 Jun 2011 17:01:57 +0000 (19:01 +0200)]
inputselector: avoid iterating over a single NULL pad
Tim-Philipp Müller [Mon, 20 Jun 2011 22:28:07 +0000 (23:28 +0100)]
Remove GstImplementsInterface
It was a bit too clever, and didn't really work as an API,
confusing people to no end. Better implement specific methods
whether an interface is usable/available/ready on the interface
itself, or even add GError arguments, rather than try to have
per-instance interfaces.
Emmanuel Pacaud [Sat, 25 Jun 2011 20:51:52 +0000 (13:51 -0700)]
task: Check for PR_SET_NAME before using
Fixes: #653172.
Signed-off-by: David Schleef <ds@schleef.org>
David Schleef [Thu, 23 Jun 2011 18:27:52 +0000 (11:27 -0700)]
Automatic update of common submodule
From 69b981f to 605cd9a
Wim Taymans [Thu, 23 Jun 2011 16:03:22 +0000 (18:03 +0200)]
query: add method to check for metadata
Add a method to check if a certain metadata is supported in the ALLOCATION
query.
Wim Taymans [Wed, 22 Jun 2011 16:07:18 +0000 (18:07 +0200)]
docs: update design docs a little
Update the design doc with the current state of the videometadata.
Koop Mast [Wed, 22 Jun 2011 15:12:34 +0000 (17:12 +0200)]
tee: use & instead of && for masking bits
See #653137
Koop Mast [Wed, 22 Jun 2011 15:09:52 +0000 (17:09 +0200)]
basetransform: remove redundant ()
See #653137
Koop Mast [Wed, 22 Jun 2011 15:05:27 +0000 (17:05 +0200)]
baseparse: fix seekstop
See #653137
Koop Mast [Wed, 22 Jun 2011 14:58:53 +0000 (16:58 +0200)]
segment: cast to right type
See #653137
Wim Taymans [Wed, 22 Jun 2011 14:38:04 +0000 (16:38 +0200)]
uri: remove some _full variants
Wim Taymans [Wed, 22 Jun 2011 14:16:56 +0000 (16:16 +0200)]
tags: Remove crazy tag messages
Don't mix messages and pads and tags.
Make the sink post tag messages when a tag event is received.
Since tags are sticky on pads now, they can be retrieved from there
when needed.
Wim Taymans [Wed, 22 Jun 2011 10:28:14 +0000 (12:28 +0200)]
caps: Hide implementation details
Make the Array of structures private. This should allow us to implement
the array more efficiently or with some preallocated structures when
we want to later.
Add a new method to clean up a static structure so that we can remove some code
that pokes into the private bits of the caps.
Wim Taymans [Wed, 22 Jun 2011 10:26:19 +0000 (12:26 +0200)]
docs: update negotiation design doc
Wim Taymans [Wed, 22 Jun 2011 09:42:46 +0000 (11:42 +0200)]
memory: rename GstMemoryAllocator -> GstAllocator
simplify the name of the allocator object.
Wim Taymans [Tue, 21 Jun 2011 15:54:38 +0000 (17:54 +0200)]
Merge branch 'master' into 0.11
Conflicts:
configure.ac
win32/common/config.h
win32/common/gstversion.h
Wim Taymans [Tue, 21 Jun 2011 15:47:36 +0000 (17:47 +0200)]
docs: update bufferpool design doc
Wim Taymans [Tue, 21 Jun 2011 15:47:23 +0000 (17:47 +0200)]
basesrc: improve debugging
Stefan Kost [Tue, 21 Jun 2011 13:15:44 +0000 (15:15 +0200)]
images: strip images of extra text tags
Wim Taymans [Tue, 21 Jun 2011 10:32:46 +0000 (12:32 +0200)]
bufferpool: return empty metadata array
Return a string array with NULL instead of NULL from the default get_metas
function.
Wim Taymans [Tue, 21 Jun 2011 10:31:57 +0000 (12:31 +0200)]
pad: use event function directly
We will never go in this code path for CAPS events so directly call the event
function.
Wim Taymans [Tue, 21 Jun 2011 08:29:51 +0000 (10:29 +0200)]
pad: notify caps after we store the new caps
notify caps after we store the new caps so that the new caps are actually
visible for the app.
Wim Taymans [Mon, 20 Jun 2011 15:32:47 +0000 (17:32 +0200)]
basetransform: activate the bufferpool
always activate the bufferpool, even if we get it from the allocation
query.
Wim Taymans [Mon, 20 Jun 2011 15:32:11 +0000 (17:32 +0200)]
basesrc: always activate the pool we get
Activate the pool when we get it from the allocation query.
Wim Taymans [Mon, 20 Jun 2011 14:47:40 +0000 (16:47 +0200)]
basetransform: inprove allocation handling
Add vmethod for subclasses to influence the pool and allocator.
Log when query fails.
Respect negotiated allocator and alignment.