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.
Edward Hervey [Wed, 1 Jun 2011 13:29:20 +0000 (15:29 +0200)]
check/abi: Ignore GstXML* on arm when not present
Edward Hervey [Tue, 31 May 2011 16:31:53 +0000 (18:31 +0200)]
basetransform: Use local priv variable instead of trans->priv
Edward Hervey [Tue, 31 May 2011 16:30:50 +0000 (18:30 +0200)]
gstsegment: Remove dead assignment
base is unconditionally written a couple of lines below
Edward Hervey [Tue, 31 May 2011 16:30:30 +0000 (18:30 +0200)]
gst: Remove obvious dead assignments
Edward Hervey [Tue, 31 May 2011 11:43:47 +0000 (13:43 +0200)]
outputselector: Remove dead assignment
Wim Taymans [Mon, 30 May 2011 16:29:06 +0000 (18:29 +0200)]
pad: Rework pad blocking, another attempt
Make the PadBlock callback take a GstBlockType parameter to handle the different
kind of stages in the pad block. This provides for more backwards compatibility
in the pad block API.
Separate blocking and unblocking into different methods, only blocking can do a
callback, unblock is always immediately. Also removed synchronous blocking, it
can always be implemented with a callback.
Wim Taymans [Mon, 30 May 2011 11:40:04 +0000 (13:40 +0200)]
Revert "pad: rework pad blocking, first part"
This reverts commit
415da89f3c9fe46fc3361236df9a3b76e607e138.
Conflicts:
gst/gstpad.c
Wim Taymans [Mon, 30 May 2011 10:27:31 +0000 (12:27 +0200)]
pad: improve debugging
Sebastian Dröge [Mon, 30 May 2011 09:33:57 +0000 (11:33 +0200)]
value: Consider "1" and "{1}" as equal in gst_value_compare()
Previously this was only done in the is_subset() check but
having it only there brings us into definition-hell where
"1" and "{1}" are subset of each other but not equal.
Sebastian Dröge [Mon, 30 May 2011 05:44:50 +0000 (07:44 +0200)]
gst-launch: Don't access the GstMessage structure directly
Sebastian Dröge [Mon, 30 May 2011 05:41:13 +0000 (07:41 +0200)]
Merge branch 'master' into 0.11
Sebastian Dröge [Mon, 30 May 2011 05:36:58 +0000 (07:36 +0200)]
caps: Fix subset check for equivalent lists and scalar values
For example "{ 1 }" and "1" are not strictly equal but
both are a subset of each other. Also add a unit test
for this.
Tim-Philipp Müller [Sun, 29 May 2011 18:28:34 +0000 (19:28 +0100)]
docs: fix bugzilla URL
htpp -> http
https://bugzilla.gnome.org/show_bug.cgi?id=651362
Stefan Kost [Sat, 28 May 2011 07:24:37 +0000 (10:24 +0300)]
docs: xrefs more api around GstStateChange and GstStateChangeReturn.
Stefan Kost [Sat, 28 May 2011 06:51:45 +0000 (09:51 +0300)]
docs: xref the async messages to GstStateChange
Wim Taymans [Fri, 27 May 2011 15:20:56 +0000 (17:20 +0200)]
pad: rework pad blocking, first part
Make pad block call the callback as soon as the pad is not in use. This makes it
possible to make sure that when the callback is called, no activity is happening
on the pad and that no activity will ever happen until the pad is unblocked
again. This makes pad blocking work when there is no dataflow or after EOS and
greatly helps dynamic pipelines.
Move the probe handling right where we wait on the pad block. The two are
related but not the same and the probe can eventually influence the pad
blocking as we'll se later.
Fix up some broken unit tests or tests that fail with the new behaviour.
Wim Taymans [Fri, 27 May 2011 15:18:00 +0000 (17:18 +0200)]
basesrc: remove deprecated clean shutdown method
Wim Taymans [Fri, 27 May 2011 12:00:56 +0000 (14:00 +0200)]
tee: deactivate the pad after removing it
When releasing the request pad, first remove it from the element and then
deactivate it. If we do it the other way around, a gst_pad_push on the element
might return wrong-state before we had a chance to detect the removed pad in the
chain function.
Tim-Philipp Müller [Fri, 27 May 2011 14:14:32 +0000 (15:14 +0100)]
tools: catch and print missing-plugin messages in gst-launch
So that users get some feedback if they're using a pipeline
like src ! decodebin2 ! sink and are missing an element.
Sebastian Dröge [Fri, 27 May 2011 12:02:03 +0000 (14:02 +0200)]
basesrc: Fix for SEGMENT event API changes
Sebastian Dröge [Fri, 27 May 2011 11:58:26 +0000 (13:58 +0200)]
Merge branch 'master' into 0.11
Sebastian Dröge [Fri, 27 May 2011 11:55:31 +0000 (13:55 +0200)]
caps: Add gst_caps_is_subset_structure()
API: gst_caps_is_subset_structure()
This allows to check if a structure is a subset of given
caps without allocating a new caps instance for it.
Sebastian Dröge [Fri, 27 May 2011 11:47:11 +0000 (13:47 +0200)]
structure: Add gst_structure_is_subset()
API: gst_structure_is_subset()
Sebastian Dröge [Fri, 27 May 2011 11:38:51 +0000 (13:38 +0200)]
caps: Optimize gst_caps_is_subset()
..and as a result gst_caps_is_equal() and others.
This now only checks if for every subset structure there is
a superset structure in the superset caps. Previously we were
subtracting one from another, creating completely new caps
and then even simplified them.
The new implemention now is about 1.27 times faster and doesn't
break the -base unit tests are anything anymore.
Sebastian Dröge [Fri, 27 May 2011 11:37:06 +0000 (13:37 +0200)]
caps: Fix subset check in gst_caps_merge()
Caps A are a subset of caps B even if caps B doesn't
have all fields of caps A.
Also add a unit test for this.
Sebastian Dröge [Fri, 27 May 2011 10:56:03 +0000 (12:56 +0200)]
Revert "caps: Optimize gst_caps_is_subset()"
This reverts commit
32248a9b852bcb568a5b642299ecc8e5bf48ea13.
This breaks some tests in -base and the failures should
be fixed first.
Sebastian Dröge [Fri, 27 May 2011 10:45:59 +0000 (12:45 +0200)]
caps: Optimize gst_caps_is_subset()
..and as a result gst_caps_is_equal() and others.
This now only checks if for every subset structure there is
a superset structure in the superset caps. Previously we were
subtracting one from another, creating completely new caps
and then even simplified them.
The new implemention now is about 1.27 times faster.
Sebastian Dröge [Fri, 27 May 2011 09:45:16 +0000 (11:45 +0200)]
pad: Drop sticky events pushed on flushing srcpads instead of activating them immediately
Sebastian Dröge [Thu, 26 May 2011 12:56:12 +0000 (14:56 +0200)]
basetransform: Pass the complete caps to transform_caps
Instead of passing it structure by structure. This allows
better optimized transform_caps functions and allows better
transformation decisions.
See bug #619844.
Sebastian Dröge [Fri, 27 May 2011 07:05:46 +0000 (09:05 +0200)]
basesrc: Send an update NEWSEGMENT event downstream if the duration changes
This allows streaming the complete file for files that have grown since
streaming started.
Fixes bug #647940.
Wim Taymans [Thu, 26 May 2011 17:45:14 +0000 (19:45 +0200)]
pad: refactor _push_event
Rework _push_event() a little so that it drops events on blocking pads.
Make sure that events are forwarded when we unblock.
Add counter on the pad to keep track of busy pads.
Wim Taymans [Thu, 26 May 2011 16:21:09 +0000 (18:21 +0200)]
pad: refactor pre and post chain code
Wim Taymans [Thu, 26 May 2011 15:50:15 +0000 (17:50 +0200)]
pad: keep counter for active pads
Keep a counter to mark the amount of threads currently pushing data on the pad.
Wim Taymans [Thu, 26 May 2011 15:39:17 +0000 (17:39 +0200)]
pad: refactor pre push code
Refactor the code that is executed as the first step of a push operation where
we check the probes and blocking and resolve the peer.
Wim Taymans [Thu, 26 May 2011 15:08:03 +0000 (17:08 +0200)]
pad: remove pad cache
Remove the pad cache as this is going to be reworked for new pad blocking and
probes.
Wim Taymans [Thu, 26 May 2011 14:48:14 +0000 (16:48 +0200)]
pad: simplify handling of buffer lists
Implement a default buffer-list function in case the element doesn't implement
one.
Also pass buffer-lists to the have-data signal, this allows us to remove some
backward compatibility code.
Wim Taymans [Thu, 26 May 2011 14:15:52 +0000 (16:15 +0200)]
pad: remove old gst_pad_set_blocked methods
Sebastian Dröge [Thu, 26 May 2011 12:14:13 +0000 (14:14 +0200)]
pushsrc: Fix infinite recursion in pushsrc query handler
Sebastian Dröge [Thu, 26 May 2011 11:36:48 +0000 (13:36 +0200)]
Merge branch 'master' into 0.11
Tim-Philipp Müller [Wed, 25 May 2011 15:02:10 +0000 (16:02 +0100)]
gst: we can now use GLib 2.24 API unconditionally
Tim-Philipp Müller [Wed, 25 May 2011 14:54:01 +0000 (15:54 +0100)]
configure: bump GLib requirement to >= 2.24
http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
Tim-Philipp Müller [Wed, 25 May 2011 14:38:30 +0000 (15:38 +0100)]
docs: update release instructions for gnome change
Руслан Ижбулатов [Wed, 25 May 2011 09:40:30 +0000 (13:40 +0400)]
systemclock: Placate gcc by defining EWOULDBLOCK to something
Руслан Ижбулатов [Wed, 25 May 2011 08:47:51 +0000 (12:47 +0400)]
poll: Fix WAKE_EVENT() to behave posixly on Windows
Stefan Kost [Tue, 24 May 2011 17:28:18 +0000 (20:28 +0300)]
registrybinary: small cleanups
Remove unneeded braces from string define. Small doc improvement.
Stefan Kost [Tue, 24 May 2011 17:27:02 +0000 (20:27 +0300)]
preset: use guint for the version number parts
Use unsigned integers for extra safety (like we do in plugin version parsing).
Wim Taymans [Tue, 24 May 2011 16:39:41 +0000 (18:39 +0200)]
remove some more deprecated methods
Wim Taymans [Tue, 24 May 2011 16:29:48 +0000 (18:29 +0200)]
padtemplate: remove unused flag
Wim Taymans [Tue, 24 May 2011 16:17:24 +0000 (18:17 +0200)]
feature: use object name
Remove the name property from the plugin feature and port code to use the object
name instead.
Wim Taymans [Tue, 24 May 2011 16:16:36 +0000 (18:16 +0200)]
remove old glib check
Wim Taymans [Tue, 24 May 2011 15:43:36 +0000 (17:43 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Tue, 24 May 2011 15:36:24 +0000 (17:36 +0200)]
scheduling: port to new scheduling query
Wim Taymans [Tue, 24 May 2011 10:52:09 +0000 (12:52 +0200)]
query: add SCHEDULING query
Add a new query to replace the checkgetrange function.
Debarshi Ray [Tue, 24 May 2011 14:13:58 +0000 (19:43 +0530)]
check: add fail_unless_equals_int64
https://bugzilla.gnome.org/show_bug.cgi?id=650973
Sebastian Dröge [Tue, 24 May 2011 14:14:57 +0000 (16:14 +0200)]
outputselector: Forward sticky events to newly created srcpads
Sebastian Dröge [Tue, 24 May 2011 14:13:22 +0000 (16:13 +0200)]
tee: Forward sticky events to newly created srcpads
Sebastian Dröge [Tue, 24 May 2011 14:08:41 +0000 (16:08 +0200)]
pad: Add gst_pad_sticky_events_iterate() function
Sebastian Dröge [Tue, 24 May 2011 11:27:09 +0000 (13:27 +0200)]
debugutils: Fix for GstIterator API changes
Sebastian Dröge [Tue, 24 May 2011 11:28:00 +0000 (13:28 +0200)]
Revert "debugutils: Fix for GstIterator API changes"
This reverts commit
e1cc3176d6fb8023bbe0c733615b2a8c420a2077.
This is not the 0.11 branch...
Sebastian Dröge [Tue, 24 May 2011 11:27:09 +0000 (13:27 +0200)]
debugutils: Fix for GstIterator API changes
Wim Taymans [Tue, 24 May 2011 07:48:44 +0000 (09:48 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstpad.h
Kipp Cannon [Mon, 23 May 2011 21:26:40 +0000 (00:26 +0300)]
clock: improve the GST_TIME_FORMAT/ARGS docs
Stefan Kost [Mon, 23 May 2011 20:40:20 +0000 (23:40 +0300)]
docs: hide this from the docs
Wim Taymans [Mon, 23 May 2011 16:30:19 +0000 (18:30 +0200)]
event: use GST_SEGMENT_FORMAT for segments
Wim Taymans [Mon, 23 May 2011 16:15:00 +0000 (18:15 +0200)]
transform: fixes for bufferpool handling
Don't error out when the allocation query returns success.
Do bufferpool query after we pushed the caps event downstream so that we can get
a good bufferpool suggestion.
Also proxy the bufferpool query downstream when we operate in in_place mode.
Wim Taymans [Mon, 23 May 2011 16:14:27 +0000 (18:14 +0200)]
pad: improve debugging
Wim Taymans [Mon, 23 May 2011 14:53:01 +0000 (16:53 +0200)]
transform: reset reconfigure state
When we negotiate new caps, reset the reconfigure state.
Wim Taymans [Fri, 20 May 2011 16:56:37 +0000 (18:56 +0200)]
basetransform: WIP handle bufferpool
Wim Taymans [Sat, 21 May 2011 17:06:08 +0000 (19:06 +0200)]
basesrc: avoid calling _set_caps() on the srcpad
Avoid installing a setcaps function on the srcpad and calling the setcaps
function, we can do more efficiently with sending the event ourself and calling
our vmethod.
Wim Taymans [Fri, 20 May 2011 14:03:10 +0000 (16:03 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstpad.h
gst/gstplugin.h
Wim Taymans [Fri, 20 May 2011 13:58:10 +0000 (15:58 +0200)]
basetransform: remove some more code
Remove some more unused code from basetransform.
Prepare for implementing bufferpools.
Stefan Kost [Fri, 20 May 2011 12:50:05 +0000 (15:50 +0300)]
win32: add new api
Stefan Kost [Fri, 20 May 2011 12:48:09 +0000 (15:48 +0300)]
deprecation-guards: fixup for commit
9ff4ec3104d2510b8f379ff38c671682ff795e33
Remove the deprecation guards for GST_PLUGIN_DEFINE_STATIC again (even though it
is deprecated) as we use it in the tests. Remove "_" for intlinkfunc.
Sebastian Dröge [Fri, 20 May 2011 11:06:57 +0000 (13:06 +0200)]
Merge branch 'master' into 0.11
Sebastian Dröge [Fri, 20 May 2011 11:03:51 +0000 (13:03 +0200)]
basesink: Only reinit the cached GstClockID if it is for the same clock
The clock might have changed since the clock ID was created and in
that case we have to request a new one.
Wim Taymans [Fri, 20 May 2011 10:43:24 +0000 (12:43 +0200)]
element: add method to get metadata
Add a method to get the metadata from a klass.
Wim Taymans [Fri, 20 May 2011 10:43:02 +0000 (12:43 +0200)]
factory: fix typo
Sebastian Dröge [Fri, 20 May 2011 10:18:48 +0000 (12:18 +0200)]
inputselector: Always send a SEGMENT event when the active pad changes
Sebastian Dröge [Fri, 20 May 2011 10:16:59 +0000 (12:16 +0200)]
inputselector: Fix copy&paste mistake in the srcpad event function
Wim Taymans [Fri, 20 May 2011 10:07:45 +0000 (12:07 +0200)]
Merge branch 'master' into 0.11
Conflicts:
docs/plugins/gstreamer-plugins.hierarchy
Sebastian Dröge [Fri, 20 May 2011 10:00:11 +0000 (12:00 +0200)]
inputselector: Send upstream events to all sinkpads, not only the selected one
This makes sure that SEEK events are sent to all upstream elements, which is
required if different streams are completely distinct pipeline parts. Also this
allows QoS to be done on deselected streams, flushes to be handled correctly,
etc.
Wim Taymans [Fri, 20 May 2011 09:36:25 +0000 (11:36 +0200)]
pad: add pending event for sticky events
Change the sticky event array so that it contains a pending and an active event.
Events on the sinkpad are copied to the pending array and after the eventfunc
returned TRUE, moved to the active event. This allows us to queue new events
like when we do per-pad offsets without removing the currently active event.
Remove the active argument from the gst_pad_get_sticky_event() method, the
pending events are not something we want to expose.
Stefan Kost [Thu, 19 May 2011 21:39:10 +0000 (00:39 +0300)]
preset: include cleanup
Only have include in the installed header we need to use it. Move the includes
needed by the implementation to the c file.
Stefan Kost [Thu, 19 May 2011 20:19:30 +0000 (23:19 +0300)]
docs: update plugin introspection data
Now more files are merged and produced in a canonical fashion, which hopefully
creates less or no delta in the future.
Stefan Kost [Thu, 19 May 2011 19:56:28 +0000 (22:56 +0300)]
Automatic update of common submodule
From 9e5bbd5 to 69b981f
Wim Taymans [Thu, 19 May 2011 17:07:29 +0000 (19:07 +0200)]
tests: caps are not stored on flushing pads
Caps are now also stored on flushing pads in the inactive state.
Wim Taymans [Thu, 19 May 2011 17:01:09 +0000 (19:01 +0200)]
pad: apply pad offset on sinkpad events too
Apply the pad offset in the send_event() function as well.
Wim Taymans [Thu, 19 May 2011 16:27:55 +0000 (18:27 +0200)]
pad: add per-pad offsets
When linking pads and when copying a segment event from the sourc pad to the
sinkpad, apply the src and sinkpad offsets to the segment base. Make sure that
we only modify the event stored on the sinkpad and never the one on the source
pad.
When changing the pad offset, perform the segment copy with the updated offsets.
When pushing a segment event, apply the srcpad offset before sending the event
to the peer pad.
This part is missing the adjustment of the segment event on the sinkpad, which
is for a later patch.
Wim Taymans [Thu, 19 May 2011 14:26:06 +0000 (16:26 +0200)]
pad: add methods to adjust the offset
Add methods to adjust the offset. This will be used to change the segment events
with an offset so that we can tweak the timing of the stream on a per-pad base.
Sebastian Dröge [Thu, 19 May 2011 10:11:43 +0000 (12:11 +0200)]
inputselector: Port to the new segment API
The switch action signal with the stop and start running times
is not necessary anymore. Closing of segments is not necessary
and adjusting the start running time of a segment can later be
done with new GstPad API.
Wim Taymans [Thu, 19 May 2011 09:30:06 +0000 (11:30 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstghostpad.h
Wim Taymans [Wed, 18 May 2011 17:43:44 +0000 (19:43 +0200)]
pad: store sticky events on flushing sinkpads too
First store the sticky event on the sinkpad in the inactive state, then check
for the flushing flag. We want to have the events on sinkpads at all times,
ready to be activated when the pad becomes active.
Wim Taymans [Wed, 18 May 2011 16:53:35 +0000 (18:53 +0200)]
pad: move caps check to central location
Make a function to call the eventfunc and perform a caps check when we are
dispatching a caps event.
This makes sure that all code paths correctly check that the caps are
acceptable before sending the caps to the eventfunction.
Wim Taymans [Wed, 18 May 2011 16:52:22 +0000 (18:52 +0200)]
ghostpad: avoid calling setcaps too many times
Don't call setcaps, the caps event will take care of propagating the caps on all
pads.
Wim Taymans [Wed, 18 May 2011 16:48:03 +0000 (18:48 +0200)]
query: add allocation query name
Add ALLOCATION query name and guard some functions against invalid queries.
Sebastian Dröge [Wed, 18 May 2011 14:56:13 +0000 (16:56 +0200)]
event: Make SEGMENT event parsing API more consistent with the others