Carlos Rafael Giani [Tue, 2 Jul 2013 16:20:39 +0000 (18:20 +0200)]
audioresample: disable 16-bit integer NEON support
it seems to be broken (produces no audio), plus the performance gain
is small
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Sebastian Dröge [Tue, 2 Jul 2013 12:25:28 +0000 (14:25 +0200)]
playbin: If we had a previous autoplugged sink, try to reuse it
https://bugzilla.gnome.org/show_bug.cgi?id=701997
Sebastian Dröge [Tue, 2 Jul 2013 12:18:20 +0000 (14:18 +0200)]
playsink: If we switch sinks, make sure that the old sink is set to NULL
Sebastian Dröge [Tue, 2 Jul 2013 12:02:57 +0000 (14:02 +0200)]
playbin: Don't change the state of sinks that we passed to playsink already
Sebastian Dröge [Tue, 2 Jul 2013 12:01:52 +0000 (14:01 +0200)]
playsink: Consider new audio/video sinks when reconfiguring
Sebastian Dröge [Tue, 2 Jul 2013 10:27:03 +0000 (12:27 +0200)]
playbin: Improve debug output regarding sink selection
Brendan Long [Mon, 1 Jul 2013 18:52:43 +0000 (12:52 -0600)]
playbin: Post an error message if a stream combiner doesn't return a request pad.
Sebastian Dröge [Mon, 1 Jul 2013 11:45:25 +0000 (13:45 +0200)]
playbin: Only intersect to check if a sink can handle raw caps
Doing a subset check requires fixed caps, which we might not have here.
https://bugs.webkit.org/show_bug.cgi?id=116042
Vincent Penquerc'h [Mon, 1 Jul 2013 09:39:02 +0000 (10:39 +0100)]
pbutils: allow describing unfixed caps if they share the same media type
Caps description and missing plugin code does not really need caps to
be fixed, and indeed they may not be if giving encodebin unfixed caps
that correspond to an unknown encoder or muxer.
So we relax the check, and allow unfixed caps if all the structures
refer to the same media type.
Sebastian Dröge [Mon, 1 Jul 2013 09:16:34 +0000 (11:16 +0200)]
videodecoder: Send all pending events with type < CAPS before sending caps
Mathieu Duponchelle [Thu, 27 Jun 2013 14:33:15 +0000 (16:33 +0200)]
videoencoder: Send all pending events with type < CAPS before sending caps.
https://bugzilla.gnome.org/show_bug.cgi?id=703196
Vincent Penquerc'h [Fri, 28 Jun 2013 13:48:19 +0000 (14:48 +0100)]
typefind: avoid too low mpeg/ts probability on small amount of data
With the current test, we get into problems when we try to typefind
a MPEG stream from a small amount of data, which can happen when
we get data pushed from a HTTP source. We thus make a second test
to give higher probability if all the potential headers were either
pack or pes headers (ie, no potential header was unrecognized).
This fixes an issue with a MPEG1/MP2 stream being properly discovered
as video/mpeg from a file, but as audio/mpeg from souphttpsrc.
https://bugzilla.gnome.org/show_bug.cgi?id=703256
Sebastian Dröge [Sun, 30 Jun 2013 16:17:15 +0000 (18:17 +0200)]
video(enc|dec)oder: Don't return not-negotiated if flushing
If the pad is flushing after a failed negotiation, return
GST_FLOW_FLUSHING instead from finish_frame().
https://bugzilla.gnome.org/show_bug.cgi?id=701763
Sebastian Dröge [Sun, 30 Jun 2013 16:16:35 +0000 (18:16 +0200)]
audioencoder: Don't return not-negotiated if flushing
If the pad is flushing after a failed negotiation, return
GST_FLOW_FLUSHING instead from finish_frame().
https://bugzilla.gnome.org/show_bug.cgi?id=701763
Edward Hervey [Fri, 14 Jun 2013 05:23:40 +0000 (07:23 +0200)]
pbutils: descriptions: Allow smart codec tag handling
We already have internally the information on what type of stream (audio,
video, container, subtitle, ...) a certain caps is.
Instead of forcing callers to specify which CODEC_TAG category a certain
caps is, use that information to make a smart choice.
Does not break previous behaviour of gst_pb_utils_add_codec_description_to_tag_list
(if tag is specified it will be used, if caps is invalid it will be rejected,
...).
https://bugzilla.gnome.org/show_bug.cgi?id=702215
Edward Hervey [Wed, 19 Jun 2013 07:25:48 +0000 (09:25 +0200)]
xmptag: Add a debug category
Instead of using the default category
Patricia Muscalu [Thu, 27 Jun 2013 10:23:27 +0000 (12:23 +0200)]
videotestsrc: do not leak lines
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703177
Ognyan Tonchev [Wed, 26 Jun 2013 12:36:17 +0000 (14:36 +0200)]
rtpbasepayload: Do not leak the event when segment is delayed
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703119
Wim Taymans [Wed, 26 Jun 2013 13:03:05 +0000 (15:03 +0200)]
rtsp: make read uncancelable when reading a message
When we start to read a message, we need to continue reading until the end of
the message or else we lose track and cause parse errors. Use a variable
may_cancel to avoid cancelation after we read the first byte until we have
the complete message.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703088
Mathieu Duponchelle [Fri, 21 Jun 2013 18:41:15 +0000 (20:41 +0200)]
audiodecoder: Don't return not-negotiated if flushing
If the pad is flushing after a failed negotiation, return GST_FLOW_FLUSHING.
https://bugzilla.gnome.org/show_bug.cgi?id=701763
Sebastian Dröge [Sun, 23 Jun 2013 10:07:41 +0000 (12:07 +0200)]
ogg: The Daala headers are little endian, not big endian
Sebastian Dröge [Sun, 23 Jun 2013 08:30:02 +0000 (10:30 +0200)]
ogg: Add Daala support
Sebastian Dröge [Fri, 21 Jun 2013 17:04:43 +0000 (19:04 +0200)]
pbutils: Add VP9 description
Edward Hervey [Mon, 17 Jun 2013 06:58:13 +0000 (08:58 +0200)]
videodecoder: Fix drop frame handling at startup
In the unlikely case that the decoder drops a frame before the first
input frame is outputted, use the input segment (since it wasn't
carried over to the output segment yet)
https://bugzilla.gnome.org/show_bug.cgi?id=702502
Wim Taymans [Fri, 21 Jun 2013 09:50:33 +0000 (11:50 +0200)]
rtsp: dispatch when initial buffer has data
When we have data in the inital buffer, dispath the read function to read it
even if the socket has no data to read.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702652
Wim Taymans [Thu, 20 Jun 2013 15:28:46 +0000 (17:28 +0200)]
rtsp: manage writer child source better
Only add the write child source when we have something to write or else
we will dispatch forever without doing anything.
Jonas Holmberg [Wed, 19 Jun 2013 11:21:45 +0000 (13:21 +0200)]
audioencoder: unref before memset
Unref allocator and input_caps in encoder context before memsetting the
context.
Edward Hervey [Wed, 19 Jun 2013 07:22:50 +0000 (09:22 +0200)]
xmptag: More efficient GSList usage
Instead of constantly appending (which gets more and more expensive), just
prepend to the list (O(1)) and reverse the list before usage.
https://bugzilla.gnome.org/show_bug.cgi?id=702545
Branko Subasic [Sun, 16 Jun 2013 20:39:30 +0000 (22:39 +0200)]
rtpbuffer: add gst_rtp_buffer_get_payload_bytes
The function gst_rtp_buffer_get_payload can not be used in Python
because it lacks necessary length parameter. This patch adds a new
function, gst_rtp_buffer_get_payload_bytes, to use from Python
bindings. The new function has the advisory "Rename to:" annotation
so it can replace the gst_rtp_buffer_get_payload whan creating
bindings.
The function gst_rtp_buffer_get_extension_bytes is also added. It wraps
gst_rtp_buffer_get_extension_data which doesn't work in Python due to
incomplete annotation and because it returns the length as number of
32-bit words.
https://bugzilla.gnome.org/show_bug.cgi?id=698562
Ognyan Tonchev [Mon, 17 Jun 2013 14:34:26 +0000 (16:34 +0200)]
audiobasesrc: add 2 missing gst_buffer_unmap () calls
There are 2 missing calls to gst_buffer_unmap () in the error handling in
create ().
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702467
Sreerenj Balachandran [Mon, 17 Jun 2013 13:02:41 +0000 (16:02 +0300)]
playsink: Fix the block diagram of deinterlace bin.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702465
Brendan Long [Thu, 13 Jun 2013 17:08:20 +0000 (11:08 -0600)]
playbin: Emit {audio,text,video}-changed signals when pads are removed
https://bugzilla.gnome.org/show_bug.cgi?id=702195
Sebastian Dröge [Tue, 11 Jun 2013 13:22:50 +0000 (15:22 +0200)]
videoconvert: Fix leaking of the chroma resample helper objects
Sreerenj Balachandran [Mon, 10 Jun 2013 11:43:35 +0000 (14:43 +0300)]
tests: add more unit test for playbin
Add unit test for autoplugging of video_decoder/video_sink combination
based on capsfeatures.
Sebastian Dröge [Mon, 10 Jun 2013 13:31:38 +0000 (15:31 +0200)]
rtspconnection: Make sure to set a sensible default port for the GSocketConnection
Otherwise it will connect to port 0 if no port is given in the URI.
https://bugzilla.gnome.org/show_bug.cgi?id=701798
Sebastian Dröge [Sun, 9 Jun 2013 17:20:20 +0000 (19:20 +0200)]
adder: Reject segments that have a different rate than the output segment
adder does no rate conversion.
Sebastian Dröge [Sat, 8 Jun 2013 21:51:13 +0000 (23:51 +0200)]
playbin: When activating a fixed sink, proxy error messages too
If activating a fixed sink fails, everything will fail later anyway
and we can just error out early.
Sebastian Dröge [Sat, 8 Jun 2013 21:34:53 +0000 (23:34 +0200)]
playbin: Improve autoplugging of decoder/sink combinations by trying to activate the sink
And if that fails don't bother autoplugging that sink. Also gives
us more accurate sink caps.
Sebastian Dröge [Sat, 8 Jun 2013 21:08:05 +0000 (23:08 +0200)]
playbin: Proxy the playbin context to the sinks
Sebastian Dröge [Sat, 8 Jun 2013 21:04:43 +0000 (23:04 +0200)]
playbin: Proxy sink messages if we activate a sink in playbin already
This makes sure the application gets any context related messages and
can do whatever is required to a) get the sink a context or b) share
the context with other elements in the pipeline.
The proxying is necessary because the sink is not a child element of
playbin, but instead will at a later point be a child of some bin
inside playsink.
https://bugzilla.gnome.org/show_bug.cgi?id=700967
Sebastian Dröge [Thu, 6 Jun 2013 13:57:49 +0000 (15:57 +0200)]
decodebin: Let serialize queries before caps events through
Otherwise we're going to deadlock forever because no autoplugging
happens without having caps, but caps can never be send because
we're blocking.
Serialized queries before caps should never be sent unless really
necessary.
Sebastian Dröge [Wed, 5 Jun 2013 16:36:40 +0000 (18:36 +0200)]
Back to development
Sebastian Dröge [Wed, 5 Jun 2013 15:58:51 +0000 (17:58 +0200)]
Release 1.1.1
Sebastian Dröge [Wed, 5 Jun 2013 14:20:38 +0000 (16:20 +0200)]
Update .po files
Sebastian Dröge [Wed, 5 Jun 2013 13:14:43 +0000 (15:14 +0200)]
Automatic update of common submodule
From 098c0d7 to 01a7a46
Sebastian Dröge [Tue, 4 Jun 2013 15:49:55 +0000 (17:49 +0200)]
videodecoder: Change GST_WARNING to a GST_DEBUG
It's completely normal for some decoders to queue 50-60 frames without
it causing any problems, e.g. RPi.
Sebastian Dröge [Sat, 1 Jun 2013 07:05:16 +0000 (09:05 +0200)]
audioencoder: Remove private copy of gst_audio_info_is_equal()
And improve the public one a bit based on it.
Brendan Long [Thu, 30 May 2013 22:00:35 +0000 (16:00 -0600)]
rtspconnection: remove functions added in GLib 2.34
g_pollable_stream_read and g_pollable_stream_write were added in GLib 2.34,
but Ubuntu 12.04 and Debian Wheezy still use GLib 2.32.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=701316
Sebastian Dröge [Thu, 30 May 2013 16:48:19 +0000 (18:48 +0200)]
adder: Add GstChildProxy interface for the sinkpads
This allows to set the sinkpad properties more easily.
Next step: Implement proper synchronization in adder, almost done!
Sebastian Dröge [Thu, 30 May 2013 16:41:22 +0000 (18:41 +0200)]
adder: Hold object lock in setcaps a bit longer to prevent race conditions
Sebastian Dröge [Thu, 30 May 2013 12:57:04 +0000 (14:57 +0200)]
adder: Simplify segment event handling
We don't care about upstream segments but generate our own. This
makes the code more similar to videomixer again.
Sebastian Dröge [Thu, 30 May 2013 12:45:58 +0000 (14:45 +0200)]
adder: Use gst_audio_info_is_equal() to check if we get the same caps
Sebastian Dröge [Thu, 30 May 2013 12:45:31 +0000 (14:45 +0200)]
audio: Add gst_audio_info_is_equal()
Sebastian Dröge [Thu, 30 May 2013 12:32:03 +0000 (14:32 +0200)]
adder: Don't calls gst_pad_set_caps() on sinkpads
It doesn't make much sense and the CAPS query handling
on the sinkpads should handle this.
Sebastian Dröge [Thu, 30 May 2013 10:57:11 +0000 (12:57 +0200)]
adder: Set GAP flag on silence buffers we created
Sebastian Dröge [Thu, 30 May 2013 10:54:37 +0000 (12:54 +0200)]
adder: Remove caching of the processing function
The compiler will generate a hashtable from the switch-case, and
we need to call functions explicitely for the volume!=1.0 cases
anyway.
Sebastian Dröge [Thu, 30 May 2013 10:46:56 +0000 (12:46 +0200)]
adder: Add support for per-stream volumes
Sebastian Dröge [Thu, 30 May 2013 10:21:06 +0000 (12:21 +0200)]
adder: Add optimized orc code for F64 processing
Sebastian Dröge [Thu, 30 May 2013 10:05:02 +0000 (12:05 +0200)]
adder: The output buffer must be readable and writable
Sebastian Dröge [Thu, 30 May 2013 10:02:53 +0000 (12:02 +0200)]
adder: Add support for muting individual pads
Sebastian Dröge [Thu, 30 May 2013 09:45:10 +0000 (11:45 +0200)]
adder: Sync pad properties with the GstController
Sebastian Dröge [Thu, 30 May 2013 09:40:01 +0000 (11:40 +0200)]
adder: Add custom GstPad subclass to hold additional data and properties
This will later allow to set per-stream volumes and mute status.
Wim Taymans [Thu, 30 May 2013 15:31:13 +0000 (17:31 +0200)]
rtsp: add method to get the TLS connection
Wim Taymans [Thu, 30 May 2013 11:14:46 +0000 (13:14 +0200)]
rtsp: let the sockets be reffed by the connection
Don't add an extra ref to the sockets but use that of the connection.
Keep the connection around as an IOStream.
Wim Taymans [Thu, 30 May 2013 08:50:42 +0000 (10:50 +0200)]
rtsp: Cleanup the error path
Make sure the watch is removed when we close the read socket because of
an error.
Wim Taymans [Thu, 30 May 2013 08:45:42 +0000 (10:45 +0200)]
rtsp: cleanup the watch reset function
Wim Taymans [Thu, 30 May 2013 08:30:09 +0000 (10:30 +0200)]
rtsp: check if the streams are still active
Don't try to read/write from an inactive stream. When we, for example,
transfer the second connection in tunneling mode, we are not interested anymore
on read/write activity on the old connection.
Wim Taymans [Wed, 29 May 2013 15:44:30 +0000 (17:44 +0200)]
rtsp: use child sources instead of using the sockets
Use the source of the pollable input/output streams instead of
accessing the sockets directly.
Wim Taymans [Wed, 29 May 2013 14:15:32 +0000 (16:15 +0200)]
rtsp: fix input/output streams for tunneling
Wim Taymans [Wed, 29 May 2013 13:27:37 +0000 (15:27 +0200)]
rtsp: don't use sockets for blocking
Use the blocking and non-blocking API of the input/output streams instead
of polling the sockets directly. This also allows us to simplify some
code.
Wim Taymans [Tue, 28 May 2013 15:06:14 +0000 (17:06 +0200)]
rtsp: add TLS support
Add flag to select TLS in the transport.
Enable TLS on the socketclient when we use a TLS uri.
Wim Taymans [Tue, 28 May 2013 14:45:00 +0000 (16:45 +0200)]
rtspconnection: use the input/output stream of clientconnection
Don't use the raw sockets for RTSP communication but use the IOStream.
This is needed if we are going to use TLS later.
Wim Taymans [Tue, 28 May 2013 09:16:51 +0000 (11:16 +0200)]
rtsp: set sockets non-blocking
Wim Taymans [Fri, 5 Apr 2013 14:50:48 +0000 (16:50 +0200)]
rtsp: use GSocketClient for making connections
Use the GSocketClient API for making connections with the server. This removes a
bit of code and gives us the ability to do TLS later.
Wim Taymans [Mon, 27 May 2013 13:32:50 +0000 (15:32 +0200)]
Revert "rtspconnection: Use a GSocketAddressNumerator to resolve the addresses"
This reverts commit
15a0bb0a10dcbc99c7f52e28ec9d0395699851ae.
We should be using GSocketClient
Wim Taymans [Thu, 30 May 2013 03:24:32 +0000 (05:24 +0200)]
videoconvert: free tmplines correctly
Keep track of how many tmplines we allocated and use that to free the
correct amount of lines.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701234
Daniel Drake [Wed, 29 May 2013 16:33:48 +0000 (10:33 -0600)]
playsink: pass translated color balance value to channel
We found a case where untranslated values were being passed from the
proxy to the underlying channel, causing bad color balance values
in some setups.
Thanks to Sebastian Dröge for clarifying how the code works, and
suggesting the fix.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701202
Brendan Long [Wed, 29 May 2013 16:15:36 +0000 (10:15 -0600)]
playbin: Don't take an extra reference to the custom stream combiners
They are automatically reffed when added to the bin because they're
already not floating anymore.
Sebastian Dröge [Wed, 29 May 2013 14:41:14 +0000 (16:41 +0200)]
alsasrc: Dump some more debug output about the device configuration
Sebastian Dröge [Wed, 29 May 2013 14:39:17 +0000 (16:39 +0200)]
alsasink: Update internal buffer/period times with the values that were configured on the device
Sebastian Dröge [Wed, 29 May 2013 08:37:55 +0000 (10:37 +0200)]
playbin: Rename compressed unit test to complex
It's not really about compressed streams anymore, but also
about stream switching and stream combiners.
Sebastian Dröge [Wed, 29 May 2013 08:35:11 +0000 (10:35 +0200)]
playbin: Set custom stream-combiners to NULL and unref before finalizing
Brendan Long [Tue, 28 May 2013 16:59:22 +0000 (10:59 -0600)]
playbin: Add playbin audio-stream-combiner test using adder
Brendan Long [Tue, 28 May 2013 17:23:56 +0000 (11:23 -0600)]
playbin: Rename select to combine and selector to combiner in playbin
Brendan Long [Fri, 17 May 2013 23:23:46 +0000 (17:23 -0600)]
playbin: Add support for custom stream-combiners
This allows to chose something else than input-selector
for multiple audio/video/text streams, e.g. an adder could
be used for audio.
It is needed for example to implement some of the more
advanced HTML5 video features.
https://bugzilla.gnome.org/show_bug.cgi?id=698851
Sebastian Dröge [Tue, 28 May 2013 11:32:23 +0000 (13:32 +0200)]
decodebin: Don't call autoplug-query on shutdown
And remove leftover debug code
Sebastian Dröge [Tue, 28 May 2013 11:23:40 +0000 (13:23 +0200)]
playbin: In autoplug-queries, add the actual decoder/parser/etc template caps
Add the actual decoder/parser/etc caps at the very end to
make sure we don't cause empty caps to be returned, e.g.
if a parser asks us but a decoder is required after it
because no sink can handle the format directly.
Sebastian Dröge [Tue, 28 May 2013 11:14:15 +0000 (13:14 +0200)]
playbin: Forward CONTEXT queries to the corresponding sink if we have one
https://bugzilla.gnome.org/show_bug.cgi?id=700967
Sebastian Dröge [Tue, 28 May 2013 11:08:00 +0000 (13:08 +0200)]
playbin: Refactor autoplug-query handling
We now only check sinks and factories of the corresponding media
type. It doesn't make sense to pass audio/subtitle caps to a video
decoder.
Sebastian Dröge [Tue, 28 May 2013 11:06:15 +0000 (13:06 +0200)]
decodebin: Block on serialized queries too
Otherwise we will only block after the serialized, non-sticky event
after the CAPS event or the first buffer. If we're waiting for another
pad to finish autoplugging after we got final caps on this pad, it
will mean that we will let the ALLOCATION query pass although the
pad is not exposed yet.
Sebastian Dröge [Tue, 28 May 2013 10:03:49 +0000 (12:03 +0200)]
decodebin: Pass the element in the autoplug-query signal too
Sebastian Dröge [Tue, 28 May 2013 09:40:51 +0000 (11:40 +0200)]
decodebin: Need to lock the chain mutex in autoplug_query
Sebastian Dröge [Tue, 28 May 2013 09:36:58 +0000 (11:36 +0200)]
playsinkconvertbin: Fix leak of the downstream caps filter
Sebastian Dröge [Tue, 28 May 2013 09:05:21 +0000 (11:05 +0200)]
playbin: Refactor autoplug-query handling a bit
Sebastian Dröge [Mon, 27 May 2013 12:53:48 +0000 (14:53 +0200)]
rtspconnection: Use a GSocketAddressNumerator to resolve the addresses
Instead of just trying the first possible resolution we're trying all
resolutions until one works.
Sebastian Dröge [Mon, 27 May 2013 11:04:00 +0000 (13:04 +0200)]
theoradec: Require caps to be set before data flow happens
Wim Taymans [Mon, 27 May 2013 09:53:27 +0000 (11:53 +0200)]
video-format: fix NV16 unpack
We can just use the NV12 functions, the only difference is the
vertical subsampling.
Wim Taymans [Mon, 27 May 2013 09:25:09 +0000 (11:25 +0200)]
video-chroma: add interlaced flag
Wim Taymans [Fri, 17 May 2013 14:34:30 +0000 (16:34 +0200)]
videoconvert: run chroma resamplers
Run the chroma upsampler after unpack and the chroma subsampler
before pack for higher quality conversions and correct chroma siting.
Wim Taymans [Fri, 17 May 2013 14:26:49 +0000 (16:26 +0200)]
videotestsrc: subsample chroma before packing
Run the chroma subsampler before packing.