platform/upstream/gstreamer.git
6 years agoaudio: Add stream align API for getting timestamp at discont and number of samples...
Sebastian Dröge [Wed, 13 Sep 2017 13:23:26 +0000 (16:23 +0300)]
audio: Add stream align API for getting timestamp at discont and number of samples since discont

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

6 years agoaudio: Add reverse playback support to GstAudioStreamAlign
Sebastian Dröge [Tue, 12 Sep 2017 13:03:44 +0000 (16:03 +0300)]
audio: Add reverse playback support to GstAudioStreamAlign

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

6 years agoaudio: Add helper object for audio discontinuity detection and sample alignment
Sebastian Dröge [Mon, 11 Sep 2017 19:49:32 +0000 (22:49 +0300)]
audio: Add helper object for audio discontinuity detection and sample alignment

This is the same code that is in decklinkaudiosrc, audioringbuffer,
audiomixer and various other places. Have it once instead of copying it
everywhere.

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

6 years agoalsasink: Fix Memory leak in payload not succuss case
Ponnam Srinivas [Mon, 25 Sep 2017 05:12:33 +0000 (10:42 +0530)]
alsasink: Fix Memory leak in payload not succuss case

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

6 years agoaudioconvert: [API]: expose mix-matrix property.
Mathieu Duponchelle [Tue, 15 Aug 2017 00:39:54 +0000 (02:39 +0200)]
audioconvert: [API]: expose mix-matrix property.

This obsoletes audiomixmatrix

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

6 years ago[API]: GST_AUDIO_CONVERTER_OPT_MIX_MATRIX
Mathieu Duponchelle [Thu, 27 Jul 2017 17:31:48 +0000 (19:31 +0200)]
[API]: GST_AUDIO_CONVERTER_OPT_MIX_MATRIX

Taken from audiomixmatrix, credits to Vivia Nikolaidou

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

6 years ago[API]: gst_audio_channel_mixer_new_with_matrix
Mathieu Duponchelle [Mon, 14 Aug 2017 23:29:57 +0000 (01:29 +0200)]
[API]: gst_audio_channel_mixer_new_with_matrix

+ Refactor previous constructor to call on that new constructor

+ Reimplement is_passthrough to strictly check whether the matrix
  is an identity matrix, comparing channel-masks was incorrect:
  the mixer may be remixing from a list of positions to the same
  list of positions, but ordered differently, and reciprocally,
  the mixer may be remixing from a list of positions to another
  list of positions identically ordered

+ Remove unused tmp field, must have been a refactoring leftover

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

6 years agoaudioconvert: refactor format removal.
Mathieu Duponchelle [Mon, 14 Aug 2017 22:20:40 +0000 (00:20 +0200)]
audioconvert: refactor format removal.

remove_format_info was a bit confusing to read, this removes
it in favor of standard gst_caps_map_in_place calls.

This no longer simplifies the resulting caps, but I
consider this should be the job of basetransform.

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

6 years agoappsink: on drain wait for buffers to be consumed
Julien Isorce [Thu, 24 Aug 2017 09:02:31 +0000 (10:02 +0100)]
appsink: on drain wait for buffers to be consumed

So that an upstream element can claim all buffers to return to its buffer pool.

Added unit test 'test_query_drain'
  make elements/appsink.check

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

6 years agoappsink: also clear preroll buffer in _pull_sample
Julien Isorce [Mon, 18 Sep 2017 16:06:32 +0000 (17:06 +0100)]
appsink: also clear preroll buffer in _pull_sample

If someone calls gst_app_sink_try_pull_sample they are
probably no longer interested in any preroll samples.

Useful if the user has not registered a preroll appsink callback.

Also added unit test 'test_do_not_care_preroll'
  make elements/appsink.check
that fails without this patch.

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

6 years agoappsink: unref preroll buffer upon pull
Julien Isorce [Tue, 29 Aug 2017 08:47:51 +0000 (09:47 +0100)]
appsink: unref preroll buffer upon pull

There is no reason for appsink to hang onto the preroll buffer.
If needed, the application can just keep a ref on this buffer
after calling gst_app_sink_try_pull_preroll.

Also added unit test 'test_pull_preroll'
  make elements/appsink.check

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

6 years agoappsink: rename GstBuffer *preroll to preroll_buffer
Julien Isorce [Wed, 13 Sep 2017 13:06:43 +0000 (14:06 +0100)]
appsink: rename GstBuffer *preroll to preroll_buffer

priv->preroll can be confused with basesink_class->preroll

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

6 years agotests: playbin-complex: skip test that needs oggdemux if it's not available
Tim-Philipp Müller [Sun, 10 Sep 2017 15:32:31 +0000 (16:32 +0100)]
tests: playbin-complex: skip test that needs oggdemux if it's not available

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

6 years agoRequest minimum buffer even if need_pool is FALSE
Nicolas Dufresne [Wed, 6 Sep 2017 17:55:13 +0000 (13:55 -0400)]
Request minimum buffer even if need_pool is FALSE

When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

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

6 years agovideo-filter: Support allocation pool with pool object
Nicolas Dufresne [Wed, 6 Sep 2017 17:53:42 +0000 (13:53 -0400)]
video-filter: Support allocation pool with pool object

This is used to indicate upstream the requirement in buffers
while no buffer pool can be provided. In this case, only
configure the pool with caps/size/min/max if we have caps,
which we only parsed when there was no allocation pool.

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

6 years agovideo/affinetransformationmeta: use the provided doc comment for the struct
Matthew Waters [Thu, 24 Aug 2017 09:11:29 +0000 (19:11 +1000)]
video/affinetransformationmeta: use the provided doc comment for the struct

6 years agoplaybin: ref_sink() sink rather than pointer to sink
Mark Nauwelaerts [Sun, 20 Aug 2017 10:09:52 +0000 (12:09 +0200)]
playbin: ref_sink() sink rather than pointer to sink

6 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 17 Aug 2017 11:23:18 +0000 (12:23 +0100)]
Automatic update of common submodule

From 29046b8 to 3f4aa96

6 years agovideoutilsprivate: fill more video fields.
Mathieu Duponchelle [Fri, 11 Aug 2017 18:53:21 +0000 (20:53 +0200)]
videoutilsprivate: fill more video fields.

__gst_video_element_proxy_caps is called by
__gst_video_element_proxy_getcaps with caps set to the caps
allowed downstream. As we didn't set colorimetry or
chroma-site on the resulting caps, upstream considered it
possible to use whatever values it wanted, leading to
not negotiated errors later on.

As the description for that function is:
"Takes caps and copies its video fields to tmpl_caps",
it seems legitimate to set these fields there.

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

6 years agoappsrc: handle duration query only if the property was set
Philippe Normand [Sat, 12 Aug 2017 14:46:28 +0000 (15:46 +0100)]
appsrc: handle duration query only if the property was set

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

6 years agodecodebin3/urisourcebin: Switch to actual EOS events internally
Edward Hervey [Wed, 9 Aug 2017 14:23:03 +0000 (16:23 +0200)]
decodebin3/urisourcebin: Switch to actual EOS events internally

Use the intended sequence for re-using elements:
* EOS
* STREAM_START if element is to be re-used

This avoids having elements (such as queue/multiqueue/queue2) not
properly resetting themselves.

When delaying EOS propagation (because we want to wait until all
streams of a group are done for example), we re-trigger them by
first sending the cached STREAM_START and then EOS (which will
cause elements to re-set themselves if needed and accept new
buffers/events).

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

6 years agomeson: hide symbols by default unless explicitly exported
Tim-Philipp Müller [Thu, 10 Aug 2017 13:00:21 +0000 (14:00 +0100)]
meson: hide symbols by default unless explicitly exported

6 years agopbutils: sprinkle more GST_EXPORT
Tim-Philipp Müller [Thu, 10 Aug 2017 12:57:26 +0000 (13:57 +0100)]
pbutils: sprinkle more GST_EXPORT

6 years agolibs: add some more missing GST_EXPORT
Tim-Philipp Müller [Thu, 10 Aug 2017 09:27:23 +0000 (10:27 +0100)]
libs: add some more missing GST_EXPORT

6 years agoexamples/snapshot: Does not need GTK but only gdk-pixbuf
Sebastian Dröge [Wed, 9 Aug 2017 09:26:43 +0000 (12:26 +0300)]
examples/snapshot: Does not need GTK but only gdk-pixbuf

6 years agoaudioencoder: also adjust sample count upon discont to avoid ts overflow
Mark Nauwelaerts [Tue, 8 Aug 2017 18:35:25 +0000 (20:35 +0200)]
audioencoder: also adjust sample count upon discont to avoid ts overflow

Only adjusting the base_ts might lead to a negative ts and as such integer
overflow into a huge timestamp which then propagates into the granulepos
and so on.  Instead, resync to incoming buffer timestamp using both base_ts
and sample count rather than only base_ts.

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

6 years agomeson: fix a few meson warnings
Tim-Philipp Müller [Mon, 7 Aug 2017 23:13:01 +0000 (00:13 +0100)]
meson: fix a few meson warnings

6 years agoexamples: fix memory leaks in appsrc and appsrc2 examples
Satya Prakash Gupta [Mon, 24 Jul 2017 08:26:16 +0000 (13:56 +0530)]
examples: fix memory leaks in appsrc and appsrc2 examples

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

6 years agoplaybin: Make sure to ref_sink() any sinks before calling activate_sink()
Sebastian Dröge [Mon, 7 Aug 2017 12:27:45 +0000 (15:27 +0300)]
playbin: Make sure to ref_sink() any sinks before calling activate_sink()

It is forwarding messages to the playbin bus, thus forwarding messages
that contain a floating reference to the application. This generally
makes bindings unhappy, we must not leak floating references to them.

6 years agoxmptag: Stop parsing GPS coordinate if sscanf() fails
Sebastian Dröge [Fri, 4 Aug 2017 10:39:04 +0000 (13:39 +0300)]
xmptag: Stop parsing GPS coordinate if sscanf() fails

CID 1139610

7 years agoappsrc: fix doc typos
Tim-Philipp Müller [Tue, 1 Aug 2017 16:07:32 +0000 (17:07 +0100)]
appsrc: fix doc typos

7 years agoappsrc: Add out annotations to gst_app_src_get_latency()
Sebastian Dröge [Tue, 1 Aug 2017 14:53:50 +0000 (17:53 +0300)]
appsrc: Add out annotations to gst_app_src_get_latency()

7 years agoaudioconvert: Consider channel=1, channel-mask=0x0 as mono
Thibault Saunier [Tue, 25 Jul 2017 16:37:19 +0000 (12:37 -0400)]
audioconvert: Consider channel=1, channel-mask=0x0 as mono

channels=1 is always mono, having it 'unpositioned' does not make
sense.

This fixes pipeline such as:

  gst-validate-1.0 audiotestsrc ! audio/x-raw,channels=2,rate=44100,layout=interleaved ! audioconvert ! audioresample ! audio/x-raw, rate=44100, channels=1 ! avenc_mp2 ! fakesink

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

7 years agovideotimecode: Add GST_VIDEO_TIME_CODE_INIT macro
Sebastian Dröge [Tue, 25 Jul 2017 07:03:41 +0000 (10:03 +0300)]
videotimecode: Add GST_VIDEO_TIME_CODE_INIT macro

7 years agovideofilter: Unmap input frame if mapping output frame failed
Satya Prakash Gupta [Mon, 24 Jul 2017 13:48:49 +0000 (19:18 +0530)]
videofilter: Unmap input frame if mapping output frame failed

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

7 years agovideodecoder: Make sure we have an actually writable buffer when modifying metadata
Sebastian Dröge [Mon, 24 Jul 2017 13:48:17 +0000 (16:48 +0300)]
videodecoder: Make sure we have an actually writable buffer when modifying metadata

avviddec keeps references to the buffers internally for example, in
which case we need to do a shallow copy of the buffer.

7 years agovideometa: Don't crash if adding the timecode meta to a buffer failed
Sebastian Dröge [Mon, 24 Jul 2017 13:29:53 +0000 (16:29 +0300)]
videometa: Don't crash if adding the timecode meta to a buffer failed

7 years agossaparse: Fix buffer leak in error case
Satya Prakash Gupta [Mon, 24 Jul 2017 07:53:17 +0000 (13:23 +0530)]
ssaparse: Fix buffer leak in error case

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

7 years agoadder: comment and formatting cleanups
Stefan Sauer [Sun, 23 Jul 2017 11:13:14 +0000 (13:13 +0200)]
adder: comment and formatting cleanups

Log a few more details. Update method comments. Remove some extra blank lines.

7 years agovideorate: flush remaining buffers on SEGMENT_DONE
Mathieu Duponchelle [Fri, 7 Apr 2017 18:41:57 +0000 (20:41 +0200)]
videorate: flush remaining buffers on SEGMENT_DONE

Just as we do on EOS.

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

7 years agofft: don't generate g-i files for bindings
Tim-Philipp Müller [Wed, 19 Jul 2017 22:05:18 +0000 (23:05 +0100)]
fft: don't generate g-i files for bindings

The g-i stuff for this helper lib was never usable from bindings
anyway and there are problems with the latest gobject-introspection,
so we might just as well remove the g-i integration entirely for
this lib.

7 years agodecodebin3: Remove FIXME and do remove_input_stream() only for the corresponding...
Seungha Yang [Wed, 19 Jul 2017 10:58:28 +0000 (19:58 +0900)]
decodebin3: Remove FIXME and do remove_input_stream() only for the corresponding parsebin

Do not remove other parsebin's input streams. It will cause unexpected
removal of any input streams in multi-parsebin use case.

Basically, the purpose of blocking buffers is similar to checking
no-more-pads of chain/group. That is, it gives hint to know the timing
to remove old (EOSed) streams of the parsebin and to add/reuse slots
for new input streams. But, that doesn't mean that we need to remove
other parsebin's EOSed stream. Each parsebin has most likely its
own streaming thread and therefore EOSed time can be much different.
(i.e., much early EOS of subtitle only parsebin)

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

7 years agoparsebin: Ensure StreamType and Caps of GstStream object before exposing it
Seungha Yang [Wed, 19 Jul 2017 09:47:29 +0000 (18:47 +0900)]
parsebin: Ensure StreamType and Caps of GstStream object before exposing it

The final StreamType and Caps might not be set yet on GstStream at exposing the pads.

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

7 years agoplaybin3: Delay linking text output until video stream is shown
Seungha Yang [Wed, 19 Jul 2017 04:39:52 +0000 (13:39 +0900)]
playbin3: Delay linking text output until video stream is shown

We are not sure that which stream's collection arrives first
when there are multiple parsebins such as adaptive streaming.

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

7 years agotests: appsrc: fix leaks in new unit test
Tim-Philipp Müller [Wed, 19 Jul 2017 08:08:12 +0000 (09:08 +0100)]
tests: appsrc: fix leaks in new unit test

7 years agoencodebin: fix possible pad ref leak in error code path
Satya Prakash Gupta [Wed, 19 Jul 2017 03:32:26 +0000 (09:02 +0530)]
encodebin: fix possible pad ref leak in error code path

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

7 years agoplaybin3: We only care about source pads going away
Edward Hervey [Tue, 18 Jul 2017 11:04:09 +0000 (13:04 +0200)]
playbin3: We only care about source pads going away

7 years agodecodebin3: use lock macro where applicable
Edward Hervey [Tue, 18 Jul 2017 09:34:22 +0000 (11:34 +0200)]
decodebin3: use lock macro where applicable

7 years agodecodebin3: Protect fields related to streams handling with the SELECTION_LOCK
Thibault Saunier [Thu, 15 Jun 2017 16:48:42 +0000 (12:48 -0400)]
decodebin3: Protect fields related to streams handling with the SELECTION_LOCK

Fields related to stream handling (input_streams,
output_streams, slots, guint slot_id) where used totally unprotected
until know.

This lead to several races, especially playing back RTSP streams.

To protect those fields, the OBJECT_LOCK can not be used as we sometimes
need to be able to post message on the bus while holding it.

decodebin3 already has a lock to manage stream selection, and in the end
it makes sense to protect all the stream management fields with the same
lock which is why we reuse the SELECTION_LOCK here.

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

7 years agodecodebin3: Protect dbin->collection usage
Edward Hervey [Thu, 13 Jul 2017 15:39:58 +0000 (17:39 +0200)]
decodebin3: Protect dbin->collection usage

Use the selection lock to protect dbin->collection access

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

7 years agotests: adder: set all properties at once
Stefan Sauer [Sat, 15 Jul 2017 19:27:29 +0000 (21:27 +0200)]
tests: adder: set all properties at once

7 years agotests: adder: add helper to create buffers
Stefan Sauer [Sat, 15 Jul 2017 17:43:52 +0000 (19:43 +0200)]
tests: adder: add helper to create buffers

Keeps repeated code out of the test and syncs it with the audiomixer test.

7 years agomeson: add translations
Tim-Philipp Müller [Sat, 15 Jul 2017 11:45:35 +0000 (12:45 +0100)]
meson: add translations

7 years agoadder: fix docs typo
Tim-Philipp Müller [Fri, 14 Jul 2017 12:48:53 +0000 (13:48 +0100)]
adder: fix docs typo

7 years agoadder: document caps negotiation raciness and workaround
Tim-Philipp Müller [Fri, 14 Jul 2017 12:40:07 +0000 (13:40 +0100)]
adder: document caps negotiation raciness and workaround

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

7 years agoplayback example: Prettify time reporting for big values
Edward Hervey [Tue, 6 Jun 2017 05:45:08 +0000 (07:45 +0200)]
playback example: Prettify time reporting for big values

When dealing with streams/contents which have large duration, it is
more user-friendly to show more details in the high values (hours or days)
than in the microseconds.

This patch will use the following formatting schemes:
* Below 1hour   : MM:SS.SSS
* Below 24hours : HHhMMmSSs
* Above         : DDdHHhMMm

7 years agodecodebin3: Push EOS to output stream if they are all drained
Seungha Yang [Wed, 25 Jan 2017 10:51:17 +0000 (19:51 +0900)]
decodebin3: Push EOS to output stream if they are all drained

decodebin3 checks input streams and pushes EOS if all input streams
are EOSed. If not, fake EOS is pushed to the corresponding slot.

When adaptivedemux is used with multi-track configuration,
adaptivedemux never ever push EOS to non-selected track
because streaming thread for the slot stops with not-linked flow return.
So, decodebin3 should generate EOS itself to finish playback.

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

7 years agourisourcebin: Push EOS if slot is still eos state
Seungha Yang [Wed, 25 Jan 2017 10:20:44 +0000 (19:20 +0900)]
urisourcebin: Push EOS if slot is still eos state

linked input of slot can be old input, so urisourcebin should check
eos state to figure out whether it's new one or not.
If not, urisourcebin never ever forwards EOS to downstream at the end
of presentation, because the old input is still there without removal

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

7 years agodecodebin3: Don't send duplicated stream-start event
Seungha Yang [Fri, 9 Sep 2016 01:29:01 +0000 (10:29 +0900)]
decodebin3: Don't send duplicated stream-start event

group-id in stream-start event might be updated in
parse_chain_output_probe (). This cause duplicated stream-start
twice with identical stream-id and seq-num, but only group-id is
different. Although there is no change, stream-start event will
be followed by the first buffer.

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

7 years agoadder: sync some fixes from the audiomixer test
Stefan Sauer [Mon, 10 Jul 2017 19:07:14 +0000 (21:07 +0200)]
adder: sync some fixes from the audiomixer test

7 years agotypefind: Detect JPEG2000 codestreams
Aaron Boxer [Tue, 13 Jun 2017 02:57:26 +0000 (22:57 -0400)]
typefind: Detect JPEG2000 codestreams

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

7 years agomeson: find python3 via python3 module
Tim-Philipp Müller [Fri, 7 Jul 2017 10:56:40 +0000 (11:56 +0100)]
meson: find python3 via python3 module

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

7 years agoconvertframe: Fix leak in case of vcrop is disabled
Heekyoung Seo [Fri, 7 Jul 2017 00:18:30 +0000 (09:18 +0900)]
convertframe: Fix leak in case of vcrop is disabled

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

7 years agotest-appsrc: Test state when blocked in caps Event
Nicolas Dufresne [Tue, 4 Jul 2017 01:08:02 +0000 (21:08 -0400)]
test-appsrc: Test state when blocked in caps Event

In GStreamer 1.12 and older, the GstBaseSrc live lock used to be held while
create() virtual function was called. As appsrc pushes serialized event in
that virtual function, we ended up with some deadlock while setting the
state to NULL. This test simulates this situation.

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

7 years agouridecodebin: aggregate topology messages
Mathieu Duponchelle [Tue, 27 Jun 2017 00:21:22 +0000 (02:21 +0200)]
uridecodebin: aggregate topology messages

This makes it possible for GstDiscoverer to work with sources that
have multiple source pads and hence will trigger the creation of multiple
decodebin instances such as rtspsrc.

Based on the work of Vineeth TM <vineeth.tm@samsung.com>

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

7 years agotextoverlay: ensure text buffer has writable metadata when modifying
Mark Nauwelaerts [Sat, 1 Jul 2017 15:45:19 +0000 (17:45 +0200)]
textoverlay: ensure text buffer has writable metadata when modifying

7 years agotextoverlay: adjust a valid text buffer duration to fall within segment
Mark Nauwelaerts [Sat, 1 Jul 2017 15:44:22 +0000 (17:44 +0200)]
textoverlay: adjust a valid text buffer duration to fall within segment

... as expected later on when end time is used to determine end running time.
Otherwise the latter is determined as NONE and the resulting text buffer is
then used indefinitely.

7 years agotextoverlay: make debug statement more informative
Mark Nauwelaerts [Fri, 30 Jun 2017 18:24:14 +0000 (20:24 +0200)]
textoverlay: make debug statement more informative

7 years agoencodebin: Simplify the are_raw_caps function
Jimmy Ohn [Thu, 29 Jun 2017 00:02:20 +0000 (09:02 +0900)]
encodebin: Simplify the are_raw_caps function

Remove unnecessary if statement in are_raw_caps function.
we can use result returned by gst_caps_can_intersect quite simple.

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

7 years agomeson: Allow using glib as a subproject
Thibault Saunier [Fri, 23 Jun 2017 20:18:43 +0000 (16:18 -0400)]
meson: Allow using glib as a subproject

7 years agomeson: fix with-package-name option
Tim-Philipp Müller [Mon, 26 Jun 2017 08:44:46 +0000 (09:44 +0100)]
meson: fix with-package-name option

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

7 years agosubparse: ensure serialized sending of segment event at proper time
Mark Nauwelaerts [Sat, 24 Jun 2017 20:03:21 +0000 (22:03 +0200)]
subparse: ensure serialized sending of segment event at proper time

7 years agoalsasrc: Handle newly added GstStateChange values
Thibault Saunier [Thu, 15 Jun 2017 15:21:13 +0000 (11:21 -0400)]
alsasrc: Handle newly added GstStateChange values

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

7 years agolibs: Export boxed type copy/free functions for the remaining types
Sebastian Dröge [Tue, 20 Jun 2017 07:06:01 +0000 (10:06 +0300)]
libs: Export boxed type copy/free functions for the remaining types

7 years agourisourcebin: Call do_async_done when source state change returns NO_PREROLL
Thibault Saunier [Wed, 14 Jun 2017 21:04:18 +0000 (17:04 -0400)]
urisourcebin: Call do_async_done when source state change returns NO_PREROLL

Otherwise for RTSP streams for example, the pipeline will never go to
PLAYING as it will be missing an ASYNC_DONE message.

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

7 years agorawvideoparse: Fix missing VideoMeta
Nicolas Dufresne [Mon, 12 Jun 2017 19:38:53 +0000 (15:38 -0400)]
rawvideoparse: Fix missing VideoMeta

The base class is trying to align the processed data, but it endup
removing the GstVideoMeta. That caused wrong result. Instead, just copy
from the process function with the appropriate alignment.

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

7 years agourisourcebin: Use downloadbuffer element
Sebastian Dröge [Mon, 12 Jun 2017 07:24:43 +0000 (10:24 +0300)]
urisourcebin: Use downloadbuffer element

And only set low-percent/high-percent if not using downloadbuffer, just
like in old uridecodebin. using the watermark based buffering causes
playback to hang never finish buffering with downloadbuffer.

7 years agoencodebin: Don't try rate adjustment before the first buffer
Arun Raghavan [Thu, 8 Jun 2017 07:05:23 +0000 (12:35 +0530)]
encodebin: Don't try rate adjustment before the first buffer

With both audiorate and videorate, it seems more sensible to apply rate
adjustments after the first buffer appears. For example, with v4l2src,
there is often a small delay before the first video buffer turns up, and
this can cause a stuttery start because of videorate trying to ensure a
perfect stream.

7 years agoencodebin: Don't set audiorate property before NULL check
Arun Raghavan [Thu, 8 Jun 2017 07:04:24 +0000 (12:34 +0530)]
encodebin: Don't set audiorate property before NULL check

7 years agomeson: Do not use path separator in test names
Thibault Saunier [Wed, 7 Jun 2017 15:41:05 +0000 (11:41 -0400)]
meson: Do not use path separator in test names

Avoiding warnings like:

  "WARNING: Target "elements/audioamplify" has a path separator in its name."

7 years agonavigation: Add some validation while sending key/mouse events
Arun Raghavan [Tue, 6 Jun 2017 05:38:00 +0000 (11:08 +0530)]
navigation: Add some validation while sending key/mouse events

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

7 years agonavigation: Add introspection annotations for some output parameters
Scott D Phillips [Thu, 1 Jun 2017 20:01:03 +0000 (13:01 -0700)]
navigation: Add introspection annotations for some output parameters

The missing annotations prevented proper usage from introspected
bindings like python.

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

7 years agomeson: use dep.get_pkgconfig_variable()
Tim-Philipp Müller [Mon, 5 Jun 2017 22:57:48 +0000 (23:57 +0100)]
meson: use dep.get_pkgconfig_variable()

instead of calling pkg-config ourselves.

7 years agoaudioconvert: resize output buffer to correct size
Wim Taymans [Fri, 2 Jun 2017 07:41:59 +0000 (09:41 +0200)]
audioconvert: resize output buffer to correct size

If we are using a downstream bufferpool we need to set the size of the
buffer to our output size.

7 years agovideo: update orc generated files
Scott D Phillips [Thu, 1 Jun 2017 20:28:42 +0000 (13:28 -0700)]
video: update orc generated files

Includes updates from:

  103d265 Fix RGBA and ABGR pack/unpack on big endian cpu

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

7 years agoFix RGBA and ABGR pack/unpack on big endian cpu
Wim Taymans [Thu, 1 Jun 2017 15:45:41 +0000 (17:45 +0200)]
Fix RGBA and ABGR pack/unpack on big endian cpu

The pack and unpack functions for RGBA and ABGR only work for little
endian cpus. Add variants for big endian as well.

7 years agoRevert "update def files"
Wim Taymans [Thu, 1 Jun 2017 15:02:24 +0000 (17:02 +0200)]
Revert "update def files"

This reverts commit 2e6dba811437e31af7e6071efe03b6e3751b2289.

7 years agoupdate def files
Wim Taymans [Thu, 1 Jun 2017 14:40:40 +0000 (16:40 +0200)]
update def files

7 years agoRevert "decodebin2: Set a time limit on "upstream" multiqueues"
Sebastian Dröge [Wed, 31 May 2017 09:30:40 +0000 (12:30 +0300)]
Revert "decodebin2: Set a time limit on "upstream" multiqueues"

This reverts commit 07dc9ba0712c26be86f031fb6f77bee177cbb828. It causes
timeouts in validate because queues run full before prerolling.

7 years agodecodebin2: Set a time limit on "upstream" multiqueues
Edward Hervey [Tue, 17 Jan 2017 12:52:20 +0000 (13:52 +0100)]
decodebin2: Set a time limit on "upstream" multiqueues

Those multiqueue are the ones dealing with adaptive demuxers. They should
have a time limit set so that they don't end up buffering too much data.

They would previously be set with no limits at all, which would cause them
to grow indefinitely until downstream blocks.

7 years agogst-discoverer: use state changes instead of ASYNC_DONE.
Mathieu Duponchelle [Tue, 30 May 2017 22:15:46 +0000 (00:15 +0200)]
gst-discoverer: use state changes instead of ASYNC_DONE.

And monitor no_more_pads.

With live sources such as rtsp, uridecodebin only creates its
child decodebins between PAUSED and PLAYING.

This means that the ASYNC_DONE it posts when getting NO_PREROLL
in its change_state method gets immediately propagated by the
GstBin parent class, as opposed to a situation where a
decodebin has been added to it already, and has posted ASYNC_START.

The proposed solution, instead of simply waiting for ASYNC_DONE,
and finishing prematurely in that case, waits for three conditions
to be true:

* the uridecodebin needs to have emitted no_more_pads
* its current state must be PAUSED if not live, PLAYING otherwise
* There must be no "pending subtitle pads", ie pads where we haven't
  received tags yet.

All these conditions are checked in the message handler, as we
post custom messages on it when we get subtitle tags or no_more_pads.

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

7 years agooggdemux: fix artifacts at chain boundaries
Vincent Penquerc'h [Mon, 29 May 2017 12:44:01 +0000 (13:44 +0100)]
oggdemux: fix artifacts at chain boundaries

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

7 years agopango: Handle failure to multiply fractions
Edward Hervey [Fri, 26 May 2017 16:02:12 +0000 (18:02 +0200)]
pango: Handle failure to multiply fractions

And set PAR back to the default value of 1:1

CID #1409851

7 years agooggdemux: fix clipping more samples than exist in the first packet
Vincent Penquerc'h [Fri, 5 May 2017 11:48:41 +0000 (12:48 +0100)]
oggdemux: fix clipping more samples than exist in the first packet

This can happen in Opus (and maybe other codecs ?), and would cause
failure to play.

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

7 years agovideotestsrc: Protect videoinfo with object lock
Olivier Crête [Tue, 23 May 2017 06:43:26 +0000 (08:43 +0200)]
videotestsrc: Protect videoinfo with object lock

The videoinfo is set in the streaming thread, but can be read by any
thread from the various queries, so protect it with the object lock.

7 years agopbutils: fix stand-alone version header include
Tim-Philipp Müller [Sun, 21 May 2017 16:42:55 +0000 (17:42 +0100)]
pbutils: fix stand-alone version header include

Include gst headers for GST_EXPORT.

7 years agomeson: don't need config.h.meson any longer
Tim-Philipp Müller [Sun, 21 May 2017 13:37:05 +0000 (14:37 +0100)]
meson: don't need config.h.meson any longer

7 years agotextoverlay: optionally scale text to ensure proper display text aspect ratio
Mark Nauwelaerts [Sun, 21 May 2017 10:34:08 +0000 (12:34 +0200)]
textoverlay: optionally scale text to ensure proper display text aspect ratio

... by prescaling with an inverse aspect scaling as applied by video scaling

7 years agomeson: only check for c++ compiler once
Tim-Philipp Müller [Sun, 21 May 2017 09:49:20 +0000 (10:49 +0100)]
meson: only check for c++ compiler once

7 years agomeson: make C++ compiler optional
Tim-Philipp Müller [Sun, 21 May 2017 08:37:14 +0000 (09:37 +0100)]
meson: make C++ compiler optional

It's only used to check our headers are C++ clean and
for the Qt example.