Edward Hervey [Wed, 5 Oct 2011 09:57:54 +0000 (11:57 +0200)]
audio: Make sure 'channels' and 'channel-positions' are coherent
If channel-positions are present, check they match the reported
'channels' value.
Edward Hervey [Wed, 5 Oct 2011 09:51:07 +0000 (11:51 +0200)]
audio: Fix overread in channel positions
The array we're writing to is limited to 64 ... but the amount of
input positions might be lower than 64. Therefore use MIN and not
MAX to know how many values to read from the array.
Wim Taymans [Tue, 4 Oct 2011 16:06:07 +0000 (18:06 +0200)]
playbin2: port new bits to 0.11
Wim Taymans [Tue, 4 Oct 2011 15:58:49 +0000 (17:58 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Tue, 4 Oct 2011 15:56:19 +0000 (17:56 +0200)]
Makefile: remove 0.11 fixme
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.
Sebastian Dröge [Mon, 3 Oct 2011 13:20:06 +0000 (15:20 +0200)]
playbin2: Minor cleanup of decoder-sink compatibility checking code
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.
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
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
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.
Wim Taymans [Mon, 3 Oct 2011 08:11:19 +0000 (10:11 +0200)]
Merge branch 'master' into 0.11
Conflicts:
ext/pango/gsttextoverlay.c
gst/encoding/gstencodebin.c
Wim Taymans [Mon, 3 Oct 2011 08:02:21 +0000 (10:02 +0200)]
video: add h264 transfer functions
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
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.
Tim-Philipp Müller [Fri, 30 Sep 2011 09:54:26 +0000 (10:54 +0100)]
audio: don't use GST_PTR_FORMAT for segments
Avoids crashes with debugging output enabled.
Wim Taymans [Fri, 30 Sep 2011 09:45:51 +0000 (11:45 +0200)]
Revert "sbutitleoverlay: fix compiler warning"
This reverts commit
ed792293e7fc2bd54f4627649bb836a05709b5ab.
Not needed anymore because of another commit
Wim Taymans [Fri, 30 Sep 2011 09:00:31 +0000 (11:00 +0200)]
video: add another color matrix for mpeg2
Wim Taymans [Fri, 30 Sep 2011 09:00:15 +0000 (11:00 +0200)]
sbutitleoverlay: fix compiler warning
Wim Taymans [Fri, 30 Sep 2011 08:59:52 +0000 (10:59 +0200)]
video: fix docs
Tim-Philipp Müller [Thu, 29 Sep 2011 20:50:59 +0000 (21:50 +0100)]
vorbisdec: set channel positions
Tim-Philipp Müller [Thu, 29 Sep 2011 20:30:52 +0000 (21:30 +0100)]
subitleoverlay: fix compiler warning
gstsubtitleoverlay.c: In function 'gst_subtitle_overlay_video_sink_event':
gstsubtitleoverlay.c:1736:22: error: 'target' may be used uninitialized in this function
Wim Taymans [Thu, 29 Sep 2011 15:43:57 +0000 (17:43 +0200)]
back to development
Wim Taymans [Thu, 29 Sep 2011 15:43:00 +0000 (17:43 +0200)]
RELEASE 0.11.1
Wim Taymans [Thu, 29 Sep 2011 15:41:34 +0000 (17:41 +0200)]
Update .po files
Wim Taymans [Thu, 29 Sep 2011 11:46:36 +0000 (13:46 +0200)]
tests: update for new audio caps
Wim Taymans [Thu, 29 Sep 2011 11:45:58 +0000 (13:45 +0200)]
defs: add new symbols
Wim Taymans [Wed, 28 Sep 2011 14:08:14 +0000 (16:08 +0200)]
audiodecoder: fix refcounting error
Wim Taymans [Wed, 28 Sep 2011 14:07:53 +0000 (16:07 +0200)]
ringbuffer: store info so we can debug it
Wim Taymans [Wed, 28 Sep 2011 13:46:40 +0000 (15:46 +0200)]
Merge branch 'master' into 0.11
Mark Nauwelaerts [Wed, 28 Sep 2011 13:41:16 +0000 (15:41 +0200)]
audiodecoder: really push pending events
Wim Taymans [Wed, 28 Sep 2011 13:35:56 +0000 (15:35 +0200)]
audiodecoder: add method to set output caps
Add a method to configure the output caps. Subclasses can't use
gst_pad_set_caps() anymore because then we won't see the caps.
Unbreak the padtemplate registration, the GTypeClass that is configured in the
object during _init is not the right one, we need to use the klass passed as the
argument to the init function..
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.
Wim Taymans [Wed, 28 Sep 2011 09:35:46 +0000 (11:35 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst-libs/gst/audio/gstaudioencoder.c
gst/playback/gstplaybin2.c
gst/videotestsrc/videotestsrc.c
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.
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.
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.
Mark Nauwelaerts [Tue, 27 Sep 2011 14:57:45 +0000 (16:57 +0200)]
audioencoder: really push 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.
Mark Nauwelaerts [Tue, 27 Sep 2011 14:16:29 +0000 (16:16 +0200)]
audioencoder: protect pending_events with proper lock
Mark Nauwelaerts [Tue, 27 Sep 2011 13:31:20 +0000 (15:31 +0200)]
audioencoder: clean up some documentation
Wim Taymans [Tue, 27 Sep 2011 09:19:24 +0000 (11:19 +0200)]
docs: improve docs
Tim-Philipp Müller [Mon, 26 Sep 2011 23:32:41 +0000 (00:32 +0100)]
docs: minor docs fix
Wim Taymans [Mon, 26 Sep 2011 19:11:14 +0000 (21:11 +0200)]
audioenc: fix compilation
Wim Taymans [Mon, 26 Sep 2011 17:22:05 +0000 (19:22 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudioencoder.c
gst/encoding/gstencodebin.c
Sebastian Dröge [Mon, 26 Sep 2011 14:36:56 +0000 (16:36 +0200)]
docs: 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
Sebastian Dröge [Mon, 26 Sep 2011 14:35:55 +0000 (16:35 +0200)]
audioencoder: Improve set_frame_sample_{min,max} documentation
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
Sebastian Dröge [Mon, 26 Sep 2011 14:19:42 +0000 (16:19 +0200)]
audiodecoder: Delay sending of serialized events to finish_frame()
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().
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.
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
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.
Sebastian Dröge [Mon, 26 Sep 2011 13:34:54 +0000 (15:34 +0200)]
audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code
Mark Nauwelaerts [Mon, 26 Sep 2011 13:14:41 +0000 (15:14 +0200)]
audioencoder: add some tag handling convenience help
Mark Nauwelaerts [Mon, 26 Sep 2011 12:48:55 +0000 (14:48 +0200)]
audioencoder: provide CODEC/AUDIO_CODEC handling
Mark Nauwelaerts [Mon, 26 Sep 2011 11:42:38 +0000 (13:42 +0200)]
audioencoder: filter AUDIO_CODEC/CODEC tags from passing tag events
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.
Tim-Philipp Müller [Sun, 25 Sep 2011 14:24:56 +0000 (15:24 +0100)]
typefindfunctions: fix indentation
Tim-Philipp Müller [Fri, 23 Sep 2011 20:18:47 +0000 (21:18 +0100)]
libs: remove unused floatcast header-only library
There's no code whatsoever that uses these macros. If anyone
ever feels the need to resurrect them, we should add them to
gstutils.h in core or libgstaudio or so.
Edward Hervey [Fri, 23 Sep 2011 16:27:11 +0000 (18:27 +0200)]
Merge branch 'master' into 0.11
Conflicts:
ext/ogg/gstoggdemux.c
ext/pango/gsttextoverlay.c
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstbaseaudiosrc.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
Robert Swain [Fri, 23 Sep 2011 15:50:31 +0000 (17:50 +0200)]
encodebin: Avoid unnecessary read only caps copy
Edward Hervey [Wed, 21 Sep 2011 11:30:43 +0000 (13:30 +0200)]
gst-libs: Temporarily remove dependency of gstaudio on gstpbutils
Also re-order the SUBDIRS in the higher-level Makefile so it cleanly
installs.
https://bugzilla.gnome.org/show_bug.cgi?id=657675
Mark Nauwelaerts [Thu, 22 Sep 2011 13:38:51 +0000 (15:38 +0200)]
audioencoder: proxy some more optional downstream caps fields to upstream
Mark Nauwelaerts [Thu, 22 Sep 2011 13:38:22 +0000 (15:38 +0200)]
audioencoder: changed is verily the opposite of equal
Mark Nauwelaerts [Thu, 22 Sep 2011 13:37:07 +0000 (15:37 +0200)]
audioencoder: prevent crashing when comparing to a freshly inited GstAudioInfo
Mark Nauwelaerts [Thu, 22 Sep 2011 13:36:22 +0000 (15:36 +0200)]
audio: some more accessor macros for GstAudioInfo
Mark Nauwelaerts [Thu, 22 Sep 2011 13:34:41 +0000 (15:34 +0200)]
audiodecoder: fix documentation typo
Edward Hervey [Wed, 21 Sep 2011 11:54:27 +0000 (13:54 +0200)]
Update common to 0.11 branch
Edward Hervey [Wed, 21 Sep 2011 11:31:35 +0000 (13:31 +0200)]
win32: Update .def files
Sjoerd Simons [Mon, 19 Sep 2011 17:32:26 +0000 (18:32 +0100)]
videorate: Add tests for the max-rate case
Sjoerd Simons [Mon, 19 Sep 2011 17:31:07 +0000 (18:31 +0100)]
videorate: Print which caps didn't match up
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.
Sjoerd Simons [Thu, 1 Sep 2011 16:05:23 +0000 (17:05 +0100)]
videorate: Add test for 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.
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
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.
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.
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
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
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.
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
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.
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.
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.
Mark Nauwelaerts [Mon, 1 Aug 2011 05:54:02 +0000 (07:54 +0200)]
rtspdefs: add RTCP-Interval header
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
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.
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.
Tim-Philipp Müller [Fri, 16 Sep 2011 19:11:56 +0000 (20:11 +0100)]
oggdemux: minor printf format fix
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
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
Alessandro Decina [Thu, 15 Sep 2011 20:04:56 +0000 (22:04 +0200)]
playbin2: fix compiler warning
Remove a check for gchar >= 128
Stefan Sauer [Thu, 15 Sep 2011 14:47:26 +0000 (16:47 +0200)]
adder: don't access the event after pushing
Fixes valgrind warnings.
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.
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.
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
Josep Torra [Mon, 12 Sep 2011 13:48:59 +0000 (15:48 +0200)]
Revert "playsink: only add text overlay if vido sink also accepts raw caps"
This reverts commit
a22faad18a73a27a2a0c903748c1a355df4d8c13. Instead
of disabling subtitles completelly when video stream have custom caps,
just let the sutbtileoverlay cope with them as now it's able to.
Josep Torra [Mon, 12 Sep 2011 13:46:46 +0000 (15:46 +0200)]
subtitleoverlay: gracefully handle non raw video streams
Implement handling of non raw video streams by avoiding colorspace
elements and autoplugging a compatible renderer if available. Fallback
to passthrough if no compatible renderer is found.