platform/upstream/gst-plugins-base.git
8 years agosdp: The SDP library depends on the RTP library now and is not independent anymore
Sebastian Dröge [Thu, 31 Dec 2015 18:41:38 +0000 (20:41 +0200)]
sdp: The SDP library depends on the RTP library now and is not independent anymore

Fix up the build dependencies.

8 years agosdp: add helper fuctions from/to sdp from/to caps
Hyunjun Ko [Wed, 7 Oct 2015 09:50:18 +0000 (18:50 +0900)]
sdp: add helper fuctions from/to sdp from/to caps

<gstsdpmessage.h>
GstCaps*       gst_sdp_media_get_caps_from_media   (const GstSDPMedia *media, gint pt);
GstSDPResult   gst_sdp_media_set_media_from_caps   (const GstCaps* caps, GstSDPMedia *media);
gchar *        gst_sdp_make_keymgmt                (const gchar *uri, const gchar *base64);
GstSDPResult   gst_sdp_message_attributes_to_caps  (GstSDPMessage *msg, GstCaps *caps);
GstSDPResult   gst_sdp_media_attributes_to_caps    (GstSDPMedia *media, GstCaps *caps);

<gstmikey.h>
GstMIKEYMessage * gst_mikey_message_new_from_caps  (GstCaps *caps);
gchar *           gst_mikey_message_base64_encode  (GstMIKEYMessage* msg);

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

8 years agoaudioconvert: Pass pointer arrays instead of singleton pointers to gst_audio_converte...
Sebastian Dröge [Tue, 29 Dec 2015 16:14:54 +0000 (18:14 +0200)]
audioconvert: Pass pointer arrays instead of singleton pointers to gst_audio_converter_samples()

In this specific case it wouldn't cause problems as we only ever access the
first array element, but let's make explicit what is happening here.

CID 1346530 and 1346529

8 years agoencoding-profile: Check for FALSE'ness directly, not by comparing with FALSE
Sebastian Dröge [Tue, 29 Dec 2015 15:56:21 +0000 (17:56 +0200)]
encoding-profile: Check for FALSE'ness directly, not by comparing with FALSE

8 years agoencoding-profile: Don't use preset_name string after free
Sebastian Dröge [Tue, 29 Dec 2015 15:54:44 +0000 (17:54 +0200)]
encoding-profile: Don't use preset_name string after free

When we run the loop for another time and do not have a preset name, we would
try to print the preset name of a previous iteration that is already freed.

Also move some other variables into the block where they are actually used
to prevent similar mistakes in the future.

CID 1346536

8 years agoaudioconvert: add a test for gap handling
Stefan Sauer [Tue, 29 Dec 2015 13:40:04 +0000 (14:40 +0100)]
audioconvert: add a test for gap handling

8 years agoaudioconvert: fix passthrough operation
Stefan Sauer [Tue, 29 Dec 2015 13:23:59 +0000 (14:23 +0100)]
audioconvert: fix passthrough operation

We did not take the sample size into account. Rearrange the tests to have more
conversion test and an extra test case for passthrough operations.

Fixes #759890

8 years agotools: gst-device-monitor: print uint properties in both decimal and hex
Tim-Philipp Müller [Tue, 29 Dec 2015 11:29:31 +0000 (11:29 +0000)]
tools: gst-device-monitor: print uint properties in both decimal and hex

Some values are easier to read and make sense of in hex.

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

8 years agovideoblend: special case 1x1 src dims on increment computation
Reynaldo H. Verdejo Pinochet [Thu, 12 Nov 2015 22:01:03 +0000 (14:01 -0800)]
videoblend: special case 1x1 src dims on increment computation

Fix crash with 1x1 overlay pixmap

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

8 years agotypefindfunctions: Make sure that enough data is available in AAC/ADTS typefinder
Sebastian Dröge [Mon, 28 Dec 2015 10:28:26 +0000 (12:28 +0200)]
typefindfunctions: Make sure that enough data is available in AAC/ADTS typefinder

We would otherwise read beyond the array bounds and crash every now and then.
This was introduced with 5640ba17c8db80976b7718904e4024dcfe9ee1a0.

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

8 years agotests: remove commented code from audioconvert test
Stefan Sauer [Sun, 27 Dec 2015 18:41:43 +0000 (19:41 +0100)]
tests: remove commented code from audioconvert test

This is just what we have in gst_check_buffer_data().

8 years agoaudio-converter: code cleanup
Stefan Sauer [Sun, 27 Dec 2015 18:25:20 +0000 (19:25 +0100)]
audio-converter: code cleanup

Rename samples to num_samples, since we also have samples in chain, but that is
the data pointer. Always use gzize for num_samples. Make the log output a bit
more homogenous.

8 years agotools: gst-device-monitor: print non-string device properties too
Tim-Philipp Müller [Sat, 26 Dec 2015 11:34:47 +0000 (11:34 +0000)]
tools: gst-device-monitor: print non-string device properties too

8 years agoaudio: Fix some documentation warnings
Sebastian Dröge [Sat, 26 Dec 2015 08:43:56 +0000 (09:43 +0100)]
audio: Fix some documentation warnings

Remove/rename function parameters and skip some functions that can't
be used by bindings as they are now.

8 years agovideoaffinetransformmeta: Add (transfer none) annotation for return value
Sebastian Dröge [Sat, 26 Dec 2015 08:43:51 +0000 (09:43 +0100)]
videoaffinetransformmeta: Add (transfer none) annotation for return value

8 years agoplaysink: Don't leak audio/video filters due to floating references weirdness
Sebastian Dröge [Fri, 25 Dec 2015 10:34:10 +0000 (11:34 +0100)]
playsink: Don't leak audio/video filters due to floating references weirdness

The filters' floating references are sinked during set_property() already,
which means that GstBin takes a new reference when adding the filter to it.
Get rid of the additional reference after adding the filter to the bin.

8 years agoplaysink: Allow reuse of audio/video filters by unparenting them from their bins
Sebastian Dröge [Fri, 25 Dec 2015 09:36:44 +0000 (10:36 +0100)]
playsink: Allow reuse of audio/video filters by unparenting them from their bins

And also recreate the chains if the filter is changing.

8 years agoplaysink: Don't leak audio/video filters when using non-raw media
Sebastian Dröge [Fri, 25 Dec 2015 09:28:02 +0000 (10:28 +0100)]
playsink: Don't leak audio/video filters when using non-raw media

8 years agoBack to development
Sebastian Dröge [Thu, 24 Dec 2015 14:27:43 +0000 (15:27 +0100)]
Back to development

8 years agopbutils: Link to libgstbase for bytewriter and adapter
Sebastian Dröge [Thu, 24 Dec 2015 12:59:52 +0000 (13:59 +0100)]
pbutils: Link to libgstbase for bytewriter and adapter

8 years agoRelease 1.7.1
Sebastian Dröge [Thu, 24 Dec 2015 12:59:15 +0000 (13:59 +0100)]
Release 1.7.1

8 years agoUpdate .po files
Sebastian Dröge [Thu, 24 Dec 2015 12:10:08 +0000 (13:10 +0100)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Thu, 24 Dec 2015 11:22:04 +0000 (12:22 +0100)]
po: Update translations

8 years agoencodebin: Implement an encoding profile serialization format
Thibault Saunier [Fri, 11 Dec 2015 14:38:00 +0000 (15:38 +0100)]
encodebin: Implement an encoding profile serialization format

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

8 years agoconfigure: Make -Bsymbolic check work with clang.
Koop Mast [Sun, 20 Dec 2015 23:43:49 +0000 (00:43 +0100)]
configure: Make -Bsymbolic check work with clang.

Update the -Bsymbolic check with the version glib has. This version
works with clang.

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

8 years agoappsrc: Clear is_eos flag when receiving the flush-stop event
Kazunori Kobayashi [Thu, 3 Dec 2015 02:53:05 +0000 (11:53 +0900)]
appsrc: Clear is_eos flag when receiving the flush-stop event

The EOS event can be propagated to the downstream elements when
is_eos flag remains set even after leaving the flushing state.
This fix allows this element to normally restart the streaming
after receiving the flush event by clearing the is_eos flag.

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

8 years agoexamples: playback-test: remove unused variables
Thiago Santos [Wed, 16 Dec 2015 21:11:05 +0000 (18:11 -0300)]
examples: playback-test: remove unused variables

audiosink and videosink string variables are unused

8 years agoplaybin: only add the template caps when the result is empty
Matthew Waters [Sun, 29 Nov 2015 23:28:55 +0000 (10:28 +1100)]
playbin: only add the template caps when the result is empty

Unconditionally adding the template caps when proxying the caps query will play
havoc with decoders that attempt to choose an output format based on some caps
features.  Creating a sink that does not include those caps features and a
decoder/parser/etc that preferentially chooses some specific caps feature when
available, will always return the decoder/parser/etc template caps and choose a
feature that downstream will be unable to support.

Fix by limiting the addition of the template caps to when the result is actually
empty.

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

8 years agoconfigure: Don't use AG_GST_CHECK_FEATURE for checking for gio-unix-2.0
Sebastian Dröge [Thu, 17 Dec 2015 12:39:01 +0000 (13:39 +0100)]
configure: Don't use AG_GST_CHECK_FEATURE for checking for gio-unix-2.0

It's meant to be used for external plugins that can then all be disabled via
--disable-external. gio-unix-2.0 however is just an optional dependency for
the TCP unit test.

Also when using AG_GST_CHECK_FEATURE like this, in the --disable-external part
there needs to be an AM_CONDITIONAL for the feature with FALSE.

8 years agoRevert "decodebin2: fix deadlock on chain shutdown"
Sebastian Dröge [Wed, 16 Dec 2015 16:07:54 +0000 (17:07 +0100)]
Revert "decodebin2: fix deadlock on chain shutdown"

This reverts commit 77dc09c3a9a5e5e371e189f39b5557db440a8dc9.

It can cause the FLUSH_START/STOP events to go to the sink elements, which
then causes state changes and various other problems. We shouldn't really
flush downstream here, the idea is to do *draining*.

Apart from that the testcase for the original bug here works without this
commit now.

8 years agomultifdsink: fix typo in GST_WARNING_OBJECT
Luis de Bethencourt [Wed, 16 Dec 2015 11:12:00 +0000 (11:12 +0000)]
multifdsink: fix typo in GST_WARNING_OBJECT

This should make easier to parse the debug logs.
s/fnctl/fcntl

8 years agovideorate: remove dead code
Vincent Penquerc'h [Thu, 10 Apr 2014 14:36:15 +0000 (15:36 +0100)]
videorate: remove dead code

Since the loops increasing count from 0 are always run at least
once (if count < 1), count will always be at least one when
compared to the drop/dup conditions.

Coverity 1139674

8 years agoaudio-converter: rework the main processing loop
Wim Taymans [Wed, 16 Dec 2015 09:45:48 +0000 (10:45 +0100)]
audio-converter: rework the main processing loop

Rework the main processing loop. We now create an audio processing
chain from small core functions. This is very similar to how the
video-converter core works and allows us to statically calculate an
optimal allocation strategy for all possible combinations of operations.
Make sure we support non-interleaved data everywhere.
Add functions to calculate in and out frames and latency.

8 years agoaudioconvert: clear convert object
Wim Taymans [Wed, 16 Dec 2015 09:44:16 +0000 (10:44 +0100)]
audioconvert: clear convert object

8 years agodocs: update to git
Sebastian Dröge [Wed, 16 Dec 2015 08:35:38 +0000 (09:35 +0100)]
docs: update to git

8 years agoRevert "alsasrc: Disable HW timestamp"
Nicolas Dufresne [Mon, 14 Dec 2015 18:59:02 +0000 (13:59 -0500)]
Revert "alsasrc: Disable HW timestamp"

This reverts commit 3642e9a3913a35c00f379034780c27298d09929c.

8 years agobase: Add g_autoptr() support to all types
Xavier Claessens [Tue, 10 Nov 2015 17:54:23 +0000 (12:54 -0500)]
base: Add g_autoptr() support to all types

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

8 years agoalsasrc: Disable HW timestamp
Nicolas Dufresne [Thu, 24 Sep 2015 22:26:51 +0000 (18:26 -0400)]
alsasrc: Disable HW timestamp

This is a workaround for broken pulse module.

8 years agortspconnection: Properly initialize stack-allocated RTSP message to all-zeroes
Sebastian Dröge [Mon, 14 Dec 2015 18:03:33 +0000 (19:03 +0100)]
rtspconnection: Properly initialize stack-allocated RTSP message to all-zeroes

8 years agortspconnection: Use relative URI for non-proxy tunneled requests
Evan Callaway [Mon, 14 Dec 2015 15:57:19 +0000 (10:57 -0500)]
rtspconnection: Use relative URI for non-proxy tunneled requests

Match the section 5.1.2 of the HTTP/1.0 spec by using relative URIs unless we
are using a proxy server. Also, send Host header for compatability with
HTTP/1.1 and some HTTP/1.0 servers.

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

8 years agortspconnection: Support authentication during tunneling setup
Evan Callaway [Mon, 14 Dec 2015 14:10:16 +0000 (09:10 -0500)]
rtspconnection: Support authentication during tunneling setup

gst_rtsp_connection_connect_with_response accepts a response pointer
which it fills with the response from setup_tunneling if the
connection is configured to be tunneled.  The motivation for this is to
allow the caller to inspect the response header to determine if
additional authentication is required so that the connection can be
retried with the appropriate authentication headers.

The function prototype of gst_rtsp_connection_connect has been
preserved for compatability with existing code and wraps
gst_rtsp_connection_connect_with_response.

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

8 years agortpbasedepayload: Check if the packet loss event actually has timestamp and duration...
Sebastian Dröge [Mon, 14 Dec 2015 12:11:21 +0000 (13:11 +0100)]
rtpbasedepayload: Check if the packet loss event actually has timestamp and duration fields

CID 1139615

8 years agoaudio: adapt API for non-interleaved formats
Wim Taymans [Thu, 10 Dec 2015 16:46:26 +0000 (17:46 +0100)]
audio: adapt API for non-interleaved formats

Allow an array of sample blocks to be passed to the channel mix and
quantizer functions to support non-interleaved formats.

8 years agoaudio-converter: improve API for non-interleaved formats
Wim Taymans [Thu, 10 Dec 2015 15:26:40 +0000 (16:26 +0100)]
audio-converter: improve API for non-interleaved formats

Make it possible to pass an array of sample blocks when dealing with
non-interleaved formats.

8 years agoriff: add FourCC aliases
Luis de Bethencourt [Sat, 12 Dec 2015 16:49:28 +0000 (17:49 +0100)]
riff: add FourCC aliases

Support media using the aliases defined in http://www.fourcc.org/ that are
exact duplicates of already known codes.

8 years agoriff: use defined FourCC
Luis de Bethencourt [Sat, 12 Dec 2015 16:04:21 +0000 (17:04 +0100)]
riff: use defined FourCC

Make gst_riff_create_video_caps() use the FourCC available in riff-ids.h,
like gst_riff_create_audio_caps() does.

8 years agovideodecoder: add some debug around pool negotiation
Julien Isorce [Fri, 11 Dec 2015 14:42:09 +0000 (14:42 +0000)]
videodecoder: add some debug around pool negotiation

It lets us know easily which pool is activated or
inactivated during the negotiation.

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

8 years agovideo/convertframe: Add crop meta support via videocrop
Song Bing [Fri, 11 Dec 2015 13:42:00 +0000 (21:42 +0800)]
video/convertframe: Add crop meta support via videocrop

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

8 years agortpbasedepay: when setting discont flag make sure rtpbuffer is current
Tim-Philipp Müller [Fri, 11 Dec 2015 11:01:53 +0000 (11:01 +0000)]
rtpbasedepay: when setting discont flag make sure rtpbuffer is current

Depayloaders will look at rtpbuffer->buffer for the discont flag.
When we set the discont flag on a buffer in the rtp base depayloader
and we have to make the buffer writable, make sure the rtpbuffer
actually contains the newly-flagged buffer, not the original input
buffer. This was introduced with the addition of the process_rtp_packet
vfunc, but would only trigger if the input buffer wasn't flagged
already and was not writable already.

8 years agotests: rtpbasedepayload: add test for seqnum gap discont setting
Tim-Philipp Müller [Fri, 11 Dec 2015 00:18:30 +0000 (00:18 +0000)]
tests: rtpbasedepayload: add test for seqnum gap discont setting

The problem was triggered only when the input buffers were not
writable, so add extra ref to test this code path.

8 years agortpbasedepay: fix possible refcounting issue when detecting a discont
Tim-Philipp Müller [Fri, 11 Dec 2015 10:25:00 +0000 (10:25 +0000)]
rtpbasedepay: fix possible refcounting issue when detecting a discont

When we detect a discont and the input buffer isn't already flagged
as discont, handle_buffer() does a gst_buffer_make_writable() on the
input buffer in order to set the flag. This assumed it had ownership
of the input buffer though, which it didn't. This would still work
fine in most scenarios, but could lead to crashes or mini object
unref criticals in some cases when a discont is detected, e.g. when
using pcapparse in front of a depayloader. This problem was
introduced in bc14cdf529e.

8 years agomultisocketsink: add GstNetworkMessage event
Wim Taymans [Thu, 10 Dec 2015 11:18:04 +0000 (12:18 +0100)]
multisocketsink: add GstNetworkMessage event

Add a property and logic to send a GstNetworkMessage event containing
the message that was received from a client. This can be used to
implement simply bidirectional communication.

8 years agomultisocketsink: add dispatched event
Wim Taymans [Thu, 10 Dec 2015 11:14:37 +0000 (12:14 +0100)]
multisocketsink: add dispatched event

Add a property and logic to send a GstNetworkMessageDispatched
event upstream to notify that a buffer has been sent. This can be used
to keep track of what client received what buffers.

8 years agosocketsrc: handle GstNetworkMessage events
Wim Taymans [Fri, 4 Dec 2015 10:17:37 +0000 (11:17 +0100)]
socketsrc: handle GstNetworkMessage events

Add a property to handle GstNetworkMessage events. These events contain
a buffer that is sent on the socket to allow for simple bidirectional
communication.

8 years agoaudio-convert: improve converter API
Wim Taymans [Wed, 9 Dec 2015 16:16:26 +0000 (17:16 +0100)]
audio-convert: improve converter API

Improve the converter API to allow for an max input and output number of
samples and return the number of consumed/produced samples.

8 years agoappsrc: duration query support based on the size property
Philippe Normand [Tue, 8 Dec 2015 10:15:34 +0000 (11:15 +0100)]
appsrc: duration query support based on the size property

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

8 years agoAutomatic update of common submodule
Nicolas Dufresne [Mon, 7 Dec 2015 14:08:05 +0000 (09:08 -0500)]
Automatic update of common submodule

From b319909 to 86e4663

8 years agomultisocketsink: let downstream know we support metadata
Wim Taymans [Fri, 4 Dec 2015 11:25:11 +0000 (12:25 +0100)]
multisocketsink: let downstream know we support metadata

Let downstream know that we support GstNetControlMessage metadata API.

8 years agovideodecoder: Avoid pushing buffers before segment start
Edward Hervey [Thu, 3 Dec 2015 15:38:45 +0000 (16:38 +0100)]
videodecoder: Avoid pushing buffers before segment start

In the case where the stream doesn't have a framerate set and the frames
don't have a duration set, we still want to use the clipping path to
make sure we don't push buffers outside of the segment.

The problem was the previous iteration was setting a duration of 2s, which
meant that any buffer which was less than 2s before the segment start would
end up getting pushed.

Instead, use a saner 40ms (25fps single frame duration) to figure out whether
the frame could be within the segment or not

8 years agoDrop usage of deprecated g-ir-scanner --strip-prefix flag
Reynaldo H. Verdejo Pinochet [Thu, 3 Dec 2015 04:19:43 +0000 (20:19 -0800)]
Drop usage of deprecated g-ir-scanner --strip-prefix flag

8 years agodecodebin2: fix "Attempt to unlock mutex that was not locked"
Tim-Philipp Müller [Wed, 2 Dec 2015 18:16:05 +0000 (18:16 +0000)]
decodebin2: fix "Attempt to unlock mutex that was not locked"

Introduced in commit ee44337f, caused the decodebin
test_text_plain_streams unit test to abort.

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

8 years agoplayback: Expose XSUB formats by default
Edward Hervey [Mon, 16 Nov 2015 13:50:58 +0000 (14:50 +0100)]
playback: Expose XSUB formats by default

This is a workaround, we should remove this once we have a proper
decoder

8 years agodiscoverer: Also consider XSUB as a subtitle format
Edward Hervey [Mon, 16 Nov 2015 13:50:30 +0000 (14:50 +0100)]
discoverer: Also consider XSUB as a subtitle format

8 years agopbutils: Add description for XSUB subpicture format
Edward Hervey [Mon, 16 Nov 2015 13:49:55 +0000 (14:49 +0100)]
pbutils: Add description for XSUB subpicture format

8 years agoriff: 'DXSA' is the same as 'DXSB'
Edward Hervey [Mon, 16 Nov 2015 13:49:19 +0000 (14:49 +0100)]
riff: 'DXSA' is the same as 'DXSB'

Which is subpicture/x-xsub

8 years agostreamsynchronizer: Rename GstStream => GstSyncStream
Edward Hervey [Tue, 21 Jul 2015 07:58:56 +0000 (09:58 +0200)]
streamsynchronizer: Rename GstStream => GstSyncStream

Avoid clashes with future GstStream from core

8 years agortspconnection: Update capitalization of x-sessioncookie
Evan Callaway [Wed, 2 Dec 2015 14:00:31 +0000 (09:00 -0500)]
rtspconnection: Update capitalization of x-sessioncookie

Some servers incorrectly parse header names with strict case-sensitivity.  For
compatibility with these systems change X-Sessioncookie to x-sessioncookie.

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

8 years agodecodebin: Update buffering messages when removing an element that had buffering...
Sebastian Dröge [Wed, 2 Dec 2015 14:16:22 +0000 (16:16 +0200)]
decodebin: Update buffering messages when removing an element that had buffering pending

Otherwise we'll remove that element while keeping its buffering message in our
list, and because of that never ever report buffering 100% as that element
will always be at a lower percentage.

This fixes e.g. seeking over Period boundaries in DASH and various other
issues when buffering happens between group switches.

Also use a new mutex for protecting the buffering messages. The object lock is
already used by gst_object_has_as_ancestor() and we need to use it now for
checking if the buffering message sender has the to-be-removed element as
ancestor.

8 years agomultisocketsink: keep on reading when we stop sending
Wim Taymans [Wed, 2 Dec 2015 08:52:19 +0000 (09:52 +0100)]
multisocketsink: keep on reading when we stop sending

When we stop sending because we need more data, still keep a GSource
around to receive data from the clients.
Also handle read and write in the same go.

8 years agoaudiobasesrc: Post latency message on the bus after set_caps()
Sebastian Dröge [Tue, 1 Dec 2015 17:57:10 +0000 (19:57 +0200)]
audiobasesrc: Post latency message on the bus after set_caps()

The latency is only known once the caps are known, and might change
whenever the caps are changing.

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

8 years agoaudiobasesink: Post latency message on the bus after set_caps()
Michael Olbrich [Fri, 25 Sep 2015 12:47:48 +0000 (14:47 +0200)]
audiobasesink: Post latency message on the bus after set_caps()

Any latency query before this will not get the correct latency so a new
latency query should be triggered once the audio sink know its own latency.

Without this the initial latency query from the pipeline arrives too early
sometimes and the resulting latency is too short.

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

8 years ago[PATCH] Fix a race condition accessing the decode_chain field.
Thomas Bluemel [Fri, 6 Nov 2015 14:21:14 +0000 (14:21 +0000)]
[PATCH] Fix a race condition accessing the decode_chain field.

Make sure that any access to the GstDecodeBin's decode_chain
field is protected using the EXPOSE_LOCK.  Also add a simple
reference counter to the GstDecodeChain structure so that when
the type_found signal fires it can hold onto the decode chain
even while the EXPOSE_LOCK is not held.  This should fix a
race condition if the type_found signal fires right in the
middle of a state change that messes with the same decode
chain.

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

8 years agodecodebin: early out on pad-added when the pad is inactive
Vincent Penquerc'h [Thu, 20 Aug 2015 16:30:38 +0000 (17:30 +0100)]
decodebin: early out on pad-added when the pad is inactive

The pad may be recently deactivated if the element is switched
back down very quickly.

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

8 years agodecodebin: lock the expose lock around decode_chain use
Vincent Penquerc'h [Thu, 20 Aug 2015 16:29:36 +0000 (17:29 +0100)]
decodebin: lock the expose lock around decode_chain use

Helps with a crash in decodebin when quickly switching states.

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

8 years agocodec-utils: accept wrong version field in OpusHead header
Luis de Bethencourt [Sat, 28 Nov 2015 14:24:55 +0000 (14:24 +0000)]
codec-utils: accept wrong version field in OpusHead header

Some Opus files found on the wild have 0 in the version field of the
OpusHead header, instead of the correct value of 1. The files still
play, don't make this error fatal.

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

8 years agoallocators: add debug category for fd memory and allocator
William Manley [Thu, 26 Nov 2015 11:33:02 +0000 (11:33 +0000)]
allocators: add debug category for fd memory and allocator

Debugging can now be viewed by setting GST_DEBUG=fdmemory:9

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

9 years agotests: tags: add unit test for ID3v2 PRIVATE_DATA tag extraction
Tim-Philipp Müller [Fri, 20 Nov 2015 20:18:34 +0000 (20:18 +0000)]
tests: tags: add unit test for ID3v2 PRIVATE_DATA tag extraction

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

9 years agoid3v2frames: Handle private frames
Ravi Kiran K N [Mon, 29 Sep 2014 08:47:39 +0000 (14:17 +0530)]
id3v2frames: Handle private frames

Handle PRIV ID3 tag having owner information (string)
and binary data, add to tag messages list.

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

9 years agotags: id3: make sure to register private-id3v2-frame tag before using it
Tim-Philipp Müller [Fri, 20 Nov 2015 19:15:22 +0000 (19:15 +0000)]
tags: id3: make sure to register private-id3v2-frame tag before using it

9 years agortspconnection: Add support for parsing custom headers
Ognyan Tonchev [Tue, 17 Nov 2015 16:07:37 +0000 (17:07 +0100)]
rtspconnection: Add support for parsing custom headers

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

9 years agoRemove unnecessary NULL checks before g_free()
Reynaldo H. Verdejo Pinochet [Sun, 15 Nov 2015 10:58:54 +0000 (02:58 -0800)]
Remove unnecessary NULL checks before g_free()

g_free() is NULL-safe

9 years agoxvimagesink/ximagesink: Fix structure memory leak
Vineeth TM [Tue, 17 Nov 2015 00:06:34 +0000 (09:06 +0900)]
xvimagesink/ximagesink: Fix structure memory leak

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

9 years agocodec-utils: guint8 can't hold value over 255
Luis de Bethencourt [Thu, 12 Nov 2015 14:39:17 +0000 (14:39 +0000)]
codec-utils: guint8 can't hold value over 255

channels is a guint8, so the max value is 255 and checking if it value is
> 256 will never be false.

CID 1338687, CID 1338688

9 years agoaudio-converter: remove unneeded check for unsigned < 0
Luis de Bethencourt [Thu, 12 Nov 2015 14:18:03 +0000 (14:18 +0000)]
audio-converter: remove unneeded check for unsigned < 0

Commit ff6d1a2a25b247688f38e117782a6b43d525706a changed sample's type from
gint to gsize (and renamed it to in_samples). gsize is an unsigned long,
which means it can never be a negative value and the check making sure that
in_samples is >= 0 is never going to be false. Removing it.

CID 1338689

9 years agotests:video: Fix overlay rectangle and buffer leak
Vineeth TM [Wed, 11 Nov 2015 05:44:55 +0000 (14:44 +0900)]
tests:video: Fix overlay rectangle and buffer leak

Created overlay rectangle is not being freed in video tests
pix2 buffer is being created and not freed

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

9 years agopbutils:encoding-target: Fix string memory leak
Vineeth TM [Wed, 11 Nov 2015 05:37:21 +0000 (14:37 +0900)]
pbutils:encoding-target: Fix string memory leak

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

9 years agoaudio-quantize: Fix dither_buffer memory leak
Vineeth TM [Wed, 11 Nov 2015 06:02:39 +0000 (15:02 +0900)]
audio-quantize: Fix dither_buffer memory leak

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

9 years agovorbisdec: Re-init on new caps
Jan Schmidt [Tue, 10 Nov 2015 13:59:16 +0000 (00:59 +1100)]
vorbisdec: Re-init on new caps

If we get new input caps, then reset the decoder
ready for new headers and fresh data. Makes
chained oggs work when reusing the decoder.

9 years agovideometa: add GstVideoAffineTransformationMeta
Matthew Waters [Mon, 2 Nov 2015 12:12:19 +0000 (23:12 +1100)]
videometa: add GstVideoAffineTransformationMeta

Adds a simple 4x4 affine transformations meta for passing arbitrary
transformations on buffers.

Based on patch by Matthieu Bouron

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

9 years agoaudio-converter: add output size argument
Wim Taymans [Tue, 10 Nov 2015 08:52:24 +0000 (09:52 +0100)]
audio-converter: add output size argument

Make it possible to have a different number of output samples than input
samples when we, for example, want to add resampling later.

9 years agodiscoverer: Check API arguments and assert if needed
Thibault Saunier [Fri, 6 Nov 2015 23:43:55 +0000 (00:43 +0100)]
discoverer: Check API arguments and assert if needed

9 years agodecodebin: Properly deactivate ghostpads
Edward Hervey [Fri, 6 Nov 2015 18:31:47 +0000 (19:31 +0100)]
decodebin: Properly deactivate ghostpads

Just setting the ghostpad as flushing wasn't enough. It needs to be
consistent on the internal proxypad also, otherwise you end up in
situations where:
* a pending buffer on the target pad triggers the sticky event
  propagation
* the default implementation sees that the proxypad is not flushing,
  so it tries to push it to the other pad (the actual ghostpad)
* the ghostpad is flushing, so returns FALSE
* the push_event function sees that pushing the event failed...
* ... and pending buffer push returns GST_FLOW_ERROR, instead of
  GST_FLOW_FLUSHING

By using gst_pad_set_active(FALSE), we ensure that both the ghostpad
and the proxypad are flushing/deactivated. The situation above will
no longer occur, and a GST_FLOW_FLUSHING will be returned.

9 years agoaudioconvert: fix build
Tim-Philipp Müller [Fri, 6 Nov 2015 18:11:41 +0000 (18:11 +0000)]
audioconvert: fix build

Don't include file that is no longer generated, and remove some
files that are no longer needed because they have moved into the
lib. Fixes distcheck.

9 years agoaudio-converter: require interleaved samples and no resampling
Wim Taymans [Fri, 6 Nov 2015 17:00:41 +0000 (18:00 +0100)]
audio-converter: require interleaved samples and no resampling

We can't yet do resampling or anything other than interleaved audio.

9 years agoaudio: update ORC dist files
Wim Taymans [Fri, 6 Nov 2015 16:54:21 +0000 (17:54 +0100)]
audio: update ORC dist files

9 years agoaudio-converter: move audio converter to audio libs
Wim Taymans [Fri, 6 Nov 2015 16:49:00 +0000 (17:49 +0100)]
audio-converter: move audio converter to audio libs

Move the audio-converter helper to the audio library.

9 years agoaudio-channel-mix: move channel mixer to audio libs
Wim Taymans [Fri, 6 Nov 2015 16:39:33 +0000 (17:39 +0100)]
audio-channel-mix: move channel mixer to audio libs

Move the channel mixer code to the audio library

9 years agoaudio: add debug categories
Wim Taymans [Fri, 6 Nov 2015 16:29:22 +0000 (17:29 +0100)]
audio: add debug categories

9 years agochannelmix: don't limit channelpositions
Wim Taymans [Fri, 6 Nov 2015 15:42:35 +0000 (16:42 +0100)]
channelmix: don't limit channelpositions

Don't set a limit on the channel positions, just like the metadata.

9 years agochannelmix: simplify API a little
Wim Taymans [Fri, 6 Nov 2015 15:03:20 +0000 (16:03 +0100)]
channelmix: simplify API a little

Remove the format and layout from the mix_samples function and use the
format when creating the channel mixer object. Also use a flag to handle
the unlikely case of non-interleaved samples like we do elsewhere.