platform/upstream/gstreamer.git
13 years agoplaybasebin: remove avoidable call to gst_object_set_name
René Stadler [Fri, 21 Oct 2011 19:57:17 +0000 (21:57 +0200)]
playbasebin: remove avoidable call to gst_object_set_name

13 years agooggdemux: remove avoidable call to gst_object_set_name
René Stadler [Fri, 21 Oct 2011 19:41:03 +0000 (21:41 +0200)]
oggdemux: remove avoidable call to gst_object_set_name

13 years agoaudioconvert: bury dead test program
René Stadler [Fri, 21 Oct 2011 19:39:01 +0000 (21:39 +0200)]
audioconvert: bury dead test program

13 years agoDisable ext/vorbis for the android ndk build
Reynaldo H. Verdejo Pinochet [Thu, 20 Oct 2011 13:13:46 +0000 (10:13 -0300)]
Disable ext/vorbis for the android ndk build

It currently makes the build fail. Idea is to enable
it back again once its building problems get sorted
out.

13 years agosubtitleoverlay: fix leaks of pad templates and internal proxy pads
René Stadler [Wed, 19 Oct 2011 17:44:06 +0000 (19:44 +0200)]
subtitleoverlay: fix leaks of pad templates and internal proxy pads

13 years agosubtitleoverlay: fix leak of element reference through pad block
René Stadler [Wed, 19 Oct 2011 17:37:07 +0000 (19:37 +0200)]
subtitleoverlay: fix leak of element reference through pad block

If the pad block never happens because there is no data flow at all, the
callback is never fired and the reference is never released. This causes a
reference cycle between the pad and element, so valgrind is not very vocal
about it (memory is still reachable).

13 years agoaudiodecoder: having gather queue contents implies some draining is in order
Mark Nauwelaerts [Tue, 18 Oct 2011 19:42:21 +0000 (21:42 +0200)]
audiodecoder: having gather queue contents implies some draining is in order

... which ensures e.g. processing and sending last fragment of reverse playback
downstream at EOS.

13 years agovorbisdec: do not try to read past the buffer array
Vincent Penquerc'h [Wed, 19 Oct 2011 14:28:44 +0000 (15:28 +0100)]
vorbisdec: do not try to read past the buffer array

https://bugzilla.gnome.org/show_bug.cgi?id=662108

13 years agovorbisdec: only finish header packet frame if received in-stream
Mark Nauwelaerts [Tue, 18 Oct 2011 19:40:54 +0000 (21:40 +0200)]
vorbisdec: only finish header packet frame if received in-stream

... rather than scaring audiodecoder with a frame extracted from caps.

Fixes #662108 (partially).

13 years agox(v)imagesink: make it more clean that "synchronous" props are not for avsync
Stefan Sauer [Wed, 19 Oct 2011 08:41:31 +0000 (10:41 +0200)]
x(v)imagesink: make it more clean that "synchronous" props are not for avsync

13 years agobaseaudiosink: fix unused variable compiler warning if debugging in core is disabled
Tim-Philipp Müller [Tue, 18 Oct 2011 23:32:13 +0000 (00:32 +0100)]
baseaudiosink: fix unused variable compiler warning if debugging in core is disabled

https://bugzilla.gnome.org/show_bug.cgi?id=660150

13 years agosubtitleoverlay: fix event unref in (rare) error case
René Stadler [Tue, 18 Oct 2011 11:00:29 +0000 (13:00 +0200)]
subtitleoverlay: fix event unref in (rare) error case

13 years agodecodebin2: fire drained signal where appropriate
Vincent Penquerc'h [Fri, 7 Oct 2011 16:41:32 +0000 (17:41 +0100)]
decodebin2: fire drained signal where appropriate

This will allow playbin2 to send its about-to-finish signal.
Taken out (apparently by mistake) by the EOS rewrite in july.

https://bugzilla.gnome.org/show_bug.cgi?id=661202

13 years agooggdemux: do not retry seeking indefinitely
Vincent Penquerc'h [Sun, 16 Oct 2011 10:32:41 +0000 (11:32 +0100)]
oggdemux: do not retry seeking indefinitely

https://bugzilla.gnome.org/show_bug.cgi?id=661897

13 years agovideotestsrc: fix LDADD missing GST_LIBS
Brian Cameron [Mon, 10 Oct 2011 11:11:59 +0000 (13:11 +0200)]
videotestsrc: fix LDADD missing GST_LIBS

13 years agovorbisenc: only push header buffers following initial events
Mark Nauwelaerts [Sun, 9 Oct 2011 19:19:32 +0000 (21:19 +0200)]
vorbisenc: only push header buffers following initial events

13 years agoaudioencoder: fix compile warning
Alessandro Decina [Sun, 9 Oct 2011 14:48:18 +0000 (16:48 +0200)]
audioencoder: fix compile warning

13 years agotests: vorbisenc: adjust discontinuity checking to audioencoder behaviour
Mark Nauwelaerts [Sat, 8 Oct 2011 18:17:43 +0000 (20:17 +0200)]
tests: vorbisenc: adjust discontinuity checking to audioencoder behaviour

... which still detects gaps and marks DISCONT, depending on configuration,
but may come up with somewhat different timestamps when crossing the gap.

13 years agotests: vorbisdec: properly configure audiodecoder when requiring perfect ts
Mark Nauwelaerts [Sat, 8 Oct 2011 18:16:04 +0000 (20:16 +0200)]
tests: vorbisdec: properly configure audiodecoder when requiring perfect ts

13 years agotests: vorbisdec: remove empty header buffer check
Mark Nauwelaerts [Sat, 8 Oct 2011 18:14:27 +0000 (20:14 +0200)]
tests: vorbisdec: remove empty header buffer check

... as empty buffers are discarded, and header buffers are now
also optionally retrieved from caps anyway.

13 years agoaudioencoder: only resync to upstream upon discont in perfect ts mode
Mark Nauwelaerts [Sat, 8 Oct 2011 18:13:11 +0000 (20:13 +0200)]
audioencoder: only resync to upstream upon discont in perfect ts mode

... as documented, where discont is marked here if tolerance has been
exceeded.

13 years agoaudiodecoder: fix timestamp tolerance handling
Mark Nauwelaerts [Sat, 8 Oct 2011 18:11:22 +0000 (20:11 +0200)]
audiodecoder: fix timestamp tolerance handling

13 years agoaudiodecoder: handle empty input by discarding
Mark Nauwelaerts [Sat, 8 Oct 2011 18:09:09 +0000 (20:09 +0200)]
audiodecoder: handle empty input by discarding

13 years agovorbisdec: port to audiodecoder
Mark Nauwelaerts [Fri, 7 Oct 2011 12:52:33 +0000 (14:52 +0200)]
vorbisdec: port to audiodecoder

13 years agoaudioencoder: make upstream queries MT-safe
Mark Nauwelaerts [Fri, 7 Oct 2011 12:33:04 +0000 (14:33 +0200)]
audioencoder: make upstream queries MT-safe

13 years agoaudiodecoder: make upstream queries and events MT-safe
Mark Nauwelaerts [Fri, 7 Oct 2011 12:32:33 +0000 (14:32 +0200)]
audiodecoder: make upstream queries and events MT-safe

13 years agovorbisenc: port to audioencoder
Mark Nauwelaerts [Wed, 5 Oct 2011 13:43:35 +0000 (15:43 +0200)]
vorbisenc: port to audioencoder

13 years agotests: actually test what we said we would
Vincent Penquerc'h [Thu, 6 Oct 2011 17:21:29 +0000 (18:21 +0100)]
tests: actually test what we said we would

All tests were testing the default sine wave

https://bugzilla.gnome.org/show_bug.cgi?id=661106

13 years agoaudiotestsrc: add missing break
Vincent Penquerc'h [Thu, 6 Oct 2011 17:20:32 +0000 (18:20 +0100)]
audiotestsrc: add missing break

And make violet noise usable

https://bugzilla.gnome.org/show_bug.cgi?id=661105

13 years agoplaysink: fix caps negotiation through the new convenience bins
Vincent Penquerc'h [Thu, 6 Oct 2011 14:38:49 +0000 (15:38 +0100)]
playsink: fix caps negotiation through the new convenience bins

The bins' getcaps was bypassing the inner elements, and thus
failing to account for the caps transformations they allow,
which caused YUV video pipelines to fail with ximagesink, which
does not support YUV, even though the convenience bin includes
a colorspace converter for just this purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=660816

13 years agoplaybin2: fix mismatch between video/ and video/x-dvd-subpicture
Vincent Penquerc'h [Thu, 6 Oct 2011 10:53:26 +0000 (11:53 +0100)]
playbin2: fix mismatch between video/ and video/x-dvd-subpicture

The new code was checking for a prefix, and would find video/
first. Check in two passes, first checking for a perfect match,
and falling back to a prefix check if nothing was found.

https://bugzilla.gnome.org/show_bug.cgi?id=657261

13 years agoencodebin: Re-enable parsers
Thiago Santos [Wed, 5 Oct 2011 00:17:37 +0000 (21:17 -0300)]
encodebin: Re-enable parsers

Re-enable parsers in encodebin to allow more passthrough scenarios
to work. Specially the ones that require changing 'stream formats'.
i.e. h264 in mkv to mpegts.

13 years agoplaysink: Add audio- and text-sink props
Robert Swain [Wed, 5 Oct 2011 10:45:19 +0000 (12:45 +0200)]
playsink: Add audio- and text-sink props

13 years agoauditestsrc: indent fix
Stefan Sauer [Tue, 4 Oct 2011 21:09:42 +0000 (23:09 +0200)]
auditestsrc: indent fix

13 years agoplaysink: Add video-sink property
Robert Swain [Tue, 4 Oct 2011 14:22:55 +0000 (16:22 +0200)]
playsink: Add video-sink property

The video-sink property allows manual specification via g_object_set ()
of the video sink element to be used.

13 years agoplaybin2: Minor cleanup of decoder-sink compatibility checking code
Sebastian Dröge [Mon, 3 Oct 2011 13:20:06 +0000 (15:20 +0200)]
playbin2: Minor cleanup of decoder-sink compatibility checking code

13 years agoplaybin2: Make sure that the decoders we plug are compatible with the fixed sink
Thibault Saunier [Fri, 30 Sep 2011 15:29:34 +0000 (12:29 -0300)]
playbin2: Make sure that the decoders we plug are compatible with the fixed sink

The fact that a decoder is not compatible with the fixed sink
is currently happenning in the case where we have hardware accelerated
video decoders on the system (especially vaapi elements that are actually plugged),
and the user is providing a sink that doesn't support the surface.

A simple example that shows how it used to crash on a system where gstreamer-vaapi
is installed:
    gst-launch playbin2 video-sink=xvimagesink uri=/codec/supported/by/vaapi

What we are now doing in this case, is avoid using the accelerated
decoder and plug a "normal" decoder instead (if avalaible).

This commit doesn't handle the case where we have hardware accelerated
demuxing.

13 years agoencoding-profile: add a function to create a profile from a discoverer info
Vincent Penquerc'h [Fri, 18 Feb 2011 11:48:37 +0000 (11:48 +0000)]
encoding-profile: add a function to create a profile from a discoverer info

Only A/V streams are added at the moment, there does not seem to be
a similar way to add other streams (eg, subtitles).

https://bugzilla.gnome.org/show_bug.cgi?id=642878

13 years agoalsasrc: fail gracefully when ALSA does not give timestamps
Vincent Penquerc'h [Mon, 26 Sep 2011 23:26:29 +0000 (00:26 +0100)]
alsasrc: fail gracefully when ALSA does not give timestamps

https://bugzilla.gnome.org/show_bug.cgi?id=660170

13 years agodecodebin2: Use a TIME limit for pre-rolling in live streams and not in non-live...
Sebastian Dröge [Mon, 3 Oct 2011 08:55:53 +0000 (10:55 +0200)]
decodebin2: Use a TIME limit for pre-rolling in live streams and not in non-live streams

Fixes bug #647769 for real.

13 years agotextoverlay: add YV12 support
Vincent Penquerc'h [Sat, 1 Oct 2011 00:05:00 +0000 (01:05 +0100)]
textoverlay: add YV12 support

Basically the same as I420, just with chroma planes swapped.

https://bugzilla.gnome.org/show_bug.cgi?id=660604

13 years agoencodebin: Fix typo on formatter adding condition
Thiago Santos [Fri, 30 Sep 2011 12:44:12 +0000 (09:44 -0300)]
encodebin: Fix typo on formatter adding condition

The condition is if the muxer doesn't have tag setter *and* isn't
a formatter itself. Any of those two conditions makes the muxer
good enough to not need a formatter.

13 years agoaudiodecoder: really push pending events
Mark Nauwelaerts [Wed, 28 Sep 2011 13:41:16 +0000 (15:41 +0200)]
audiodecoder: really push pending events

13 years agoaudioencoder: remove more tags from upstream tag events such as bitrate tags
Tim-Philipp Müller [Wed, 28 Sep 2011 13:32:20 +0000 (14:32 +0100)]
audioencoder: remove more tags from upstream tag events such as bitrate tags

We want to remove all codec specific tags.

13 years agovideotestsrc: Fix compiler warning on 64 bit mingw-w64
Raimo Järvi [Tue, 27 Sep 2011 22:56:42 +0000 (01:56 +0300)]
videotestsrc: Fix compiler warning on 64 bit mingw-w64

Fixes bug #660304.

13 years agoplaybin2: Fix compiler warnings on 64 bit mingw-w64
Raimo Järvi [Tue, 27 Sep 2011 22:11:30 +0000 (01:11 +0300)]
playbin2: Fix compiler warnings on 64 bit mingw-w64

Fixes bug #660301.

13 years agoaudioencoder: only got_data if we really got some
Mark Nauwelaerts [Tue, 27 Sep 2011 14:18:05 +0000 (16:18 +0200)]
audioencoder: only got_data if we really got some

... which avoids going loopy with casual subclass.

13 years agoaudioencoder: really push pending events
Mark Nauwelaerts [Tue, 27 Sep 2011 14:57:45 +0000 (16:57 +0200)]
audioencoder: really push pending events

13 years agoaudioencoder: send tag event after pending events
Mark Nauwelaerts [Tue, 27 Sep 2011 14:16:54 +0000 (16:16 +0200)]
audioencoder: send tag event after pending events

... which probably includes a pending newsegment event.

13 years agoaudioencoder: protect pending_events with proper lock
Mark Nauwelaerts [Tue, 27 Sep 2011 14:16:29 +0000 (16:16 +0200)]
audioencoder: protect pending_events with proper lock

13 years agoaudioencoder: clean up some documentation
Mark Nauwelaerts [Tue, 27 Sep 2011 13:31:20 +0000 (15:31 +0200)]
audioencoder: clean up some documentation

13 years agodocs: minor docs fix
Tim-Philipp Müller [Mon, 26 Sep 2011 23:32:41 +0000 (00:32 +0100)]
docs: minor docs fix

13 years agodocs: Adjust for GstAudioEncoder API changes
Sebastian Dröge [Mon, 26 Sep 2011 14:36:56 +0000 (16:36 +0200)]
docs: Adjust for GstAudioEncoder API changes

13 years agowin32: Adjust for GstAudioEncoder API changes
Sebastian Dröge [Mon, 26 Sep 2011 14:36:22 +0000 (16:36 +0200)]
win32: Adjust for GstAudioEncoder API changes

13 years agoaudioencoder: Improve set_frame_sample_{min,max} documentation
Sebastian Dröge [Mon, 26 Sep 2011 14:35:55 +0000 (16:35 +0200)]
audioencoder: Improve set_frame_sample_{min,max} documentation

13 years agoaudiodecoder: Fix thread safety issues if both pads have different streaming threads
Sebastian Dröge [Mon, 26 Sep 2011 14:22:00 +0000 (16:22 +0200)]
audiodecoder: Fix thread safety issues if both pads have different streaming threads

13 years agoaudiodecoder: Delay sending of serialized events to finish_frame()
Sebastian Dröge [Mon, 26 Sep 2011 14:19:42 +0000 (16:19 +0200)]
audiodecoder: Delay sending of serialized events to finish_frame()

13 years agoRevert "audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code"
Sebastian Dröge [Mon, 26 Sep 2011 14:02:51 +0000 (16:02 +0200)]
Revert "audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code"

This reverts commit 11e375486e07cfa0686a97b5cf6110909b3a828c.

GST_BOILERPLATE() can't define an abstract type and
G_DEFINE_ABSTRACT_TYPE() does not pass the class struct to
the instance_init function and there's no way to get the
class struct of the current type in instance_init().

13 years agoaudioencoder: Add support for requesting a minimum and maximum number of samples...
Sebastian Dröge [Mon, 26 Sep 2011 13:59:22 +0000 (15:59 +0200)]
audioencoder: Add support for requesting a minimum and maximum number of samples per frame

This extends the special case of a fixed number of samples per frame
that was supported before already.

13 years agoaudioencoder: Fix thread safety issues if both pads have different streaming threads
Sebastian Dröge [Mon, 26 Sep 2011 13:45:40 +0000 (15:45 +0200)]
audioencoder: Fix thread safety issues if both pads have different streaming threads

13 years agoaudioencoder: Delay sending of serialized events to finish_frame()
Sebastian Dröge [Mon, 26 Sep 2011 13:42:14 +0000 (15:42 +0200)]
audioencoder: Delay sending of serialized events to finish_frame()

This makes sure that the caps are already set before any serialized
events are sent downstream.

13 years agoaudioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code
Sebastian Dröge [Mon, 26 Sep 2011 13:34:54 +0000 (15:34 +0200)]
audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code

13 years agoaudioencoder: add some tag handling convenience help
Mark Nauwelaerts [Mon, 26 Sep 2011 13:14:41 +0000 (15:14 +0200)]
audioencoder: add some tag handling convenience help

13 years agoaudioencoder: provide CODEC/AUDIO_CODEC handling
Mark Nauwelaerts [Mon, 26 Sep 2011 12:48:55 +0000 (14:48 +0200)]
audioencoder: provide CODEC/AUDIO_CODEC handling

13 years agoaudioencoder: filter AUDIO_CODEC/CODEC tags from passing tag events
Mark Nauwelaerts [Mon, 26 Sep 2011 11:42:38 +0000 (13:42 +0200)]
audioencoder: filter AUDIO_CODEC/CODEC tags from passing tag events

13 years agotypefindfunctions: backport some const-ifications from 0.11 branch
Tim-Philipp Müller [Sun, 25 Sep 2011 14:31:01 +0000 (15:31 +0100)]
typefindfunctions: backport some const-ifications from 0.11 branch

To keep code identical as much as possible between the two branches,
for easier merging.

13 years agotypefindfunctions: fix indentation
Tim-Philipp Müller [Sun, 25 Sep 2011 14:24:56 +0000 (15:24 +0100)]
typefindfunctions: fix indentation

13 years agoencodebin: Avoid unnecessary read only caps copy
Robert Swain [Fri, 23 Sep 2011 15:50:31 +0000 (17:50 +0200)]
encodebin: Avoid unnecessary read only caps copy

13 years agoaudioencoder: proxy some more optional downstream caps fields to upstream
Mark Nauwelaerts [Thu, 22 Sep 2011 13:38:51 +0000 (15:38 +0200)]
audioencoder: proxy some more optional downstream caps fields to upstream

13 years agoaudioencoder: changed is verily the opposite of equal
Mark Nauwelaerts [Thu, 22 Sep 2011 13:38:22 +0000 (15:38 +0200)]
audioencoder: changed is verily the opposite of equal

13 years agoaudioencoder: prevent crashing when comparing to a freshly inited GstAudioInfo
Mark Nauwelaerts [Thu, 22 Sep 2011 13:37:07 +0000 (15:37 +0200)]
audioencoder: prevent crashing when comparing to a freshly inited GstAudioInfo

13 years agoaudio: some more accessor macros for GstAudioInfo
Mark Nauwelaerts [Thu, 22 Sep 2011 13:36:22 +0000 (15:36 +0200)]
audio: some more accessor macros for GstAudioInfo

13 years agoaudiodecoder: fix documentation typo
Mark Nauwelaerts [Thu, 22 Sep 2011 13:34:41 +0000 (15:34 +0200)]
audiodecoder: fix documentation typo

13 years agovideorate: Add tests for the max-rate case
Sjoerd Simons [Mon, 19 Sep 2011 17:32:26 +0000 (18:32 +0100)]
videorate: Add tests for the max-rate case

13 years agovideorate: Print which caps didn't match up
Sjoerd Simons [Mon, 19 Sep 2011 17:31:07 +0000 (18:31 +0100)]
videorate: Print which caps didn't match up

13 years agovideorate: Add a max-rate property
Sjoerd Simons [Mon, 19 Sep 2011 17:26:04 +0000 (18:26 +0100)]
videorate: Add a max-rate property

In various use-case you want to dynamically change the framerate (e.g.
live streams where the available network bandwidth changes). Doing this
via capsfilters in the pipeline tends to be very cumbersome and racy,
using this property instead makes it very painless.

13 years agovideorate: Add test for caps negotiation
Sjoerd Simons [Thu, 1 Sep 2011 16:05:23 +0000 (17:05 +0100)]
videorate: Add test for caps negotiation

13 years agovideorate: Add more strict caps negotiation
Sjoerd Simons [Thu, 1 Sep 2011 15:47:49 +0000 (16:47 +0100)]
videorate: Add more strict caps negotiation

When in drop-only mode we can never provide a framerate that is higher
then the input, so let the caps negotiation reflect this.

13 years agovideorate: don't unref event we don't own
Tim-Philipp Müller [Tue, 20 Sep 2011 12:35:55 +0000 (13:35 +0100)]
videorate: don't unref event we don't own

http://bugzilla.gnome.org/show_bug.cgi?id=659562

13 years agodecodebin2: Only check if this is a discarded type if we have fixed caps
Sebastian Dröge [Tue, 20 Sep 2011 12:04:45 +0000 (14:04 +0200)]
decodebin2: Only check if this is a discarded type if we have fixed caps

For unfixed caps we will get here again later when the caps are fixed.

13 years agodecodebin2: Only call autoplug-continue with fixed caps
Sebastian Dröge [Tue, 20 Sep 2011 12:03:47 +0000 (14:03 +0200)]
decodebin2: Only call autoplug-continue with fixed caps

With unfixed caps we can't reliably decide if the final caps
are going to be "raw" (e.g. supported by a sink) or not.

We will get here again later when the caps are fixed.

13 years agodecodebin2: Fix unit test by strictly implementing parser behaviour instead of relyin...
Sebastian Dröge [Tue, 20 Sep 2011 11:45:55 +0000 (13:45 +0200)]
decodebin2: Fix unit test by strictly implementing parser behaviour instead of relying on basetransform

13 years agooggstream: only use information from skeleton if we have nothing better
Vincent Penquerc'h [Thu, 13 Jan 2011 15:35:30 +0000 (15:35 +0000)]
oggstream: only use information from skeleton if we have nothing better

The codec setup headers are a lot more likely to have correct information,
especially as it's easy to remux a skeleton in a file where streams don't
have the same parameters (I've even seen a file with two skeletons).

Still, this is useful in the case we have a codec we can't decode, so we
can at least (theoretically) convert granpos to time, so we discard this
information if the codec setup has already provided it.

This fixes playback on (at lesat) the original archive.org encoding of
"The Night of the Living Dead" (now replaced by another encoding).

https://bugzilla.gnome.org/show_bug.cgi?id=612443

13 years agodiscoverer: Don't use gtk-doc /* < ... > */ style comments for signals
Age Bosma [Mon, 19 Sep 2011 12:16:19 +0000 (14:16 +0200)]
discoverer: Don't use gtk-doc /* < ... > */ style comments for signals

The /*< ... >*/ style is only used for public|protected|private,
signal comments use /* signals */. This prevents the some code
parsers/binding generators to be confused by the comment.

13 years agosubtitleoverlay: Get the target of the video sinkpad, not the target sinkpad in the...
Sebastian Dröge [Mon, 19 Sep 2011 12:02:00 +0000 (14:02 +0200)]
subtitleoverlay: Get the target of the video sinkpad, not the target sinkpad in the video setcaps handler

13 years agodecodebin2: Initialize variable correctly
Youness Alaoui [Thu, 18 Aug 2011 15:13:23 +0000 (15:13 +0000)]
decodebin2: Initialize variable correctly

If subdrained isn't initialized to FALSE then a chain might think
that its group is drained when in fact it's not and this can cause
a switch too early or even cause a deadlock.

13 years agodecodebin2: Rewrite EOS-handling code
Edward Hervey [Thu, 28 Jul 2011 16:44:33 +0000 (16:44 +0000)]
decodebin2: Rewrite EOS-handling code

This is now really threadsafe and improves switching
between different groups.

13 years agodecodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is availab...
Sebastian Dröge [Mon, 19 Sep 2011 09:53:02 +0000 (11:53 +0200)]
decodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is available but no decoder

Fixes bug #658846.

13 years agortspdefs: add RTCP-Interval header
Mark Nauwelaerts [Mon, 1 Aug 2011 05:54:02 +0000 (07:54 +0200)]
rtspdefs: add RTCP-Interval header

13 years agosubtitleoverlay: Implement support for switching between raw and non-raw video streams
Sebastian Dröge [Mon, 19 Sep 2011 09:24:47 +0000 (11:24 +0200)]
subtitleoverlay: Implement support for switching between raw and non-raw video streams

13 years agotextoverlay: Protect against accessing the NULL parent of the pads during shutdown
Sebastian Dröge [Mon, 19 Sep 2011 07:34:08 +0000 (09:34 +0200)]
textoverlay: Protect against accessing the NULL parent of the pads during shutdown

Fixes bug #658901.

13 years agooggdemux: remove superfluous check in newsegment event handler
Tim-Philipp Müller [Fri, 16 Sep 2011 19:14:39 +0000 (20:14 +0100)]
oggdemux: remove superfluous check in newsegment event handler

If we get a newsegment event from upstream, we can be quite
sure we're not operating pull-based.

13 years agooggdemux: minor printf format fix
Tim-Philipp Müller [Fri, 16 Sep 2011 19:11:56 +0000 (20:11 +0100)]
oggdemux: minor printf format fix

13 years agooggdemux: fix wedge when seeking twice quickly in push mode
Vincent Penquerc'h [Wed, 14 Sep 2011 11:23:19 +0000 (12:23 +0100)]
oggdemux: fix wedge when seeking twice quickly in push mode

This could happen when testing with navseek, and pressing
right and left at roughly the same time. The current chain
is temporarily moved away, and this caused the flush events
not to be sent to the source pads, which would cause the
data queues downstream to reject incoming data after the
seek, and shut down, wedging the pipeline.

Now, I can't really decide whether this is a nasty steaming
hack or a good fix, but it certainly does fix the issue, and
does not seem to break anything else so far.

https://bugzilla.gnome.org/show_bug.cgi?id=621897

13 years agooggdemux: implement push mode seeking
Vincent Penquerc'h [Sat, 13 Aug 2011 13:18:56 +0000 (14:18 +0100)]
oggdemux: implement push mode seeking

This patch implements seeking in push mode (eg, over the net)
in Ogg, using the double bisection method.
As a side effect, it also fixes duration determination of network
streams, by seeking to the end to check the actual duration.

Known issues:
- Getting an EOS while seeking stops the streaming task, I can't
  find a way to prevent this (eg, by issuing a seek in the event
  handler).
- Seeking twice in a VERY short succession with playbin2 fails
  for streams with subtitles, we end up pushing in a dataqueue
  which is flushing. Rare in normal use AFAICT.
- Seeking is slow on slow links - byte ranges guesses could be
  made better, decreasing the number of required requests
- If no granule position is found in the last 64 KB of a stream,
  duration will be left unknown (should be pretty rare)

https://bugzilla.gnome.org/show_bug.cgi?id=621897

13 years agoplaybin2: fix compiler warning
Alessandro Decina [Thu, 15 Sep 2011 20:04:56 +0000 (22:04 +0200)]
playbin2: fix compiler warning

Remove a check for gchar >= 128

13 years agoadder: don't access the event after pushing
Stefan Sauer [Thu, 15 Sep 2011 14:47:26 +0000 (16:47 +0200)]
adder: don't access the event after pushing

Fixes valgrind warnings.

13 years agoRevert "playbin2: autoplug sink if stream is incompatible to the configured one"
Sebastian Dröge [Thu, 15 Sep 2011 12:27:35 +0000 (14:27 +0200)]
Revert "playbin2: autoplug sink if stream is incompatible to the configured one"

This reverts commit b0b4e286c8cde2e79a959a444a2c68e99c3f29c6.

We agreed that the previous (pre-.35) behaviour is broken and a bug and the
current behaviour is correct, deterministic and allows the application to
handle stuff properly while the old behaviour can't be handled properly by
applications and just worked in some applications by luck.

The solution to the problem that was solved by relying on the old, broken
behaviour would be, to make decodebin2/playbin2 more aware of decoders and
improve the autoplugging of decoders by considering the caps supported by the
sink instead of just using something with the highest rank.

See bug #656923.

13 years agoplaybin2: autoplug sink if stream is incompatible to the configured one
Josep Torra [Thu, 15 Sep 2011 07:23:54 +0000 (09:23 +0200)]
playbin2: autoplug sink if stream is incompatible to the configured one

Fixes regression since 0.10.33 where sinks that can cope with non raw
caps or custom caps are not autoplugged if there's a sink configured
with the properties video-sink and audio-sink which cannot handle
the stream. This change checks for compatibility on the configured one
and use it if success. Otherwhise it tries with the found factories.

13 years agooggdemux: do not propagate discontinuities in sparse streams
Vincent Penquerc'h [Sat, 13 Aug 2011 13:14:19 +0000 (14:14 +0100)]
oggdemux: do not propagate discontinuities in sparse streams

The first packet of a sparse stream may arrive after an initial
delay in the stream. If ogg_stream_packetout reports a discontinuity
in a sparse stream, do not propagate it to other streams in the
chain unnecessarily.

https://bugzilla.gnome.org/show_bug.cgi?id=621897