platform/upstream/gst-plugins-base.git
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.

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

Rename GstChannel to GstAudioChannel

9 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

9 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

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

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

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

9 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()

9 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

9 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()

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

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

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

9 years agoaudioconvert: change multiplier for int<->float conversion
Wim Taymans [Tue, 3 Nov 2015 10:44:54 +0000 (11:44 +0100)]
audioconvert: change multiplier for int<->float conversion

Use (1 << 31) as the multiplier for int<->float conversions. This makes
sure that int->float conversions always end up with floats between
[-1.0, 1.0].
For the conversion from float to int, this multiplier will give the complete
int range after we perform clipping.
Change the unit test to take this into consideration.

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

9 years agoaudiobasesink: use GST_STIME_ARGS for GstClockTimeDiff
Luis de Bethencourt [Mon, 2 Nov 2015 17:32:55 +0000 (17:32 +0000)]
audiobasesink: use GST_STIME_ARGS for GstClockTimeDiff

No need to use G_GINT64_FORMAT for potentially negative values of
GstClockTimeDiff. Since 1.6 these can be handled with GST_STIME_ARGS.
Plus it creates more readable values in the logs.

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

9 years agooggmux: Print GstClockTimeDiff as a signed integer in debug logs
Luis de Bethencourt [Mon, 2 Nov 2015 16:36:35 +0000 (16:36 +0000)]
oggmux: Print GstClockTimeDiff as a signed integer in debug logs

9 years agooggdemux: Use GstClockTimeDiff and print signed integer in debug logs
Luis de Bethencourt [Mon, 2 Nov 2015 16:09:52 +0000 (16:09 +0000)]
oggdemux: Use GstClockTimeDiff and print signed integer in debug logs

Use GstClockTimeDiff and Clock macros to print signed integer time
differences in the debug logs.

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

9 years agoexamples: use GST_STIME_FORMAT for GstClockTimeDiff
Luis de Bethencourt [Mon, 2 Nov 2015 14:06:39 +0000 (14:06 +0000)]
examples: 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

9 years agoaudio: Fix parameters to gst_buffer_get_audio_downmix_meta() in macro
Sebastian Dröge [Mon, 2 Nov 2015 15:14:51 +0000 (17:14 +0200)]
audio: Fix parameters to gst_buffer_get_audio_downmix_meta() in macro

9 years agoaudiotestsrc: increase freq limit
Wim Taymans [Mon, 2 Nov 2015 14:54:19 +0000 (15:54 +0100)]
audiotestsrc: increase freq limit

Raise the frequency limit and try to negotiate to a samplerate of 4*freq
when larger then the default samplerate.

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

9 years agoaudiotestsrc: add support for unlimited number of channels
Wim Taymans [Mon, 2 Nov 2015 14:46:22 +0000 (15:46 +0100)]
audiotestsrc: add support for unlimited number of channels

Raise the channel limit and set the channel-mask for > 2 channels.

9 years agoaudiotestsrc: add support for all formats
Wim Taymans [Mon, 2 Nov 2015 12:19:09 +0000 (13:19 +0100)]
audiotestsrc: add support for all formats

Use the pack functions to also support the other audio formats we
have.

9 years agovideodecoder: subtract time difference with GST_CLOCK_DIFF
Luis de Bethencourt [Mon, 2 Nov 2015 12:09:42 +0000 (12:09 +0000)]
videodecoder: subtract time difference with GST_CLOCK_DIFF

To ensure the subtraction of two GstClockTime values (which are guint64)
can be negative. Use GST_CLOCK_DIFF which returns a gint64.

CID 1338049

9 years agoencoding-profile: Do not force user to provide an encoding profile name
Thibault Saunier [Mon, 2 Nov 2015 10:34:56 +0000 (11:34 +0100)]
encoding-profile: Do not force user to provide an encoding profile name

And use the profile called `default` if none provided.

9 years agoencoding-target: Do not unconditionally break when searching for a target
Thibault Saunier [Mon, 2 Nov 2015 10:30:07 +0000 (11:30 +0100)]
encoding-target: Do not unconditionally break when searching for a target

Otherwise the loop is useless!

Fixes CID 1338051

9 years agoaudioresample: Clip input buffers to the segment before handling them
Sebastian Dröge [Sat, 24 Oct 2015 17:08:47 +0000 (20:08 +0300)]
audioresample: Clip input buffers to the segment before handling them

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

9 years agoaudioconvert: Clip input buffers to the segment before handling them
Sebastian Dröge [Sat, 24 Oct 2015 17:05:10 +0000 (20:05 +0300)]
audioconvert: Clip input buffers to the segment before handling them

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

9 years agoaudiofilter: Clip input buffers to the segment before handling them
Sebastian Dröge [Sat, 24 Oct 2015 17:02:13 +0000 (20:02 +0300)]
audiofilter: Clip input buffers to the segment before handling them

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

9 years agoaudioconvert: update orc backup code to fix build without orc
Tim-Philipp Müller [Sun, 1 Nov 2015 23:05:10 +0000 (23:05 +0000)]
audioconvert: update orc backup code to fix build without orc

9 years agomultisocketsink: fix "client-removed" signal on 64-bit platforms and with bindings
Csaba Toth [Mon, 26 Oct 2015 20:32:41 +0000 (21:32 +0100)]
multisocketsink: fix "client-removed" signal on 64-bit platforms and with bindings

The client-removed signal used G_INT_TYPE instead of G_SOCKET_TYPE
in its definition leading to problems on platforms where the size
of a pointer is larger than the size of an integer, It would also
not work at all with dynamic language bindings.

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

9 years agovideotestsrc: fix handling of Bayer format 'gbrg'
Joan Pau Beltran [Wed, 28 Oct 2015 17:36:41 +0000 (18:36 +0100)]
videotestsrc: fix handling of Bayer format 'gbrg'

Due to a typo, videotestsrc did not handle the Bayer
format 'gbrg' properly and reported it as invalid,
causing negotiation errors.

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

9 years agoaudioconvert: rework audioconvert
Wim Taymans [Fri, 30 Oct 2015 16:36:48 +0000 (17:36 +0100)]
audioconvert: rework audioconvert

Rewrite audioconvert to try to make it more clear what steps are
executed during conversion.
Add passthrough step that just does a memcpy when possible.
Add ORC optimized dither and quantization functions.
Implement noise-shaping on S32 samples only and allow for arbitrary
noise shaping coefficients if we want this later.

9 years agochannelmix: fix up API a little
Wim Taymans [Fri, 30 Oct 2015 16:33:32 +0000 (17:33 +0100)]
channelmix: fix up API a little

don't use gpointer * for something that should be gpointer.

9 years agoaudioquantize: make helper for add with saturation
Wim Taymans [Wed, 28 Oct 2015 10:40:42 +0000 (11:40 +0100)]
audioquantize: make helper for add with saturation

9 years agovideodecoder: Print another time difference as a signed integer instead of a huge...
Sebastian Dröge [Thu, 29 Oct 2015 14:52:31 +0000 (16:52 +0200)]
videodecoder: Print another time difference as a signed integer instead of a huge unsigned one

9 years agovideodecoder: Print GstClockTimeDiff as a signed integer in debug logs
Sebastian Dröge [Thu, 29 Oct 2015 14:01:26 +0000 (16:01 +0200)]
videodecoder: Print GstClockTimeDiff as a signed integer in debug logs

9 years agotools: gst-device-monitor: fix two memory leaks
Nirbheek Chauhan [Wed, 28 Oct 2015 18:31:01 +0000 (00:01 +0530)]
tools: gst-device-monitor: fix two memory leaks

The removed GList link needs to be freed too, and
the G_OPTION_REMAINING arguments need to be freed.

9 years agoencoding-target: Add a GST_ENCODING_TARGET_PATH envvar to find target files
Thibault Saunier [Wed, 28 Oct 2015 14:50:44 +0000 (15:50 +0100)]
encoding-target: Add a GST_ENCODING_TARGET_PATH envvar to find target files

9 years agoencoding-target: Allow having encoding target without a category set
Thibault Saunier [Wed, 28 Oct 2015 14:47:00 +0000 (15:47 +0100)]
encoding-target: Allow having encoding target without a category set

There was already some code to handle that, but the support was not
complete in those code paths.

9 years agoencoding-target: Create directory before trying to save encoding targets
Thibault Saunier [Tue, 27 Oct 2015 11:56:48 +0000 (12:56 +0100)]
encoding-target: Create directory before trying to save encoding targets

9 years agoencoding-profile: Allow specifying the target category in the serialized encoding...
Thibault Saunier [Tue, 27 Oct 2015 11:50:26 +0000 (12:50 +0100)]
encoding-profile: Allow specifying the target category in the serialized encoding target

9 years agoaudioconvert: make the quantizer a reusable object
Wim Taymans [Tue, 27 Oct 2015 16:28:06 +0000 (17:28 +0100)]
audioconvert: make the quantizer a reusable object

Turn the quantizer into a reusable object.

9 years agoaudioconvert: make the channel mixer a separate reusable object
Wim Taymans [Tue, 27 Oct 2015 12:24:31 +0000 (13:24 +0100)]
audioconvert: make the channel mixer a separate reusable object

A first attempt at making the channel mixer a separate object.

9 years agoaudioquantize: fix 8-pole noise shaping
Wim Taymans [Wed, 28 Oct 2015 10:32:57 +0000 (11:32 +0100)]
audioquantize: fix 8-pole noise shaping

Fix the 8-pole noise shaping error update. We were mixing errors from
different channels.

9 years agodecodebin: Send SEEK events directly to adaptive streaming demuxers
Sebastian Dröge [Tue, 27 Oct 2015 13:44:06 +0000 (15:44 +0200)]
decodebin: Send SEEK events directly to adaptive streaming demuxers

This makes sure that they will always get SEEK events, even if we're currently
in the middle of a group switch (i.e. switching to another
representation/bitrate/etc).

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

9 years agodecodebin: fix event leak
Guillaume Desmottes [Tue, 6 Oct 2015 13:20:51 +0000 (15:20 +0200)]
decodebin: fix event leak

As stated in GST_PAD_PROBE_HANDLED's documentation, we are
supposed to unref the event before returning.

Fixes an event leak in the validate.hls.playback.play_15s.hls_bibbop
validate scenario.

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

9 years agoaudioconvert: Update disted orc files
Sebastian Dröge [Fri, 23 Oct 2015 16:13:05 +0000 (19:13 +0300)]
audioconvert: Update disted orc files

9 years agoaudioconvert: use pack/unpack functions
Wim Taymans [Fri, 23 Oct 2015 14:58:17 +0000 (16:58 +0200)]
audioconvert: use pack/unpack functions

Rework the converter to use the pack/unpack functions
Because the unpack functions can only unpack to 1 format, add a separate
conversion step for doubles when the unpack function produces int.
Do conversion to S32 in the quantize function directly.
Tweak the conversion factor for doing float->int conversion slightly to
get the full range of negative samples, use clamp to make sure we don't
exceed our int range on the positive axis (see also #755301)

9 years agoplaybin: Send upstream events directly to playsink
Sebastian Dröge [Fri, 23 Oct 2015 09:02:28 +0000 (12:02 +0300)]
playbin: Send upstream events directly to playsink

Send event directly to playsink instead of letting GstBin iterate
over all sink elements. The latter might send the event multiple times
in case the SEEK causes a reconfiguration of the pipeline, as can easily
happen with adaptive streaming demuxers.

What would then happen is that the iterator would be reset, we send the
event again, and on the second time it will fail in the majority of cases
because the pipeline is still being reconfigured

9 years agotests: typefindfunctions: fix error leaks
Eunhae Choi [Fri, 23 Oct 2015 08:25:50 +0000 (17:25 +0900)]
tests: typefindfunctions: fix error leaks

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

9 years agovideotestsrc: Force alpha downstream if foreground color contains alpha
Thibault Saunier [Wed, 23 Sep 2015 16:47:52 +0000 (18:47 +0200)]
videotestsrc: Force alpha downstream if foreground color contains alpha

Otherwise the foreground color won't be fully represented in the
outputted frames.

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

9 years agovideo: overlay-composition: fix rectangle and composition cast macros
Pavel Bludov [Thu, 22 Oct 2015 04:07:44 +0000 (12:07 +0800)]
video: overlay-composition: fix rectangle and composition cast macros

Closing parenthesis was missing in two cases.

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

9 years agoAutomatic update of common submodule
Tim-Philipp Müller [Wed, 21 Oct 2015 13:34:56 +0000 (14:34 +0100)]
Automatic update of common submodule

From b99800a to b319909

9 years agoUse new GST_ENABLE_EXTRA_CHECKS #define
Sebastian Dröge [Tue, 20 Oct 2015 14:29:42 +0000 (17:29 +0300)]
Use new GST_ENABLE_EXTRA_CHECKS #define

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

9 years agoAutomatic update of common submodule
Sebastian Dröge [Wed, 21 Oct 2015 11:25:47 +0000 (14:25 +0300)]
Automatic update of common submodule

From 9aed1d7 to b99800a

9 years agortp: GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING is Since 1.6.1
Sebastian Dröge [Tue, 20 Oct 2015 09:08:23 +0000 (12:08 +0300)]
rtp: GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING is Since 1.6.1

9 years agodecodebin: track the exposable pads through connect_pad
Matthew Waters [Mon, 19 Oct 2015 16:58:26 +0000 (03:58 +1100)]
decodebin: track the exposable pads through connect_pad

The logic introduced by
[d50b713: decodebin: set the decode pad target before setting elements to PAUSED]
to expose pads would only ever be able to possibly expose one (the last) pad per element.

Make it so that any exposable pads are able to be exposed rather than just the
last pad returned by connect_element.

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

9 years agodecodebin: return the possibly new chain in analyze_new_pad
Matthew Waters [Mon, 19 Oct 2015 16:52:24 +0000 (03:52 +1100)]
decodebin: return the possibly new chain in analyze_new_pad

In the case of analyzing a demuxer chain, analyze_new_pad may create
a new GstDecodeChain.  This was not propagated to the calling function which as
of [d50b713f decodebin: set the decode pad target before setting elements to PAUSED]
is now required to be able to expose the correct pad.

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

9 years agoplaysink: relink text_pad in case of reconfiguration
Rajat Verma [Mon, 19 Oct 2015 10:02:19 +0000 (15:32 +0530)]
playsink: relink text_pad in case of reconfiguration

In case of reconfiguration, text_pad should be re-connected with
stream synchronizer sink pad. Otherwise we'll leave an unlinked pad around if
there always was a streamsynchronizer text pad.

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

9 years agoaudiobasesink: fix issue about eos handling during flushing
eunhae choi [Mon, 14 Sep 2015 06:25:11 +0000 (15:25 +0900)]
audiobasesink: fix issue about eos handling during flushing

If the flush-start is arrived during _eos_wait() in basesink,
the 'eos' flag is overwritten to TRUE after exiting the _eos_wait().
To resolve the overwritten issue,
the subclass doing the _eos_wait() call should return the right value.
If the eos flag is set to TRUE again, it will cause error(enter the eos flow)
of the following state changing from PAUSED to PLAYING in basesink.

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

9 years agodecodebin/playbin/playsink/subtitleoverlay: Post async-done on state change failures
Sebastian Dröge [Sat, 17 Oct 2015 19:25:22 +0000 (22:25 +0300)]
decodebin/playbin/playsink/subtitleoverlay: Post async-done on state change failures

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

9 years agoplaysink: Immediately error out if state change fails
Sebastian Dröge [Sat, 17 Oct 2015 19:20:31 +0000 (22:20 +0300)]
playsink: Immediately error out if state change fails

Otherwise we chain up to the parent class' change_state function and might
override the failure with SUCCESS.

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

9 years agoplaybin/uridecodebin: Always post async-done immediately if we're a live pipeline
Sebastian Dröge [Sat, 17 Oct 2015 18:47:07 +0000 (21:47 +0300)]
playbin/uridecodebin: Always post async-done immediately if we're a live pipeline

Not only if the base class told us, but also if one of our own elements did.

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

9 years agodecodebin: set the decode pad target before setting elements to PAUSED
Matthew Waters [Thu, 15 Oct 2015 16:40:43 +0000 (03:40 +1100)]
decodebin: set the decode pad target before setting elements to PAUSED

Otherwise caps and context queries will disappear into nothing and therefore
fail.  With autoplug-query now actually working, users (such as playbin) can
proxy these queries to the selected video sink and be able to select an
more appropriate configuration.

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

9 years agovideo: Add out annotations to the out parameters of gst_video_calculate_display_ratio()
Sebastian Dröge [Sat, 17 Oct 2015 17:36:27 +0000 (20:36 +0300)]
video: Add out annotations to the out parameters of gst_video_calculate_display_ratio()

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

9 years agowin32 update exports for new rtp symbols
Matthew Waters [Thu, 15 Oct 2015 23:48:50 +0000 (10:48 +1100)]
win32 update exports for new rtp symbols

9 years agortpbuffer: Add map flag to skip padding
Stian Selnes [Wed, 22 Jul 2015 09:31:05 +0000 (11:31 +0200)]
rtpbuffer: Add map flag to skip padding

Encrypted RTP buffers may contain encrypted padding, hence it's
necessary to have an option to relax the validation in order to
successfully map the buffer.

When the flag GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING is set
gst_rtp_buffer_map() will map the buffer like if padding is not
present.

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

9 years agoRevert "rtpbuffer: increase logging level when map fails"
Sebastian Dröge [Thu, 15 Oct 2015 19:40:50 +0000 (22:40 +0300)]
Revert "rtpbuffer: increase logging level when map fails"

This reverts commit e3c8a820176ba39dfae85944fa9c6ae202ec681d.

It causes too much noise in the logs.

9 years agortpbuffer: increase logging level when map fails
Miguel París Díaz [Thu, 15 Oct 2015 13:32:58 +0000 (15:32 +0200)]
rtpbuffer: increase logging level when map fails

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

9 years agoplaysink: Fix volume element leak
Vineeth TM [Thu, 15 Oct 2015 01:01:38 +0000 (10:01 +0900)]
playsink: Fix volume element leak

In case sink implements a streamvolume interface, volume element is being got
from the sink. But this is transfer full. So the memory should be freed before
setting it to NULL. This was resulting in major memory leaks

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

9 years agoalsa: Use 8 bit pointer type for byte-based pointer arithmetic
Sebastian Dröge [Tue, 13 Oct 2015 21:32:11 +0000 (00:32 +0300)]
alsa: Use 8 bit pointer type for byte-based pointer arithmetic

Usually these loops only run once, so there's no problem here. But sometimes
they run twice, and by adding the number of bytes to a 16 bit pointer type we
would advance twice as much as we should.

Also use snd_pcm_frames_to_bytes() in alsasrc to calculate
the number of bytes to skip, same as we do in alsasink.

Thanks to Lucio A. Hernandez <lucio.a.hernandez@gmail.com> for reporting.

9 years agoRevert "audioencoder: timestamp headers same as first buffer and use duration 0"
Sebastian Dröge [Mon, 12 Oct 2015 11:02:58 +0000 (14:02 +0300)]
Revert "audioencoder: timestamp headers same as first buffer and use duration 0"

This reverts commit dd4d6d9ed54c2a63a7e45661519d9965417707c5.

It breaks ogg muxing and the vorbisenc unit test.

9 years agoaudioencoder: timestamp headers same as first buffer and use duration 0
Havard Graff [Fri, 28 Aug 2015 09:44:19 +0000 (11:44 +0200)]
audioencoder: timestamp headers same as first buffer and use duration 0

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

9 years agoaudioencoder-tests: port to use GstHarness
Havard Graff [Fri, 28 Aug 2015 09:25:22 +0000 (11:25 +0200)]
audioencoder-tests: port to use GstHarness

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

9 years agoaudiodecoder-test: port to using GstHarness
Havard Graff [Thu, 27 Aug 2015 15:28:30 +0000 (17:28 +0200)]
audiodecoder-test: port to using GstHarness

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

9 years agoxvimagesink: Put error message into debug output instead of just throwing it away
Sebastian Dröge [Sun, 4 Oct 2015 17:36:00 +0000 (18:36 +0100)]
xvimagesink: Put error message into debug output instead of just throwing it away

9 years agoUpdate GLib dependency to 2.40.0
Sebastian Dröge [Fri, 2 Oct 2015 19:19:52 +0000 (22:19 +0300)]
Update GLib dependency to 2.40.0

9 years agortpbasepayload: Implement video SDP attributes
Sebastian Rasmussen [Sat, 15 Mar 2014 16:35:56 +0000 (17:35 +0100)]
rtpbasepayload: Implement video SDP attributes

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

9 years agogst-play: Removed erroneous comment
Vivia Nikolaidou [Fri, 25 Sep 2015 12:17:53 +0000 (15:17 +0300)]
gst-play: Removed erroneous comment

The "fall through" comment was wrong. Removed.

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

9 years agogst-play: Add keyboard shortcut '0' to seek to beginning
Vivia Nikolaidou [Tue, 22 Sep 2015 20:12:10 +0000 (23:12 +0300)]
gst-play: Add keyboard shortcut '0' to seek to beginning

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

9 years agovideorate: remove unnecessary break statement
Vineeth T M [Tue, 25 Aug 2015 07:24:12 +0000 (16:24 +0900)]
videorate: remove unnecessary break statement

Trivial patch to remove unncessary break statement used after
goto statement.

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

9 years agogstreamer: base: Fix memory leaks when context parse fails.
Vineeth TM [Thu, 20 Aug 2015 06:59:15 +0000 (15:59 +0900)]
gstreamer: base: Fix memory leaks when context parse fails.

When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.

And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.

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