platform/upstream/gstreamer.git
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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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.

8 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

8 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.

8 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

8 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.

8 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.

8 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.

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

8 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.

8 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

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

8 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.

8 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.

8 years agochannelmix: GstChannel -> GstAudioChannel
Wim Taymans [Fri, 6 Nov 2015 14:50:34 +0000 (15:50 +0100)]
channelmix: GstChannel -> GstAudioChannel

Rename GstChannel to GstAudioChannel

8 years agoaudio-quantize: update docs
Wim Taymans [Fri, 6 Nov 2015 12:02:19 +0000 (13:02 +0100)]
audio-quantize: update docs

Update docs
Add another flag for the quantizer

8 years agoaudioconvert: cleanups and add some docs
Wim Taymans [Fri, 6 Nov 2015 11:46:36 +0000 (12:46 +0100)]
audioconvert: cleanups and add some docs

Add docs for the internal audioconvert object before moving it to the
audio library.
Remove get_sizes and implement the trivial logic in the element.
Remove some unused orc functions

8 years agodefs: update defs
Wim Taymans [Fri, 6 Nov 2015 11:46:12 +0000 (12:46 +0100)]
defs: update defs

8 years agoaudio: update orc files
Wim Taymans [Fri, 6 Nov 2015 11:37:14 +0000 (12:37 +0100)]
audio: update orc files

8 years agoaudioconvert: move audio quantize code to libs
Wim Taymans [Fri, 6 Nov 2015 11:10:48 +0000 (12:10 +0100)]
audioconvert: move audio quantize code to libs

Move the audio quantize code from audioconvert to the audio library.
work on making an audio converter helper function similar to the video
converter.
Fold fastrandom directly into the quantizer, add some ORC code to
optimize this later.

8 years agoaudio-channels: rename get_default_mask
Wim Taymans [Thu, 5 Nov 2015 11:42:56 +0000 (12:42 +0100)]
audio-channels: rename get_default_mask

Rename _get_default_mask() to _get_fallback_mask() to make it more
clear that the function only provides a fallback if nothing else can be
done. Also clarify this in the documentation.

API: gst_audio_channel_get_fallback_mask()

8 years agovolume: Do not try to get binding value array if we are not processing any sample
Thibault Saunier [Thu, 5 Nov 2015 10:34:07 +0000 (11:34 +0100)]
volume: Do not try to get binding value array if we are not processing any sample

In some conditions we might process empty buffers, calling
gst_control_binding_get_value_array in that case will lead
to the assertion:

  (lt-ges-launch-1.0:18859): GStreamer-CRITICAL **: gst_control_binding_get_value_array: assertion 'values' failed

8 years agoaudio-channels: make method to get default channel-mask
Wim Taymans [Thu, 5 Nov 2015 09:40:18 +0000 (10:40 +0100)]
audio-channels: make method to get default channel-mask

Add a new method to get the default channel-mask.
Use the new method on audiodecoder and audioconvert.

API: gst_audio_channel_get_default_mask()

8 years agotests: Add a test for video blending over transparent frames
Andreas Frisch [Mon, 10 Nov 2014 10:11:37 +0000 (11:11 +0100)]
tests: Add a test for video blending over transparent frames

And fix the test_overlay_blend test where we blend over a
transparent frame and where expecting wrong results

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

8 years agovideo: blend using OVER operation
Arnaud Vrac [Sat, 30 Nov 2013 00:59:55 +0000 (01:59 +0100)]
video: blend using OVER operation

Also support all premultiplied/non-premultiplied source/destination
configurations

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

8 years agooggdemux: Create full Opus caps with all fields
Sebastian Dröge [Tue, 3 Nov 2015 14:51:47 +0000 (16:51 +0200)]
oggdemux: Create full Opus caps with all fields

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

8 years agocodec-utils: Add utilities for Opus caps and the OpusHead header
Sebastian Dröge [Tue, 3 Nov 2015 16:30:09 +0000 (18:30 +0200)]
codec-utils: Add utilities for Opus caps and the OpusHead header

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

8 years agooggmux: Use GstAudioClippingMeta for Opus for accurate end clipping
Sebastian Dröge [Tue, 3 Nov 2015 09:11:57 +0000 (11:11 +0200)]
oggmux: Use GstAudioClippingMeta for Opus for accurate end clipping

... instead of relying on the segment. For the clipping at the start we assume
a proper value in the OpusHead, as generated by opusparse or opusenc.

Transmuxing in general is not guaranteed to produce the correct values, or
even have a OpusHead (e.g. when having RTP input).

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

8 years agooggdemux: Add GstAudioClippingMeta for Opus for accurate start/end clipping
Sebastian Dröge [Tue, 3 Nov 2015 08:58:35 +0000 (10:58 +0200)]
oggdemux: Add GstAudioClippingMeta for Opus for accurate start/end clipping

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

8 years agoaudio: Add GstAudioClippingMeta for specifying clipping on encoded audio buffers
Sebastian Dröge [Mon, 2 Nov 2015 14:19:42 +0000 (16:19 +0200)]
audio: Add GstAudioClippingMeta for specifying clipping on encoded audio buffers

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

8 years agooggdemux: Allow start clipping for Opus
Sebastian Dröge [Mon, 2 Nov 2015 09:19:23 +0000 (11:19 +0200)]
oggdemux: Allow start clipping for Opus

The granulepos does not have the pre-skip subtracted while timestamps do,
and the last granulepos will be shorter by the number of samples that should
be dropped because of padding in the end.

As such, extrapolating the granule of the beginning of the first frame will
lead to a negative value, which is not a problem but intentional.

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

8 years agoaudio: update disted orc backup files
Tim-Philipp Müller [Tue, 3 Nov 2015 16:38:09 +0000 (16:38 +0000)]
audio: update disted orc backup files

8 years agoaudioclock: use GST_STIME_FORMAT for GstClockTimeDiff
Luis de Bethencourt [Tue, 3 Nov 2015 14:08:25 +0000 (14:08 +0000)]
audioclock: use GST_STIME_FORMAT for GstClockTimeDiff

GST_STIME_FORMAT is more appropriate for GstClockTimeDiff since it can
handle negative values better.

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

8 years agovideodecoder: Print GstClockTimeDiff as a signed integer in debug logs
Luis de Bethencourt [Tue, 3 Nov 2015 13:44:39 +0000 (13:44 +0000)]
videodecoder: Print GstClockTimeDiff as a signed integer in debug logs

8 years agoaudio-format: add TRUNCATE_RANGE flag
Wim Taymans [Tue, 3 Nov 2015 10:59:09 +0000 (11:59 +0100)]
audio-format: add TRUNCATE_RANGE flag

Add a TRUNCATE_RANGE flag for unpack functions to fill the least
significate bits with 0 (as did the old code). Also add functions
that don't truncate. Use the TRUNC flag in audioconvert for
backwards compatibility for now.

8 years agoaudiopack: improve pack functions
Wim Taymans [Tue, 3 Nov 2015 10:57:32 +0000 (11:57 +0100)]
audiopack: improve pack functions

Avoid shifts by using convh functions.