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

7 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

7 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

7 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

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

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

7 years agovideodecoder: Don't queue frames in TRICKMODE_KEY_UNITS
Edward Hervey [Tue, 10 Jan 2017 14:59:55 +0000 (15:59 +0100)]
videodecoder: Don't queue frames in TRICKMODE_KEY_UNITS

When the input is TRICKMODE_KEY_UNITS, we expect to only receive keyframes
which we want to decode/push immediately. Therefore don't queue them.

If upstream didn't send just keyframes (which is the ideal situation), two
different things can happen:
1) Either the subclass checks the segment flags and properly configures
 the decoder implementation to only decode/output keyframes,
2) Or the subclass really decodes and outputs everything, in which case
 the reverse frames will end up arriving "late" downstream (and will
 be dropped). If upstream did properly send GOP in reverse order, we
 still end up just showing keyframes (but at the overhead of decoding
 everything).

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

7 years agovideorate: stop copying buffers in drop-only mode
Guillaume Desmottes [Tue, 4 Apr 2017 11:19:02 +0000 (13:19 +0200)]
videorate: stop copying buffers in drop-only mode

gst_video_rate_flush_prev() ensures that the pushed buffer is writable
by calling gst_buffer_make_writable() on videorate->prevbuf.

In drop-only mode we always push buffers directly when they are received
from GstBaseTransform (gst_video_rate_transform_ip()) and do not keep them
around. GstBaseTransform already ensures that those buffers are
writable so there is no need to do it twice.

This change saves us from copying buffers in drop-only mode as we no longer
calls gst_buffer_make_writable() with a buffer having a refcount of 2
(one ref owned by GstBaseTransform and one in videorate->prevbuf).

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

7 years agovideorate: factor out gst_video_rate_push_buffer()
Guillaume Desmottes [Tue, 4 Apr 2017 11:16:42 +0000 (13:16 +0200)]
videorate: factor out gst_video_rate_push_buffer()

No semantic change, just factor out this function from
gst_video_rate_flush_prev().

I'm about to use it to change the 'drop-only' code path.

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

7 years agomeson: add options to set package name and origin
Tim-Philipp Müller [Sat, 20 May 2017 13:46:51 +0000 (14:46 +0100)]
meson: add options to set package name and origin

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

7 years agoFix unit test for videodecoder now outputting mono multiview by default
Jan Schmidt [Fri, 19 May 2017 16:38:45 +0000 (18:38 +0200)]
Fix unit test for videodecoder now outputting mono multiview by default

7 years agovideodecoder: Output mono multiview caps if none specified
Jan Schmidt [Fri, 24 Mar 2017 00:43:06 +0000 (11:43 +1100)]
videodecoder: Output mono multiview caps if none specified

Always put multiview-caps onto the output caps, assuming
mono if we've got no other information. It's still easy for
downstream elements to override using a capssetter or event
probe if desired.

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

7 years agodiscoverer: Clean up more fields to decide if parent/child streams are equivalent
Sebastian Dröge [Thu, 18 May 2017 10:24:19 +0000 (13:24 +0300)]
discoverer: Clean up more fields to decide if parent/child streams are equivalent

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

7 years agoRevert "discoverer: Consider parent/child streams the same if they have caps with...
Sebastian Dröge [Thu, 18 May 2017 10:13:58 +0000 (13:13 +0300)]
Revert "discoverer: Consider parent/child streams the same if they have caps with the same name"

This reverts commit 478b7a8eb49d285c3ff0b73e1fe2929b9418be91.

video/mpeg,systemstream=true / false distinguishes between container and
elementary stream.

7 years agodiscoverer: Consider parent/child streams the same if they have caps with the same...
Sebastian Dröge [Thu, 18 May 2017 08:21:55 +0000 (11:21 +0300)]
discoverer: Consider parent/child streams the same if they have caps with the same name

Child streams could have more accurate width/height or various other
information added. If they have the same name, they are likely to be the
same streams.

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

7 years agourisourcebin: Unref query with gst_query_unref()
Sebastian Dröge [Thu, 18 May 2017 08:02:51 +0000 (11:02 +0300)]
urisourcebin: Unref query with gst_query_unref()

Not gst_object_unref().

7 years agoalsa: Add mapping for PCM F32/F64 formats
vijay [Wed, 17 May 2017 09:14:59 +0000 (14:44 +0530)]
alsa: Add mapping for PCM F32/F64 formats

Fix enables float pcm formats for both the alsasrc and alsasink

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

7 years agogst: Clear floating flag in constructor of all GstObject subclasses that are not...
Sebastian Dröge [Mon, 15 May 2017 16:47:22 +0000 (19:47 +0300)]
gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent

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

7 years agoaudioclock: Sink the reference in the constructor
Sebastian Dröge [Mon, 15 May 2017 11:20:32 +0000 (14:20 +0300)]
audioclock: Sink the reference in the constructor

This is now needed as GstClock does not do that internally anymore,
because that broke bindings.

And mark the function correctly as (transfer full), which it already was
before.

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

7 years agoallocators: Annotate constructors with (transfer floating)
Sebastian Dröge [Mon, 15 May 2017 11:19:15 +0000 (14:19 +0300)]
allocators: Annotate constructors with (transfer floating)

GstAllocator is a GstObject and as such uses floating references.

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

7 years agoalsasink: Accept MPEG 1 layer 3 version 2.5
Nicolas Dufresne [Sat, 29 Apr 2017 03:03:22 +0000 (23:03 -0400)]
alsasink: Accept MPEG 1 layer 3 version 2.5

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

7 years agoaudioringbuffer: Accept MPEG 1 layer 3 version 2.5
Nicolas Dufresne [Sat, 29 Apr 2017 03:02:50 +0000 (23:02 -0400)]
audioringbuffer: Accept MPEG 1 layer 3 version 2.5

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

7 years agoRemove plugin specific static build option
Nicolas Dufresne [Tue, 16 May 2017 17:42:07 +0000 (13:42 -0400)]
Remove plugin specific static build option

Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.

7 years agovideo: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 16 May 2017 00:09:38 +0000 (01:09 +0100)]
video: mark symbols explicitly for export with GST_EXPORT

7 years agotag: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 16 May 2017 00:03:45 +0000 (01:03 +0100)]
tag: mark symbols explicitly for export with GST_EXPORT

7 years agosdp: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 15 May 2017 23:25:51 +0000 (00:25 +0100)]
sdp: mark symbols explicitly for export with GST_EXPORT

7 years agortsp: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 16 May 2017 00:02:18 +0000 (01:02 +0100)]
rtsp: mark symbols explicitly for export with GST_EXPORT

7 years agortp: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 16 May 2017 00:00:09 +0000 (01:00 +0100)]
rtp: mark symbols explicitly for export with GST_EXPORT

7 years agoriff: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 15 May 2017 23:57:36 +0000 (00:57 +0100)]
riff: mark symbols explicitly for export with GST_EXPORT

7 years agopbutils: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 15 May 2017 23:55:25 +0000 (00:55 +0100)]
pbutils: mark symbols explicitly for export with GST_EXPORT