Commit graph

7736 commits

Author SHA1 Message Date
Sebastian Dröge
c5d26b23c7 playbin2: Handle external subtitles better
First of all, make sure that suburidecodebin never
errors out because of not-linked in case external subtitles
are used but then subtitles are disabled.

And then make sure that external subtitles always start from
the correct position and are not racing until EOS if they
get unselected and selected again.
2009-11-12 13:20:41 +01:00
Sebastian Dröge
16073d1eb7 playbin2: Flush the subtitles before switching to a new subtitle stream
This makes sure that all currently shown subtitles disappear
and new ones can be shown as soon as possible.
2009-11-12 13:20:40 +01:00
Sebastian Dröge
e91458f13c playbin2: Set subtitle caps as raw caps for the uridecodebins
This will make sure that no subparse is ever plugged and subtitleoverlay,
that subpicture streams are handled the same was as subtitles and that
subtitle renderers are used if available.

Fixes bugs #595123, #570753, #591662, #591706.
2009-11-12 13:20:40 +01:00
Sebastian Dröge
ced1b8f897 playbin2/playsink: Remove everything related to subpicture streams
These will soon be handled the same way as subtitle streams.
2009-11-12 13:20:40 +01:00
Sebastian Dröge
dcc109bd9a playsink: Add a queue before subtitleoverlay
This will improve playback, and the same thing is done
for subpicture streams too.
2009-11-12 13:20:40 +01:00
Sebastian Dröge
c0828e55b6 playsink: Use subtitleoverlay for subtitles 2009-11-12 13:20:40 +01:00
Sebastian Dröge
c92559a9cb subtitleoverlay: Add to the docs 2009-11-12 13:20:40 +01:00
Sebastian Dröge
92ccb87850 subtitleoverlay: Add new element for generic subtitle overlaying
This autopluggs the required elements for parsing and rendering
different subtitle formats on a video stream.

Fixes bug #600370.
2009-11-12 13:20:40 +01:00
Olivier Crête
05aa195981 theoradec: Keep timestamp from incoming buffer if it is valid
Fixes bug #601627.
2009-11-12 13:18:02 +01:00
Sebastian Dröge
1da5a3f7d3 playback: Update factories list on every access if the registry has changed
This makes application's simpler because the element doesn't need to
go to NULL first to make use of newly installed plugins.

Fixes bug #601480.
2009-11-11 14:00:26 +01:00
Sebastian Dröge
ab96265c57 playback: When going from NULL->READY check if the registry has new features
This makes it possible to use newly installed plugins after going back
to NULL instead of requiring a new instance.

Fixes bug #599266.
2009-11-10 18:30:46 +01:00
Jan Schmidt
8c76ae5fa9 appsrc: Clear the EOS state on a seek.
Allow seeking back into the stream after it hits EOS.
2009-11-10 13:56:01 +00:00
Sebastian Dröge
6723bf429f audioresample: Update speex resampler to latest GIT 2009-11-10 12:22:27 +01:00
Tim-Philipp Müller
23f92ed8cd playsink: assign chain->mute before using it
Fixes GObject warnings when starting totem.
2009-11-10 01:06:17 +00:00
David Schleef
dcf556893f theora: Fix alignment of frames when converting
Fix logic inversion in calculating the offset in the theora
frame when copying to a GStreamer frame.
2009-11-09 11:18:27 -08:00
Edward Hervey
e34abf228d playback: Fix the order in strcmp that I broke in previous commit. 2009-11-09 19:58:20 +01:00
Edward Hervey
c661bfaa99 typefind: Reduce number of calls to gst_type_find_peek.
Shaves off a couple percents off typefinding
2009-11-09 19:18:07 +01:00
Edward Hervey
b9053c5ae8 playback: Avoid expensive API calls in tight loop.
We know we're dealing with GstPluginFeature.
2009-11-09 19:18:07 +01:00
Sebastian Dröge
d086c05c1f cddabasesrc: Add unit test for property settings
Also includes a regression test for bug #601104.
2009-11-09 18:12:15 +01:00
Sebastian Dröge
27d4f9dca3 cddabasesrc: Never return a negative track number in get_uri() 2009-11-09 18:12:15 +01:00
Sebastian Dröge
acaeed6131 cddabasesrc: Don't set the track to 1 every time a device is set
Fixes bug #601104.
2009-11-09 18:12:15 +01:00
Sebastian Dröge
dfd51aa82a inputselector: Remove useless variables and fix a uninitialized variable compiler warnings 2009-11-08 11:27:57 +01:00
Sebastian Dröge
6c15d9e8d4 decodebin2: Add property to disable/enable posting of stream-topology messages
Most people don't need this messages and generating them is quite
expensive.
2009-11-06 17:01:04 +01:00
Sebastian Dröge
5798b543df decodebin2: Protect subtitle elements and subtitle encoding by a new mutex
Using the object lock here can and will lead to deadlocks because
of deep-notifies of property changes: the deep-notify handler will
get the parent of objects, which will take the object lock again.

Fixes bug #600479.
2009-11-06 15:15:06 +01:00
Sebastian Dröge
f365385458 inputselector: Make sure that running_time->timestamp calculation never becomes negative 2009-11-06 13:14:14 +01:00
Mart Raudsepp
e75da74a93 examples: Correct casting of g_signal* funcs first arguments
This completes the deprecated GTK API fix in commits 81a0a986 and
79adfa54 - unlike gtk_signal_connect and co, g_signal_connect and
co take a gpointer, not a GtkObject.
2009-11-06 12:37:03 +01:00
Sebastian Dröge
97519751ad uridecodebin: Improve all-raw-caps detection for pads 2009-11-06 12:37:03 +01:00
Wim Taymans
4f3f9a1054 basesrc: fix startup position in the ringbuffer
When we start and we need to produce the first sample, go to the next sample
that will be written into the ringbuffer instead of trying to go to sample 0.
We relied on rather small ringbuffer sizes to correctly go to the current
sample, which breaks whith large buffers.

Fixes #600945
2009-11-06 12:22:00 +01:00
Sebastian Dröge
27034be461 inputselector: Use the start time (i.e. timestamp) as the last stop
Using the end time makes it impossible to replace buffers, which is
a big problem for subtitles that could have very long durations.
2009-11-06 12:11:21 +01:00
Sebastian Dröge
45cefdefa6 textoverlay: Synchronize video/text based on the running time
Instead of simply using the buffer timestamps.
2009-11-06 12:11:21 +01:00
Sebastian Dröge
8ed8d5e414 textoverlay: Clip text buffers to the text segment and reset segments properly 2009-11-06 12:11:21 +01:00
Sebastian Dröge
d941a9f6a6 textoverlay: Put the video segment into the instance struct instead of allocating it separately 2009-11-06 12:11:20 +01:00
Sebastian Dröge
8692174b50 textoverlay: Check if text timestamp/duration is valid before clipping 2009-11-06 12:11:20 +01:00
Tim-Philipp Müller
34e6718da9 theoradec: printf format fix 2009-11-05 23:34:10 +00:00
Olivier Crête
b5620e1241 gdpdepay: Clear adapter on flush and state change
Fixes #600469
2009-11-05 15:42:09 +01:00
Wim Taymans
8b93746b78 inputselector: use _get_caps_reffed() 2009-11-05 13:12:19 +01:00
Stefan Kost
a78c8bf3ed pad: rename new api from _refed to _reffed.
Due to popular demand rename the new api as we still can.
2009-11-05 13:00:27 +02:00
Wim Taymans
fcb283b78b playbin2: avoid copying caps
Use get_caps_refed() when we can.
2009-11-04 18:57:07 +01:00
Wim Taymans
89f02fb269 decodebin2: use new getcaps function to avoid copies
Use the gst_pad_get_caps_refed() to avoid some caps copy functions.
2009-11-04 18:31:09 +01:00
Wim Taymans
eb92aa282f uridecodebin: use faster element_link_pads
Use the faster gst_element_link_pads because we know for sure the sinkpad name
and we don't need to have the function search for a suitable pad anymore.
2009-11-04 17:50:11 +01:00
Wim Taymans
d8942e2850 baseaudiosink: make drift tolerance configurable
Add drift-tolerance property (defaulting to 20ms) to handle resync after clock
drift or timestamp drift instead of relying on the latency-time value for clock
drift and 500ms for timestamp drift.
Remove warning about discont timestamp and simply resync. The warning is in some
cases not correct and is triggered more frequently now that we lower the
tolerance value.
2009-11-04 16:16:31 +01:00
Sebastian Dröge
0672457604 playbin2: Return NOT_LINKED for unselected text pads from a demuxer
We want to return NOT_LINKED for unselected pads but only for pads
from the normal uridecodebin. This makes sure that subtitle streams
are not raced past audio/video from decodebin2's multiqueue.

For pads from suburidecodebin OK should always be returned, otherwise
it will most likely stop with an error.
2009-11-04 10:53:27 +01:00
Stefan Kost
f71ed36694 inputselector: also add inline to the proto to fix the build
Merged from gst-plugins-bad, e1e9be6dbe.
2009-11-04 08:20:59 +01:00
Sebastian Dröge
dd55311f3b uridecodebin: Initialize caps property with the default raw caps 2009-11-03 13:03:26 +01:00
Sebastian Dröge
0285d77d96 decodebin2: Use static caps for the default raw caps and put them into a separate header
This way we can use the same default raw caps everywhere.
2009-11-03 13:03:23 +01:00
Sebastian Dröge
60aa09d28c textoverlay: First draw outline text and then the real text
Improves the output a bit because no parts of the outline are
overwritten again.
2009-11-03 08:26:37 +01:00
Josep Torra Valles
e9d1819fe3 playbin: Make sure to keep a reference on the volume element
Fixes null pointer dereferences under certain circumstances.

Fixes bug #595401.
2009-11-02 07:30:54 +01:00
Edward Hervey
f9772089d0 po: queue2 has moved to core 2009-10-31 09:47:54 +01:00
Sebastian Dröge
e72c3029c0 playsink: Reset {mute,volume}-changed flags after setting the volume
These flags are there to make sure that the volume is set, if there
is no volume element yet.
2009-10-30 09:24:30 +01:00
Sebastian Dröge
598c937634 playsink: If notify::{volume,mute} is triggered by the volume element, update our internal state 2009-10-30 09:24:03 +01:00