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.
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