platform/upstream/gstreamer.git
7 years agodecodebin3: fix tag list leak
Guillaume Desmottes [Mon, 1 Aug 2016 10:37:43 +0000 (12:37 +0200)]
decodebin3: fix tag list leak

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

7 years agodecodebin3: consume select-streams event
Guillaume Desmottes [Mon, 1 Aug 2016 10:28:20 +0000 (12:28 +0200)]
decodebin3: consume select-streams event

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

7 years agodecodebin_next: fix caps and tags leaks
Guillaume Desmottes [Thu, 28 Jul 2016 13:44:27 +0000 (15:44 +0200)]
decodebin_next: fix caps and tags leaks

The getters are (transfer full).

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

7 years agodecodebin3: fix collection ref handling
Guillaume Desmottes [Thu, 28 Jul 2016 12:46:34 +0000 (14:46 +0200)]
decodebin3: fix collection ref handling

gst_stream_collection_add_stream() consumes the collection reference
passed to it but gst_stream_collection_get_stream() is (transfer none).

Fix this pipeline:

playbin3
uri=http://127.0.0.1:8079/defaults/exMPD_BIP_TC1/exMPD_BIP_TC1.mpd

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

7 years agodecodebin3: handle full removal of streams
Guillaume Desmottes [Fri, 29 Jul 2016 09:38:44 +0000 (11:38 +0200)]
decodebin3: handle full removal of streams

Fix the
validate.file.playback.disable_subtitle_track_while_paused.* validate
scenarios when using playbin3.

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

7 years agoriff: Remove sample rate and channel count boundaries in caps
Carlos Rafael Giani [Tue, 2 Aug 2016 10:03:18 +0000 (12:03 +0200)]
riff: Remove sample rate and channel count boundaries in caps

WAV is too generic to impose more-or-less arbitrary boundaries on the
sample rate and channel count caps. For example, there are 384 kHz WAV
files. Another example: it is in theory possible that somebody puts DSD
data into a WAV file, which will then have a sample rate of ~2.8 MHz.

For this reason, get rid of the rate and channel caps unless they are
fixed values. Downstream anyway usually knows the limitations better.

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

7 years agopbutils: Add more h264 scalable profiles
Sreerenj Balachandran [Fri, 29 Jul 2016 12:51:35 +0000 (15:51 +0300)]
pbutils: Add more h264 scalable profiles

Adding Scalable Constrained High (G.10.1.2.1) and
Scalable High Intra(G.10.1.3) profiles to the profile list

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

7 years agortpbuffer: Add some const qualifiers
Sebastian Dröge [Tue, 26 Jul 2016 14:46:02 +0000 (17:46 +0300)]
rtpbuffer: Add some const qualifiers

gst_rtp_buffer_add_extension_onebyte_header() and
gst_rtp_buffer_add_extension_twobytes_header() can have a const argument for
the actual extension data.

7 years agoparsebin: maintain original order when creating fallback stream collection
Tim-Philipp Müller [Sat, 26 Dec 2015 13:19:01 +0000 (13:19 +0000)]
parsebin: maintain original order when creating fallback stream collection

7 years agodecodebin: Send stream-group-done to unblock downstream
Jan Schmidt [Sun, 20 Mar 2016 03:37:03 +0000 (14:37 +1100)]
decodebin: Send stream-group-done to unblock downstream

When processing EOS for a pad, send a stream-group-done
for the pad in case downstream is waiting for more
data on this stream before it can process related
streams from the group.

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

7 years agoplaybin3: fix collection leak
Guillaume Desmottes [Fri, 22 Jul 2016 12:40:25 +0000 (14:40 +0200)]
playbin3: fix collection leak

The collection referenced owned by playbin3 was not released when it was
destroyed.

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

7 years agodecodebin3: fix collection refcounting
Guillaume Desmottes [Fri, 22 Jul 2016 12:35:17 +0000 (14:35 +0200)]
decodebin3: fix collection refcounting

My collection leak fix 83f30627cd9460157935e7e9603c60a15555967e
introduced a crash in this scenario: audiotestsrc ! decodebin3 ! fakesink

The reference handling of collection in decodebin3 wasn't very clear and
my attempt to fix the leak introduced a regression where we went one
reference short in some other scenarios.

Fixing this by:
- Giving a strong reference to DecodebinInput making things clearer
- Fixing get_merged_collection() which was sometimes returning an
  existing reference and sometimes a new one.

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

7 years agoAdd more files to .gitignore
Tim-Philipp Müller [Sat, 23 Jul 2016 13:42:30 +0000 (14:42 +0100)]
Add more files to .gitignore

7 years agodocs: urisourcebin: fix typo
Tim-Philipp Müller [Fri, 22 Jul 2016 13:42:31 +0000 (14:42 +0100)]
docs: urisourcebin: fix typo

7 years agoplayback: Flesh out docs a bit for new elements
Jan Schmidt [Fri, 22 Jul 2016 13:21:36 +0000 (23:21 +1000)]
playback: Flesh out docs a bit for new elements

Add some more text to the docs for urisourcebin,
parsebin, decodebin3 and playbin3, including a warning
that they are unstable API for now

7 years agodocs: add playbin3, decodebin3, parsebin, urisourcebin to docs
Tim-Philipp Müller [Fri, 22 Jul 2016 11:52:12 +0000 (12:52 +0100)]
docs: add playbin3, decodebin3, parsebin, urisourcebin to docs

Docs still need some fleshing out though.

7 years agoRevert "vorbisenc: push an updated segment stop time when we know it"
Arun Raghavan [Wed, 13 Jul 2016 09:29:52 +0000 (18:29 +0900)]
Revert "vorbisenc: push an updated segment stop time when we know it"

This reverts commit a16cd5d2a5cbdf084163ead68b59d537d7db99f7.

Setting the stop time on the segment breaks reconfiguration, as the
encoder signals an EOS, but we reconfigure it an continue to produce
buffers.

This information  should not be required via the segment downstream
since we already have the sample count being used to generate buffer
durations.

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

7 years agooggdemux: fix unknown duration playing Ogg over HTTP
Vincent Penquerc'h [Wed, 20 Jul 2016 10:47:48 +0000 (11:47 +0100)]
oggdemux: fix unknown duration playing Ogg over HTTP

If the duration is not known from the chain, it might be known
by the startup seek.

This fixes failure to seek.

Merged with a patch from Tim-Philipp Müller <tim@centricular.com>

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

7 years agoaudioclock: use GST_STIME_FORMAT for the correct argument
Michael Olbrich [Wed, 20 Jul 2016 10:17:57 +0000 (12:17 +0200)]
audioclock: use GST_STIME_FORMAT for the correct argument

GST_STIME_ARGS is used for time_offset not for last_time.
This fixes the format string accordingly.

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

8 years agoaudioresample: after a reset, recalculate the ouput size
Wim Taymans [Tue, 19 Jul 2016 16:20:57 +0000 (18:20 +0200)]
audioresample: after a reset, recalculate the ouput size

After we reset the resampler, there is no history anymore in the resampler
and the previously calculated output size is no longer valid.
Recalculate the new output size after a reset to make sure we don't try
to convert too much.

8 years agosubparse: fix some leaks
Tim-Philipp Müller [Tue, 19 Jul 2016 12:26:06 +0000 (13:26 +0100)]
subparse: fix some leaks

Fixes check-valgrind for subparse test.

8 years agotests: appsink: add minimal test for new pull with timeout functions
Tim-Philipp Müller [Mon, 18 Jul 2016 16:26:26 +0000 (17:26 +0100)]
tests: appsink: add minimal test for new pull with timeout functions

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

8 years agoappsink: add _pull_sample/preroll() variants with timeout
Joan Pau Beltran [Fri, 15 Jul 2016 11:20:29 +0000 (13:20 +0200)]
appsink: add _pull_sample/preroll() variants with timeout

The _pull_sample() and _pull_preroll() functions block
until a sample is available, EOS happens or the pipeline
is shut down (returning NULL in the last two cases).

This adds _try_pull_sample() and _try_pull_preroll()
functions with a timeout argument to specify the maximum
amount of time to wait for a new sample.

To avoid code duplication, wait forever if the timeout is
GST_CLOCK_TIME_NONE and use that to implement
_pull_sample/_pull_preroll with the original behavior.

Add also corresponding action signals "try-pull-sample"
and "try-pull-preroll".

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

8 years agodecodebin3: actually check result of accept caps query
Guillaume Desmottes [Wed, 13 Jul 2016 12:17:25 +0000 (14:17 +0200)]
decodebin3: actually check result of accept caps query

We were just checking if the query was handled, not its result.

Also fix a leak as gst_pad_query() was not consuming the query.

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

8 years agoxvimagesink: only error out if the allocated memory is too small
Tim-Philipp Müller [Mon, 18 Jul 2016 13:20:11 +0000 (14:20 +0100)]
xvimagesink: only error out if the allocated memory is too small

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

8 years agoxvimageallocator: const correctness in gst_xvimage_allocator_alloc().
Duncan Palmer [Mon, 18 Jul 2016 09:59:23 +0000 (19:59 +1000)]
xvimageallocator: const correctness in gst_xvimage_allocator_alloc().

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

8 years agoxvimagesink: error out on buffer size sanity check failure.
Duncan Palmer [Thu, 7 Jul 2016 12:27:15 +0000 (22:27 +1000)]
xvimagesink: error out on buffer size sanity check failure.

If sanity checks on the buffer size allocated by XvShmCreateImage() fail,
call on g_set_error(), rather than just logging a warning, as this
failure is fatal.

Add a sanity check on buffer size when the video format is RGB. This adds to
existing checks on various YUV pixel formats.

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

8 years agoplaybin3: fix stream leak
Guillaume Desmottes [Thu, 14 Jul 2016 08:33:38 +0000 (10:33 +0200)]
playbin3: fix stream leak

The stream returned by gst_message_streams_selected_get_stream() is
reffed.

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

8 years agodecodebin3: fix collection leak
Guillaume Desmottes [Wed, 13 Jul 2016 14:16:21 +0000 (16:16 +0200)]
decodebin3: fix collection leak

The collection owned by GstDecodebin3 has to be unreffed when disposing.

gst_event_new_stream_collection() doesn't consume the collection passed
to it so no need to give it an extra ref.

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

8 years agodecodebin3: fix stream leaks
Guillaume Desmottes [Thu, 14 Jul 2016 08:34:30 +0000 (10:34 +0200)]
decodebin3: fix stream leaks

MultiQueueSlot owns a ref on the active stream so it should release it
when being freed.

DecodebinInputStream owns ref on the active and pending stream so they
should be dropped when being freed.

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

8 years agodecodebin3: fix event leaks
Guillaume Desmottes [Thu, 14 Jul 2016 12:24:23 +0000 (14:24 +0200)]
decodebin3: fix event leaks

Returning GST_PAD_PROBE_HANDLED means we are taking care of unreffing
the probe info.

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

8 years agodecodebin3: fix caps leaks
Guillaume Desmottes [Thu, 14 Jul 2016 14:29:39 +0000 (16:29 +0200)]
decodebin3: fix caps leaks

gst_stream_get_caps() returns a reffed caps.

The caps passed to gst_query_set_caps_result() are not transfered.

The caps in gst_parse_pad_stream_start_event() was either acquired
using gst_pad_get_current_caps() which returns a new ref or
explicitly reffed.

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

8 years agortp: rtpbasedepayload: simplify code
Tim-Philipp Müller [Fri, 15 Jul 2016 18:48:02 +0000 (19:48 +0100)]
rtp: rtpbasedepayload: simplify code

Remove unnecessary helper struct for callbacks. The bclass
member of the helper struct was not used, so we can just
remove it and the GET_CLASS() call and simplify the whole
affair by passing the depayloader directly to the callback.

8 years agoplaybin3: fix leaks of collection returned by message parse API
Guillaume Desmottes [Wed, 13 Jul 2016 14:02:25 +0000 (16:02 +0200)]
playbin3: fix leaks of collection returned by message parse API

gst_message_parse_stream_collection() and
gst_message_parse_streams_selected() actually return a reffed
GstStreamCollection.

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

8 years agogst-play: Allow disabling audio/video/subtitle tracks
Jan Schmidt [Fri, 15 Jul 2016 12:47:02 +0000 (22:47 +1000)]
gst-play: Allow disabling audio/video/subtitle tracks

When cycling through tracks, add 'disable' to the set
of states.

8 years agoalsasink: Remove unused hwparam/swparam pointers
Jan Schmidt [Fri, 24 Jun 2016 02:25:30 +0000 (12:25 +1000)]
alsasink: Remove unused hwparam/swparam pointers

The ALSA params structures aren't kept. The pointers
aren't used anywhere, so remove them from the struct.

8 years agotools: fix device leaks in gst-device-monitor
Guillaume Desmottes [Wed, 13 Jul 2016 13:45:33 +0000 (15:45 +0200)]
tools: fix device leaks in gst-device-monitor

gst_message_parse_device_{added,removed} is actually returning a new ref
on the device.

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

8 years agovideoscale: fix bus leak in test
Guillaume Desmottes [Tue, 12 Jul 2016 10:03:53 +0000 (12:03 +0200)]
videoscale: fix bus leak in test

gst_bus_add_signal_watch() takes a ref on the bus which should be
released using gst_bus_remove_signal_watch().

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

8 years agovideoorientation: Use G_DEFINE_INTERFACE instead of a manually written get_type()
Xabier Rodriguez Calvar [Mon, 11 Jul 2016 17:17:41 +0000 (19:17 +0200)]
videoorientation: Use G_DEFINE_INTERFACE instead of a manually written get_type()

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

8 years agovideo: Fix some compiler warnings for out-of-range enum values
Sebastian Dröge [Mon, 11 Jul 2016 21:13:32 +0000 (00:13 +0300)]
video: Fix some compiler warnings for out-of-range enum values

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

8 years agoAutomatic update of common submodule
Stefan Sauer [Mon, 11 Jul 2016 19:13:37 +0000 (21:13 +0200)]
Automatic update of common submodule

From f363b32 to f49c55e

8 years agoappsrc: Remove trailing whitespace
Seungha Yang [Sun, 10 Jul 2016 01:28:44 +0000 (10:28 +0900)]
appsrc: Remove trailing whitespace

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

8 years agoencoding-profile: Remove some more fields from the caps when creating from discoverer...
Sebastian Dröge [Fri, 8 Jul 2016 13:43:05 +0000 (16:43 +0300)]
encoding-profile: Remove some more fields from the caps when creating from discoverer info

parsed, framed, stream-format and alignment are only relevant for parsers and
should not matter here. We still want to be able to use an encoder that can
only output byte-stream if the input was avc.

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

8 years agomissing-plugins: Remove some other fields when cleaning up caps
Sebastian Dröge [Fri, 8 Jul 2016 12:45:25 +0000 (15:45 +0300)]
missing-plugins: Remove some other fields when cleaning up caps

Caps are cleaned up for missing plugins, and for creating encoding profiles
and caps descriptions.

Fields like streamheader, parsed, framed, stream-format and alignment are not
relevant here. The last ones all because a parser will take care of them.

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

8 years agopbutils: Mark private functions as G_GNUC_INTERNAL
Sebastian Dröge [Fri, 8 Jul 2016 12:44:26 +0000 (15:44 +0300)]
pbutils: Mark private functions as G_GNUC_INTERNAL

8 years agosubparse: don't reset allowed tags
Víctor Manuel Jáquez Leal [Thu, 7 Jul 2016 15:37:51 +0000 (17:37 +0200)]
subparse: don't reset allowed tags

When a discont buffer is processed, the state is re-initialized, which
nullifies the allowed_tags.

The problem is when a subrip string with tags is processed and allowed_tags is
NULL. The function subrip_unescape_formatting() calls g_strjoinv with a
str_array as NULL, leading to a GLib-CRITICAL.

This patch removes the allowed_tags resetting, in parser_state_init(), but
move it into gst_sub_parse_format_autodetect().

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

8 years agortspconnection: Fix potential deadlock caused by blocking read forever
Sergio Torres Soldado [Mon, 4 Jul 2016 16:19:08 +0000 (17:19 +0100)]
rtspconnection: Fix potential deadlock caused by blocking read forever

Reset the connection "may_cancel" property to avoid a potential deadlock
if there is no data to read and the socket stays blocked forever.

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

8 years agovideo-converter: fix compilation on big-endian
Wim Taymans [Thu, 7 Jul 2016 15:29:34 +0000 (17:29 +0200)]
video-converter: fix compilation on big-endian

8 years agovideodecoder: More trickmode fix
Edward Hervey [Thu, 7 Jul 2016 15:10:17 +0000 (17:10 +0200)]
videodecoder: More trickmode fix

We need to take into account the input segment flags to know whether
we should drain the decoder after a new keyframe in trick mode.

Otherwise we would have to wait for the next frame to be outputted (and
the segment to be activated) which ... well ... kind of beats the whole
point of this draining :)

8 years agopo: update POTFILES
Piotr Drąg [Wed, 6 Jul 2016 19:13:19 +0000 (21:13 +0200)]
po: update POTFILES

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

8 years agoaudio: Ship audio-resampler-neon.h
Sebastian Dröge [Wed, 6 Jul 2016 21:27:00 +0000 (00:27 +0300)]
audio: Ship audio-resampler-neon.h

8 years agotests: correctly print guintptr on mac
Thijs Vermeir [Wed, 6 Jul 2016 14:14:32 +0000 (16:14 +0200)]
tests: correctly print guintptr on mac

8 years agoBack to development
Sebastian Dröge [Wed, 6 Jul 2016 10:51:00 +0000 (13:51 +0300)]
Back to development

8 years agoRelease 1.9.1
Sebastian Dröge [Wed, 6 Jul 2016 10:06:06 +0000 (13:06 +0300)]
Release 1.9.1

8 years agoUpdate .po files
Sebastian Dröge [Wed, 6 Jul 2016 08:42:29 +0000 (11:42 +0300)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Wed, 6 Jul 2016 07:18:00 +0000 (10:18 +0300)]
po: Update translations

8 years agovideodecoder: Take stream lock one time only on drain
Philippe Normand [Thu, 30 Jun 2016 14:36:27 +0000 (16:36 +0200)]
videodecoder: Take stream lock one time only on drain

When the drain is triggered from the chain function the lock is already
taken so there is no need to take it one more time.

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

8 years agovideodecoder: fix criticals fixating a non existent field
Sebastian Dröge [Mon, 4 Jul 2016 09:16:55 +0000 (11:16 +0200)]
videodecoder: fix criticals fixating a non existent field

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

8 years agoaudiodecoder: Protect samples_in/bytes_out and audio info with object lock
Sebastian Dröge [Mon, 4 Jul 2016 09:12:25 +0000 (11:12 +0200)]
audiodecoder: Protect samples_in/bytes_out and audio info with object lock

It might cause invalid calculations during the CONVERT query otherwise.

8 years agoaudioencoder: Protect samples_in/bytes_out and audio info with object lock
Sebastian Dröge [Mon, 4 Jul 2016 09:07:54 +0000 (11:07 +0200)]
audioencoder: Protect samples_in/bytes_out and audio info with object lock

It might cause invalid calculations during the CONVERT query otherwise.

8 years agoaudioencoder/decoder: Move encoded audio conversion function to a common place
Sebastian Dröge [Mon, 4 Jul 2016 09:00:51 +0000 (11:00 +0200)]
audioencoder/decoder: Move encoded audio conversion function to a common place

No need to duplicate this non-trivial function.

8 years agoaudiodecoder: fix criticals fixating a non existent field
Vincent Penquerc'h [Mon, 4 Jul 2016 08:15:03 +0000 (09:15 +0100)]
audiodecoder: fix criticals fixating a non existent field

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

8 years agovideodecoder: Use the object lock to protect bytes/time tracking
Sebastian Dröge [Mon, 4 Jul 2016 08:55:07 +0000 (10:55 +0200)]
videodecoder: Use the object lock to protect bytes/time tracking

And especially don't use the stream lock for that, as otherwise non-serialized
queries (CONVERT) will cause the stream lock to be taken and easily causes the
application to deadlock.

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

8 years agovideoencoder: Use the object lock to protect bytes/time tracking
Sebastian Dröge [Mon, 4 Jul 2016 08:52:24 +0000 (10:52 +0200)]
videoencoder: Use the object lock to protect bytes/time tracking

8 years agovideoencoder/decoder: Move conversion utility functions to a common header and use...
Sebastian Dröge [Mon, 4 Jul 2016 08:47:36 +0000 (10:47 +0200)]
videoencoder/decoder: Move conversion utility functions to a common header and use consistently in encoder/decoder

8 years agoappsrc: If do-timestamp=TRUE, capture the time when the buffer was pushed to the...
Sebastian Dröge [Wed, 16 Mar 2016 22:19:18 +0000 (00:19 +0200)]
appsrc: If do-timestamp=TRUE, capture the time when the buffer was pushed to the source

... instead of the time when it was pushed further downstream.

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

8 years agobasertpdepayload: create valid segment when given non-time segment
Zaheer Abbas Merali [Fri, 29 Apr 2016 07:59:42 +0000 (00:59 -0700)]
basertpdepayload: create valid segment when given non-time segment

This will become an error in 1.10.

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

8 years agotagdemux: fix handling of very short files in push mode
Tim-Philipp Müller [Thu, 30 Jun 2016 17:53:07 +0000 (18:53 +0100)]
tagdemux: fix handling of very short files in push mode

By default we'll wait for a certain amount of data before
attempting typefinding. However, if the stream is fairly
short, we might get EOS before we ever attempted any
typefinding, so at this point we should force typefinding
and output any pending data if we manage to detect the
type.

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

8 years agotagdemux: fix erroring out if we reach EOS without detecting type
Tim-Philipp Müller [Thu, 30 Jun 2016 16:30:34 +0000 (17:30 +0100)]
tagdemux: fix erroring out if we reach EOS without detecting type

In 0.10 the source pad was a dynamic pad that was only added once
the type had been detected, but in 1.x it's an always source pad,
so checking whether it's still NULL won't work to detect if the
type has been detected.

Makes tagdemux error out when we get EOS but haven't managed to
identify the format of the data after the tag.

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

8 years agoparsebin: Fix authors and description
Edward Hervey [Thu, 30 Jun 2016 15:26:56 +0000 (17:26 +0200)]
parsebin: Fix authors and description

8 years agoplayback: Remove uridecodebin3
Edward Hervey [Thu, 30 Jun 2016 15:26:14 +0000 (17:26 +0200)]
playback: Remove uridecodebin3

This was committed by mistake. The solution forward is to use the
appropriate combination of urisourcebin and decodebin3

8 years agoplayback: New elements
Edward Hervey [Wed, 29 Jun 2016 16:14:51 +0000 (18:14 +0200)]
playback: New elements

With contributions from Jan Schmidt <jan@centricular.com>

* decodebin3 and playbin3 have the same purpose as the decodebin and
playbin elements, except make usage of more 1.x features and the new
GstStream API. This allows them to be more memory/cpu efficient.

* parsebin is a new element that demuxers/depayloads/parses an incoming
stream and exposes elementary streams. It is used by decodebin3.
It also automatically creates GstStream and GstStreamCollection for
elements that don't natively create them and sends the corresponding
events and messages

* Any application using playbin can use playbin3 by setting the env
variable USE_PLAYBIN3=1 without reconfiguration/recompilation.

8 years agoaudioconvert: Handle fallback channel mask for mono correctly
Sebastian Dröge [Wed, 29 Jun 2016 16:14:51 +0000 (18:14 +0200)]
audioconvert: Handle fallback channel mask for mono correctly

It's 0 and no mask should be set for mono at all.

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

8 years agoplaysink: Don't send another step event to the audio-sink if we got step-done from...
Sebastian Dröge [Mon, 27 Jun 2016 17:53:37 +0000 (20:53 +0300)]
playsink: Don't send another step event to the audio-sink if we got step-done from there

Otherwise we would end up with a deadlock as the audio-sink emits step-done
from its streaming thread.

8 years agoplaysink: Force STEP events on the video-sink for GST_FORMAT_BUFFERS
Sebastian Dröge [Mon, 27 Jun 2016 17:49:38 +0000 (20:49 +0300)]
playsink: Force STEP events on the video-sink for GST_FORMAT_BUFFERS

It does not make much sense for audio sinks.

8 years agoconfigure: Need to add -DGST_STATIC_COMPILATION when building only statically
Nirbheek Chauhan [Thu, 23 Jun 2016 20:26:11 +0000 (01:56 +0530)]
configure: Need to add -DGST_STATIC_COMPILATION when building only statically

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

8 years agooggdemux: demote an expected error to debug
Vincent Penquerc'h [Thu, 23 Jun 2016 09:22:35 +0000 (10:22 +0100)]
oggdemux: demote an expected error to debug

Dropping a buffer because we have a seek pending is normal,
and will now happen when we trigger a seek while going through
the packets in a page. So this should not be an error.

8 years agovideo-converter: fix interlaced scaling some more
Wim Taymans [Wed, 22 Jun 2016 14:02:37 +0000 (16:02 +0200)]
video-converter: fix interlaced scaling some more

Fix problem with the line cache where it would forget the first line in
the cache in some cases.
Keep as much backlog as we have taps. This generally works better and we
could do even better by calculating the overlap in all taps.
Allocated enough lines for the line cache.
Use only half the number of taps for the interlaced lines because we
only have half the number of lines.
The pixel shift should be relative to the new output pixel size so scale
it.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=767921

8 years agoplugin-doc: Minor re-order
Nicolas Dufresne [Tue, 21 Jun 2016 18:53:36 +0000 (14:53 -0400)]
plugin-doc: Minor re-order

8 years agoAutomatic update of plugins doc files
Nicolas Dufresne [Tue, 21 Jun 2016 18:40:17 +0000 (14:40 -0400)]
Automatic update of plugins doc files

8 years agotests: discoverer: handle missing ogg/codec plugins gracefully
Tim-Philipp Müller [Tue, 21 Jun 2016 17:04:23 +0000 (18:04 +0100)]
tests: discoverer: handle missing ogg/codec plugins gracefully

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

8 years agoAutomatic update of common submodule
Nicolas Dufresne [Tue, 21 Jun 2016 15:45:49 +0000 (11:45 -0400)]
Automatic update of common submodule

From ac2f647 to f363b32

8 years agoopusdec: handle missing buffers with no duration
Vincent Penquerc'h [Mon, 20 Jun 2016 11:42:28 +0000 (12:42 +0100)]
opusdec: handle missing buffers with no duration

If buffer duration is missing, it is parsed from the packet data.
This is not foolproof, since Opus can change durations on the
fly.

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

8 years agotagdemux: preserve duration when skipping a tag at the beginning of a buffer
Michael Olbrich [Fri, 17 Jun 2016 13:11:20 +0000 (15:11 +0200)]
tagdemux: preserve duration when skipping a tag at the beginning of a buffer

gst_buffer_copy_region() does not copy the duration if it doesn't start
with the first byte. We just skip the tag here, so the duration is still
valid.

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

8 years agodiscoverer: Only allow serializing OK discoverer infos to GVariants
Sebastian Dröge [Tue, 21 Jun 2016 07:24:15 +0000 (10:24 +0300)]
discoverer: Only allow serializing OK discoverer infos to GVariants

They will be incomplete otherwise and we can't generate the full serialized
information, and instead will crash somewhere on the way.

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

8 years agooggdemux: fix audio glitches with low bitrate vorbis
Vincent Penquerc'h [Thu, 14 Apr 2016 13:02:27 +0000 (14:02 +0100)]
oggdemux: fix audio glitches with low bitrate vorbis

A low bitrate stream which can pack more than 2 seconds of audio
in a page would cause the stream's position to be updated not
often enough, and would trigger a spurious "jump" via a GAP
event. Instead, we update the stream position after calculating
the new overall segment position.

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

8 years agoopusdec: test for PLC timestamp when FEC is enabled.
Mikhail Fludkov [Thu, 16 Jun 2016 09:55:52 +0000 (10:55 +0100)]
opusdec: test for PLC timestamp when FEC is enabled.

8 years agoaudiodecoder: fix invalid timestamps when PLC and delay
Mikhail Fludkov [Tue, 5 Apr 2016 10:41:45 +0000 (12:41 +0200)]
audiodecoder: fix invalid timestamps when PLC and delay

Elements inherited from GstAudioDecoder, supporting PLC and introducing
delay produce invalid timestamps. Good example is opusdec with in-band FEC
enabled. After receiving GAP event it delays the audio concealment until
the next buffer arrives. The next buffer will have DISCONT flag set which
will make GstAudioDecoder to reset it's internal state, thus forgetting
the timestamp of GAP event. As a result the concealed audio will have the
timestamp of the next buffer (with DISCONT flag) but not the timestamp
from the event.

8 years agoexiftag: Increase serialized geo precision
Paulo Neves [Sat, 11 Jun 2016 15:11:30 +0000 (17:11 +0200)]
exiftag: Increase serialized geo precision

The serialization of double typed geographical
coordinates to DMS system supported by the exif
standards was previously truncated without need.

The previous code truncated the seconds part of
the coordinate to a fraction with denominator
equal to 1 causing a bug on the deserialization
when the test for the coordinate to be serialized
was more precise.

This patch applies a 10E6 multiplier to the numerator
equal to the denominator of the rational number.

Eg. Latitude = 89.5688643 Serialization

DMS Old code = 89/1 deg, 34/1 min, 7/1 sec
DMS New code = 89/1 deg, 34/1 min, 79114800UL/10000000UL

Deserialization

DMS Old code = 89.5686111111
DMS New code = 89.5688643

The new test tries to serialize a higher precision
coordinate.

The types of the coordinates are also guint32 instead
of gint like previously. guint32 is the type of the
fraction components in the exif.

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

8 years agoaudiovisualizer: Fix calculations for bytes<->samples conversions
Thomas Jones [Sat, 11 Jun 2016 02:36:32 +0000 (22:36 -0400)]
audiovisualizer: Fix calculations for bytes<->samples conversions

Use bpf instead of channels * sizeof(gint16).

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

8 years agoaudiovisualizer: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
Thomas Jones [Fri, 10 Jun 2016 18:04:36 +0000 (14:04 -0400)]
audiovisualizer: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()

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

8 years agoaudiovisualizer: fix timestamp calculation for audio channels > 1
Thomas Jones [Sat, 11 Jun 2016 02:50:41 +0000 (22:50 -0400)]
audiovisualizer: fix timestamp calculation for audio channels > 1

We have to use bps*channels instead of just bps, which is exactly what bpf is for.

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

8 years agovideodecoder: handle buffer's flags at offset
Víctor Manuel Jáquez Leal [Thu, 9 Apr 2015 17:09:17 +0000 (19:09 +0200)]
videodecoder: handle buffer's flags at offset

For reverse playback it is important to handle correctly the frame sync
points, which is set when the input buffer doesn't have the DELTA_UNIT flag.

This is handled correctly when decoder is packetized, but when it is not the
frame's sync point is not copied, and the reverse playback never decodes frame
batches.

The current patch adds the buffer's flags to the Timestamp list, where the
timestamp and duration of the input buffers are hold.

8 years agovideodecoder: squash two message logs into one
Víctor Manuel Jáquez Leal [Thu, 9 Apr 2015 17:18:58 +0000 (19:18 +0200)]
videodecoder: squash two message logs into one

There were two consecutive log messages in gst_video_decoder_decode_frame().
Given the information they provide, it is more efficient to squash them into a
single one.

8 years agovideodecoder: playback rate is in input_segment
Víctor Manuel Jáquez Leal [Thu, 9 Apr 2015 17:16:10 +0000 (19:16 +0200)]
videodecoder: playback rate is in input_segment

The playback rate is hold in the input_segment member variable, not in the
output_segment, and the parse_gather list was never filled because of that.

This patch changes the comparison with input_segment.

8 years agovideodecoder: Use input segment rate instead of output segment rate to decide whether...
Sebastian Dröge [Thu, 9 Jun 2016 16:02:49 +0000 (19:02 +0300)]
videodecoder: Use input segment rate instead of output segment rate to decide whether the drain on keyframes

The output segment is only set up after data is output, which might be far in
the future for reverse playback. Also we are here interested in the state at
the current *input* frame (which is the keyframe), not any possible output.

8 years agovideodecoder: Only drain in KEY_UNITS trick mode after a keyframe in forwards playbac...
Sebastian Dröge [Thu, 9 Jun 2016 15:53:54 +0000 (18:53 +0300)]
videodecoder: Only drain in KEY_UNITS trick mode after a keyframe in forwards playback mode

For reverse playback the same behaviour was already implemented in
flush_parse().

For reverse playback, chain_forward() is only used to gather frames and not
for decoding, and it is actually called by the draining logic, causing an
infinite recursion.

8 years agovideodecoder: Don't push late frames
Edward Hervey [Tue, 7 Jun 2016 07:48:35 +0000 (09:48 +0200)]
videodecoder: Don't push late frames

While it's a bit tricky to discard frames *before* decoding (because
we might not be sure which data is needed or not by the decoder), we
can discard them after decoding if they are too late anyway.

Any following basetransform based element or similar would drop the frame too.

8 years agovideodecoder: Avoid recursive drain/flush calls
Edward Hervey [Tue, 7 Jun 2016 08:31:59 +0000 (10:31 +0200)]
videodecoder: Avoid recursive drain/flush calls

_chain_forward() can also be called with reverse playback. Blindly
calling drain_out() on DISCONT buffers would end up in a recursive
call.

8 years agovideodecoder: Drain out keyframes in TRICK_MODE_KEY_UNITS
Edward Hervey [Sat, 4 Jun 2016 07:51:17 +0000 (09:51 +0200)]
videodecoder: Drain out keyframes in TRICK_MODE_KEY_UNITS

When asked to just decode keyframe, if we got a keyframe drain out
the decoder straight away.
This avoids having to wait for the next frame and reduces delay even
more.

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