Wim Taymans
92b77c5aa4
decodebin2: forward all sticky events to decodepad
...
Forward all sticky events to the decodepad before exposing the pads. This makes
sure all sticky events are on the exposed pad.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696915
2013-04-04 15:00:52 +02:00
Wim Taymans
c082c06b6c
decodebin: debug sticky events on exposed pads
2013-04-04 14:53:32 +02:00
Wim Taymans
08dd2454cd
decodebin2: small cleanup
...
Take the event from the probe just once.
2013-04-04 14:37:15 +02:00
Wim Taymans
34eea4d5f2
streamsynchronizer: update position for reverse
...
When doing reverse playback the positino advances from timestamp_end to
timestamp.
2013-03-31 12:57:35 +02:00
Sebastian Dröge
3475d4f457
decodebin: Remove GstdecodePads that are not going to be exposed
...
This makes sure that they're unlnked and don't cause any errors or
block the pipeline.
2013-03-30 17:17:04 +01:00
Sebastian Dröge
7f78f7f9e3
playbin: Ignore caps from audio/video sink factories if there are fixed sinks already
2013-03-30 12:15:38 +01:00
Sebastian Dröge
57a0806b3a
playbin: Handle caps queries from unlinked elements
...
Pass them to all possible sinks and the current sinks to
allow elements to chose a more optimal initial caps.
2013-03-30 11:49:42 +01:00
Sebastian Dröge
0932391d3f
decodebin: Add autoplug-query signal to handle queries for yet unconnected elements
...
This allows playbin to answer the CAPS query with the possible sink
caps for example, and allows decoders to chose more optimal caps.
2013-03-30 11:49:42 +01:00
Sebastian Dröge
9ce0818c7d
decodebin: Don't add a children to a decode group twice
...
This can happen if a demuxer does not provide fixed caps from the
beginning but only sets them later.
2013-03-30 11:49:42 +01:00
Stefan Sauer
f19acfc60b
uridecodebin: remove commented code
...
This is dead since ~6 years.
2013-03-28 12:36:51 +01:00
Sebastian Dröge
383f58b0ed
subtitleoverlay: Return ANY caps for the GET_CAPS query
...
subtitleoverlay handles any caps, not just the ones
for which a subtitle parser/renderer exist. It will
just ignore any unsupported streams instead of causing
an error.
https://bugzilla.gnome.org/show_bug.cgi?id=688476
2013-03-21 15:37:31 +01:00
Sebastian Dröge
9084bc151b
playsinkconvertbin: Make sure to return all allowed caps in the GET_CAPS query
...
Add all the caps that we can convert to to the filter caps,
otherwise downstream might just return EMPTY caps because
it doesn't handle the filter caps but we could still convert
to these caps, causing us to return EMPTY caps although
conversion would be possible.
https://bugzilla.gnome.org/show_bug.cgi?id=688803
2013-03-21 13:42:41 +01:00
Sebastian Dröge
d06c332655
playsinkconvertbin: Use gst_caps_is_subset() for handling the ACCEPT_CAPS query
2013-03-21 11:42:43 +01:00
Tim-Philipp Müller
7dd2fad888
uridecodebin: minor GValue handling optimisation
2013-03-03 17:44:11 +00:00
Matej Knopp
1e5b50e94c
decodebin: don't block on caps
2013-02-14 11:37:54 +01:00
Sebastian Dröge
cfd73a8cf7
decodebin: Remove left-over line from last commit
2013-02-14 11:25:37 +01:00
Matej Knopp
872cc295a6
decodebin: Check if value is set before unsetting it
...
https://bugzilla.gnome.org/show_bug.cgi?id=693401
2013-02-14 11:22:34 +01:00
Alexander Schrab
e7caef6b29
decodebin: Push caps event immediately to ghost pad to avoid exposing pads without caps
2013-02-12 10:12:14 +01:00
Marc Leeman
f704b3f975
decodebin: g_mutex_new -> g_mutex_init
...
Don't use deprecated GLib API.
https://bugzilla.gnome.org/show_bug.cgi?id=693302
2013-02-07 13:51:17 +00:00
Tim-Philipp Müller
500b864899
decodebin: try harder to always expose pads in the same order
...
Use stream-id as sort criterion in addition to the media type.
https://bugzilla.gnome.org/show_bug.cgi?id=634407
2013-01-19 13:03:03 +00:00
Wim Taymans
0feecef275
decodebin2: use NO_RESYNC flag
...
to avoid the state change function from messing with the state of the elements
that we add.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690420
2012-12-21 16:38:36 +01:00
Wim Taymans
66cafcc34d
playsink: fix vis switch with format change
...
Block the pad before the resample and convertor elements to give the a chance to
negotiate new caps with the newly switched vis plugin.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679976
2012-12-13 11:34:54 +01:00
Tim-Philipp Müller
7c89a7298a
streamsynchronizer: don't send gap events with huge bogus durations when advancing EOS streams
...
When the input buffers for a stream don't have a duration set,
timestamp_end might still be GST_CLOCK_TIME_NONE. When advancing
EOSed streams via GAP events (with other streams not yet EOS), we
would then use the invalid timestamp_end to calculate the duration
of the gap. This in turn would make baseaudiosink abort, because it
would try to allocate memory for a trizillion samples.
So if buffers don't have a duration set, assume a duration of
one second for stream catch-up purposes, just so we can still
continue to catch up in those cases. And make sure that
timestamp_end is valid before doing calculations with it.
http://bugzilla.gnome.org/show_bug.cgi?id=678530
2012-11-26 19:03:38 +00:00
Tim-Philipp Müller
601aabdf9c
streamsynchronizer: reduce debug log spam a bit
...
Log locking/unlocking with TRACE debug level.
2012-11-25 18:07:04 +00:00
Sebastian Dröge
830b500d40
decodebin: Set element to NULL state before removing it from the bin
2012-11-22 13:09:46 +01:00
Sebastian Dröge
2faef82b9a
decodebin: Check if the element really accepts the caps after setting it to READY
...
It might know the caps constraints for sure only after opening a decoder.
2012-11-22 13:07:11 +01:00
Sebastian Dröge
4f480612e9
streamsynchronizer: Make the element public
...
https://bugzilla.gnome.org/show_bug.cgi?id=688240
2012-11-21 10:29:44 +01:00
Tim-Philipp Müller
5f59b4f7ee
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Sebastian Dröge
b9d4d0cd29
streamsynchronizer: Also send a GAP event to let audio sinks start their clock in case they did not have enough data yet
2012-10-24 13:34:15 +02:00
Sebastian Dröge
6a31051feb
streamsynchronizer: Use correct timestamp/duration for the GAP events
2012-10-24 13:29:45 +02:00
Sebastian Dröge
3c1041d5eb
Revert "gst: Add better support for static plugins"
...
This reverts commit d2d79e3bc2
,
which was accidentially pushed.
2012-10-24 13:26:26 +02:00
Sebastian Dröge
52d48109bc
streamsynchronizer: Send GAP events to advance streams
2012-10-24 13:25:19 +02:00
Sebastian Dröge
d2d79e3bc2
gst: Add better support for static plugins
2012-10-24 12:10:44 +02:00
Sebastian Dröge
7b12afa4cb
streamsynchronizer: Create a GAP event with a sensible timestamp
2012-10-24 11:19:06 +02:00
Sebastian Dröge
356579157e
streamsynchronizer: Also propagate return value of pushing GAP event upstream
2012-10-23 18:21:32 +02:00
Sebastian Dröge
120c7be970
streamsynchronizer: Return TRUE from the EOS handler
2012-10-23 17:38:43 +02:00
David Corvoysier
87fd43aaaa
decodebin2: Fix group switching algorithm
...
There were two issues with the previous decodebin2 group switching algorithm:
Issue 1: It operated with no memory of what has been drained or not, leading to
multiple checks for chains/groups that were already drained.
Issue 2: When receiving an EOS, it only detected that a higher-level chain
was drained if it contained the pad receiving the EOS.
The following modifications have been applied:
- a new drained property has been added to GstDecodeChain
- both drained properties of chain/group are set as soon as they are detected
- the algorithm now tests agains these values
See https://bugzilla.gnome.org/show_bug.cgi?id=685938
2012-10-14 10:58:18 +02:00
Sebastian Dröge
80e4f3e912
playsinkconvertbin: Change GST_WARNING to GST_INFO
...
It's not a problem if we have no converters, this only means
that none were requested at this point.
2012-10-10 11:50:12 +02:00
Wim Taymans
3591df23b1
docs: playbin2 -> playbin
2012-10-09 12:20:10 +02:00
Tim-Philipp Müller
81097f485a
playback: class_ref() some types so we can create multiple playback elements at the same time
...
Should fix "cannot register existing type `GstPlaybinSelectorPad'" warnings
and subsequent errors when creating multiple players at the same time.
Conflicts:
gst/playback/gststreamselector.c
2012-10-03 11:48:25 +01:00
Tim-Philipp Müller
6842698f0d
Purge all references to liboil
...
And remove unused ffmpegcolorspace tests in the process.
https://bugzilla.gnome.org/show_bug.cgi?id=673285
2012-09-29 11:47:52 +01:00
Sebastian Dröge
b19944d1e4
gst: Update for link/unlink function API change
2012-09-17 13:24:52 +02:00
Mark Nauwelaerts
e491d24341
use gst_element_factory_get_metadata to replace obsolete API
2012-09-15 18:57:09 +02:00
Andreas Frisch
6e469b2ac5
playbin: subtitleoverlay: don't segfault in incorrectly init'ed plugins
...
https://bugzilla.gnome.org/show_bug.cgi?id=683865
2012-09-14 08:49:47 +01:00
Tim-Philipp Müller
082cedef79
streamsynchronizer: don't shadow function parameter
2012-09-14 00:39:09 +01:00
Edward Hervey
b5090d2aca
streamsynchronizer: Don't wait on non-time streams
...
streams with non-TIME segments will not have timestamps ...
... and therefore will never unblock the other streams.
Fixes blocking issue when using playbin suburi feature
2012-09-11 16:29:21 +02:00
Tim-Philipp Müller
952f347146
playback: port to new GLib thread API
2012-09-10 01:10:24 +01:00
Tim-Philipp Müller
2079a8c12b
Remove glib-compat-private.h stuff we don't need any more
...
It's all been ported to the latest GLib API now.
2012-09-09 18:36:49 +01:00
Mark Nauwelaerts
782adaf3ab
streamsynchronizer: do not leak EOS events
2012-09-06 15:03:49 +02:00
Wim Taymans
b26f35c3a4
streamsync: only remove DISCONT when needed
...
Check if the buffer is DISCONT before making a potentially expensive copy to
unset the DISCONT flag.
2012-09-06 13:37:11 +02:00