platform/upstream/gst-plugins-base.git
7 years agowin32: update .def file for new video API
Tim-Philipp Müller [Mon, 9 Jan 2017 19:45:25 +0000 (19:45 +0000)]
win32: update .def file for new video API

7 years agotests: audiodecoder: fix another c99-ism
Tim-Philipp Müller [Mon, 9 Jan 2017 19:10:10 +0000 (19:10 +0000)]
tests: audiodecoder: fix another c99-ism

Missed one.

7 years agoFix indentation
Tim-Philipp Müller [Mon, 9 Jan 2017 19:02:57 +0000 (19:02 +0000)]
Fix indentation

7 years agotests: audiodecoder: fix compiler warnings due to c99-ism
Tim-Philipp Müller [Mon, 9 Jan 2017 18:58:42 +0000 (18:58 +0000)]
tests: audiodecoder: fix compiler warnings due to c99-ism

audiodecoder.c:160:5: error: ‘for’ loop initial declarations are only allowed in C99 mode

7 years agovideotimecode: Add GstValue functions unit test
Vivia Nikolaidou [Fri, 30 Dec 2016 18:27:48 +0000 (20:27 +0200)]
videotimecode: Add GstValue functions unit test

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

7 years agovideotimecode: Add GstValue functions
Vivia Nikolaidou [Fri, 30 Dec 2016 17:08:16 +0000 (19:08 +0200)]
videotimecode: Add GstValue functions

Add compare, serialization and deserialization functions

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

7 years agourisourcebin: Clear EOS state with stream-start/flush-stop event
Seungha Yang [Sun, 8 Jan 2017 12:53:27 +0000 (21:53 +0900)]
urisourcebin: Clear EOS state with stream-start/flush-stop event

The EOS state marker should cleared on stream-start or flush-stop

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

7 years agourisourcebin: Never push actual EOS event to slot
Seungha Yang [Sun, 8 Jan 2017 12:36:04 +0000 (21:36 +0900)]
urisourcebin: Never push actual EOS event to slot

Due to the special nature of adaptivedemux, reconfigure happens
frequently with seek/track-change.
In very exceptional cases, the following sequence is possible:
  * EOS event is pushed to queue element and still buffers are queued
  * During draining remaining buffers, reconfiguration downstream
happens due to track switch.
  * The queue gets a not-linked flow return from downstream
  * Because the sinkpad is EOS, the queue registers an
    error on the bus, causing the pipeline to fail.

Avoid the sinkpad getting marked EOS in the first place, by using a
custom event in place of EOS.

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

7 years agotestsuite: Add some test checks for gst_video_guess_framerate()
Jan Schmidt [Mon, 9 Jan 2017 10:31:37 +0000 (21:31 +1100)]
testsuite: Add some test checks for gst_video_guess_framerate()

7 years agogst_video_guess_framerate: Don't throw away all precision
Jan Schmidt [Mon, 9 Jan 2017 10:25:26 +0000 (21:25 +1100)]
gst_video_guess_framerate: Don't throw away all precision

When operating on framerates near 10000fps, at least keep 1
digit of precision for calculations

7 years agoUpdate win32 def files
Thibault Saunier [Fri, 6 Jan 2017 15:56:00 +0000 (12:56 -0300)]
Update win32 def files

7 years agoencoding-target: Properly free temporary list
Thibault Saunier [Fri, 6 Jan 2017 14:39:27 +0000 (11:39 -0300)]
encoding-target: Properly free temporary list

7 years agoencoding-profile: Add a way to copy an encoding profile
Thibault Saunier [Wed, 4 Jan 2017 17:27:40 +0000 (14:27 -0300)]
encoding-profile: Add a way to copy an encoding profile

It is often usefull to make sure that you get a full copy of a profile.
For example you want to let the user modify it in the user interface
but still keep an unchanged version for later use.

API:
  gst_encoding_profile_copy

7 years agomeson: generate pkg-config -uninstalled pc files
Guillaume Desmottes [Wed, 4 Jan 2017 13:56:36 +0000 (14:56 +0100)]
meson: generate pkg-config -uninstalled pc files

Generating those files is useful for users building the GStreamer stack
using meson and having to link it to another project which is still
using the autotools.

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

7 years agoencodebin: Fix stream_group_free when creating it went bad
Thibault Saunier [Wed, 4 Jan 2017 14:21:51 +0000 (11:21 -0300)]
encodebin: Fix stream_group_free when creating it went bad

Avoiding trying to use NULL pointers

7 years agoplaysink: do not link to audio or video filter using padname
Mark Nauwelaerts [Fri, 30 Dec 2016 16:55:18 +0000 (17:55 +0100)]
playsink: do not link to audio or video filter using padname

... as a sinkpad need not be called "sink", and it is not the case
for e.g. timeoverlay (and friends).

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

7 years agomultihandlesink: fix some property descriptions
Tim-Philipp Müller [Wed, 4 Jan 2017 13:44:53 +0000 (13:44 +0000)]
multihandlesink: fix some property descriptions

7 years agoplayback: Fix a small race on decodebin/parsebin shutdown.
Jan Schmidt [Mon, 2 Jan 2017 15:23:43 +0000 (02:23 +1100)]
playback: Fix a small race on decodebin/parsebin shutdown.

When shutting down decodebin2 and parsebin, they set their
output pads to flushing, and there is a very small window
where elements might send a sticky event such as a tag event
(which silently fails due to flushing) and then sends a buffer,
and the buffer will return GST_FLOW_ERROR because it can't
forward sticky events. The element will then send an error
message on the bus. This can also happen when elements send EOS
just as shutdown is happening. Since we're about to destroy all
the elements inside parsebin and decodebin anyway, just discard
error messages from them.

A nicer but more difficult fix for GStreamer 2.0 is to make
all event pushing / handling in core return a GstFlowReturn
like buffers do, so we can report a FLUSHING state cleanly.

7 years agoencodebin: fix queue property types when setting
Tim-Philipp Müller [Mon, 2 Jan 2017 12:54:32 +0000 (12:54 +0000)]
encodebin: fix queue property types when setting

7 years agoencodebin: allow more buffers in output queue for better performance
Song Bing [Fri, 13 Mar 2015 10:04:31 +0000 (18:04 +0800)]
encodebin: allow more buffers in output queue for better performance

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

7 years agoaudioconvert: Relocate a NULL check before accessing converter
Arun Raghavan [Mon, 2 Jan 2017 12:26:36 +0000 (17:56 +0530)]
audioconvert: Relocate a NULL check before accessing converter

CID 1396745

7 years agoappsrc: fix compiler warning
Tobias Mueller [Thu, 2 Jul 2015 05:23:23 +0000 (07:23 +0200)]
appsrc: fix compiler warning

Initialize min and max _get_property() to gets rid of these
compiler warnings:

gstappsrc.c:741:7: error: 'max' may be used uninitialized in this function
       g_value_set_int64 (value, max);
       ^
gstappsrc.c:733:7: error: 'min' may be used uninitialized in this function
       g_value_set_int64 (value, min);
       ^
Which happens because gcc doesn't know that GST_IS_APP_SRC will never
fail here.

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

7 years agortsp-url: unescape special chars in user/pass part of URL
Stuart Weaver [Wed, 25 Nov 2015 11:30:42 +0000 (11:30 +0000)]
rtsp-url: unescape special chars in user/pass part of URL

This way special characters such as '@' can be used in
usernames or passwords, e.g.

  rtsp://view:%40dm%4An@<IP-ADDR>/media/camera1

will now parse username and password into:

  User: view
  Pass: @dm:n

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

7 years agodiscoverer: Add support to dump dot files
Vineeth TM [Wed, 18 Nov 2015 04:59:30 +0000 (13:59 +0900)]
discoverer: Add support to dump dot files

Dump graphs during error/warning messages and discover is done

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

7 years agotests: tag: add unit test for ID3v2 UTF-16 string list parsing
Tim-Philipp Müller [Sat, 24 Dec 2016 10:15:24 +0000 (10:15 +0000)]
tests: tag: add unit test for ID3v2 UTF-16 string list parsing

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

7 years agotests: tag: add test for ID3v2 extended header parsing
Tim-Philipp Müller [Sat, 24 Dec 2016 14:32:34 +0000 (14:32 +0000)]
tests: tag: add test for ID3v2 extended header parsing

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

7 years agoid3v2: fix splitting strings in ISO-8859-1 and UTF-16 formats
Thomas Bluemel [Wed, 24 Aug 2016 17:39:39 +0000 (11:39 -0600)]
id3v2: fix splitting strings in ISO-8859-1 and UTF-16 formats

When parsing NUL-terminated strings, do not include the terminating
NUL byte(s).  Depending on the encoding used, either g_utf8_validate()
failed due to this, or worse the call to g_utf16_to_utf8() would
return 0 items read on an empty string, causing it to fail parsing
certain frames.

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

7 years agoid3v2: fix handling of tags with extended headers
Thomas Bluemel [Wed, 24 Aug 2016 16:33:14 +0000 (10:33 -0600)]
id3v2: fix handling of tags with extended headers

The extended header size value does not include itself.

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

7 years agoencoding-profile: Initialize variables to avoid build failures
Thibault Saunier [Fri, 23 Dec 2016 21:08:43 +0000 (18:08 -0300)]
encoding-profile: Initialize variables to avoid build failures

encoding-profile.c: In function ‘get_profile_format_from_possible_factory_name’:
encoding-profile.c:1532:6: error: ‘fact’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (fact)
      ^
encoding-profile.c: In function ‘profile_from_string’:
encoding-profile.c:1720:6: error: ‘res’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (profile)
      ^
cc1: all warnings being treated as errors

7 years agoencoding-profile: Allow using factory names in serialization format
Thibault Saunier [Fri, 23 Dec 2016 17:23:48 +0000 (14:23 -0300)]
encoding-profile: Allow using factory names in serialization format

Instead of enforcing the user to know and understand caps to describe
the encoding format, let him use element factory names directly.
This also makes it possible to ensure that a specific encodore/muxer
is used instead of letting the ranking system do it.

It is now possible to describe an encoding format simply specifying:

  matroskamux:x264enc:vobisenc

Factor out functions in the parsing, cleaning up the whole thing.
Update documentation.

7 years agoencoding-profile: Also take into account preset name when comparing profiles
Thibault Saunier [Wed, 21 Dec 2016 22:32:41 +0000 (19:32 -0300)]
encoding-profile: Also take into account preset name when comparing profiles

7 years agoencoding-profile: Handle path to serialized target when deserializing a profile
Thibault Saunier [Wed, 21 Dec 2016 16:24:37 +0000 (13:24 -0300)]
encoding-profile: Handle path to serialized target when deserializing a profile

The synthax is path/to/encoding/profile.gep:profilename

7 years agoencoding-target: Add 'file-extension' as a known category
Thibault Saunier [Wed, 21 Dec 2016 15:13:38 +0000 (12:13 -0300)]
encoding-target: Add 'file-extension' as a known category

7 years agoencoding-target: Allow using name and targets from serialized file
Thibault Saunier [Wed, 21 Dec 2016 14:05:30 +0000 (11:05 -0300)]
encoding-target: Allow using name and targets from serialized file

We used to only care about the name of the files even if the name
is defined in the encoding target serialized file.

That commit also allows user to define several names for a single
target file (using a ';' between the names) which allows us to have
a target for youtube that is called 'youtube;yt' or a target for
'ogg;ogv;oga' file extension.

7 years agoencoding-target: Auto convert loading target name to lowercase
Thibault Saunier [Wed, 21 Dec 2016 14:01:27 +0000 (11:01 -0300)]
encoding-target: Auto convert loading target name to lowercase

We *only* support lowercase encoding target names so we can just
handle user to use uper case ones converting them.

7 years agopbutils: Add documentation about encoding targets
Thibault Saunier [Wed, 21 Dec 2016 13:02:31 +0000 (10:02 -0300)]
pbutils: Add documentation about encoding targets

7 years agoplaybin-test: Don't use removed playbin3 'auto-select-streams' property
hoonhee.lee [Sat, 10 Dec 2016 02:43:47 +0000 (11:43 +0900)]
playbin-test: Don't use removed playbin3 'auto-select-streams' property

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

7 years agoaudiotestsrc: Fix incorrect start of tick waveform
Carlos Rafael Giani [Fri, 2 Sep 2016 13:23:18 +0000 (15:23 +0200)]
audiotestsrc: Fix incorrect start of tick waveform

Make sure ticks start with an accumulator value of 0 by incrementing it
after filling in samples instead of before and by resetting the accumulator
every time a tick begins. This prevents it from being discontinuous at the
beginning of the tick.

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

7 years agotools: gst-play: set GST_GL_XINITHREADS
Nicolas Dechesne [Thu, 22 Dec 2016 17:47:19 +0000 (18:47 +0100)]
tools: gst-play: set GST_GL_XINITHREADS

This ensure that XInitThreads is called and so gl contexts are properly
initialized.

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

7 years agoaudioringbuffer: add set_callback_full() for g-i
Evan Nemerson [Fri, 27 Jun 2014 01:01:06 +0000 (18:01 -0700)]
audioringbuffer: add set_callback_full() for g-i

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

7 years agotcpclientsrc: add timeout property
Nicola Murino [Tue, 20 Dec 2016 11:33:12 +0000 (12:33 +0100)]
tcpclientsrc: add timeout property

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

7 years agoparsebin: Ignore failure to send sticky events
Jan Schmidt [Tue, 20 Dec 2016 13:11:06 +0000 (00:11 +1100)]
parsebin: Ignore failure to send sticky events

When plugging and then exposing a parser, don't fail
if it fails to send sticky events. The most likely
reason is that things were flushed due to the app
immediately doing a seek, but we can't detect flushing
separately to other error conditions without a
gst_pad_send_event_full() core function that returns
a GstFlowReturn.

7 years agoriff-media: Fix up last commit
Sebastian Dröge [Tue, 20 Dec 2016 11:00:59 +0000 (13:00 +0200)]
riff-media: Fix up last commit

7 years agoriff: add ADPCM_G722 support
Nicola Murino [Sat, 28 Mar 2015 17:16:16 +0000 (18:16 +0100)]
riff: add ADPCM_G722 support

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

7 years agotests: Fix build
Thibault Saunier [Mon, 19 Dec 2016 18:20:35 +0000 (15:20 -0300)]
tests: Fix build

7 years agoencodebin: Fix build initializing sprof
Thibault Saunier [Mon, 19 Dec 2016 18:08:12 +0000 (15:08 -0300)]
encodebin: Fix build initializing sprof

7 years agoencodebin: Fallback to other profile if we fail with one
Thibault Saunier [Sat, 17 Dec 2016 01:11:41 +0000 (22:11 -0300)]
encodebin: Fallback to other profile if we fail with one

In some case we might have EncodingProfile that will be defined
in a way that, for example if a Preset is not present, another
profile for that stream should be used.

A test is added showing the feature.

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

7 years agoencodebin: Enhance error debug when failing to create an encoder
Thibault Saunier [Fri, 16 Dec 2016 19:27:04 +0000 (16:27 -0300)]
encodebin: Enhance error debug when failing to create an encoder

7 years agotag: id3v2: turn redundant check into an assert
Tim-Philipp Müller [Sun, 18 Dec 2016 12:29:42 +0000 (12:29 +0000)]
tag: id3v2: turn redundant check into an assert

We checked this already earlier, so this is dead code.
Leave an assert in place for consistency with the other
branch and in case the rest of the code changes.

CID 1397350.

7 years agodiscoverer: Get caps from the element's srcpad if possible
Sebastian Dröge [Sat, 17 Dec 2016 19:58:29 +0000 (21:58 +0200)]
discoverer: Get caps from the element's srcpad if possible

The caps put into the stream topology by decodebin are the caps at the
moment the pads are exposed on it. This is usually before decoders
received any buffers.
In discoverer we however wait for pre-roll, which ensures that each
decoder handled buffers already. At this point, there might be more
information known about the caps already that we could make use of.

One example here is extra information stored in the SEI of H264, like
the multiview-mode. This will be known if there is a SEI before the
first keyframe, but decodebin won't put this into the topology as it
only waits for the initial caps of h264parse (which come directly after
SPS/PPS).

With this change, the multiview-mode is in the caps reported by
discoverer in many cases.

7 years agodecodebin2: Put the correct element srcpad into the topology for the very last elemen...
Sebastian Dröge [Sat, 17 Dec 2016 19:35:24 +0000 (21:35 +0200)]
decodebin2: Put the correct element srcpad into the topology for the very last element of a chain

We were putting the decode pad there, which is the ghostpad linked to
the last element. The decode pad is already in the pad field.

7 years agodecodebin2: Put the correct pad into the stream-topology if a parser/converter is...
Sebastian Dröge [Sat, 17 Dec 2016 19:34:40 +0000 (21:34 +0200)]
decodebin2: Put the correct pad into the stream-topology if a parser/converter is used

We have to take the capsfilter into account then as the elements are not
linked directly. Previously this caused NULL be set in these cases.

7 years agoActually delete .spec.in file as well
Tim-Philipp Müller [Fri, 16 Dec 2016 17:39:59 +0000 (17:39 +0000)]
Actually delete .spec.in file as well

Only removed it from build description.

7 years agoencoding-profile: Fix documentation and port to gtk markdown
Thibault Saunier [Fri, 16 Dec 2016 14:11:57 +0000 (11:11 -0300)]
encoding-profile: Fix documentation and port to gtk markdown

And remove some trailling whitepsaces

7 years agomeson:doc: Build libraries documentations
Thibault Saunier [Fri, 16 Dec 2016 12:59:25 +0000 (09:59 -0300)]
meson:doc: Build libraries documentations

7 years agobase: Actually support using the default encoding target
Thibault Saunier [Fri, 16 Dec 2016 12:58:15 +0000 (09:58 -0300)]
base: Actually support using the default encoding target

7 years agoencoding-target: Remove useless check for local presence
Thibault Saunier [Thu, 15 Dec 2016 19:12:02 +0000 (16:12 -0300)]
encoding-target: Remove useless check for local presence

7 years agopbutils: Add safe guard too encoding profile API
Thibault Saunier [Thu, 15 Dec 2016 19:10:55 +0000 (16:10 -0300)]
pbutils: Add safe guard too encoding profile API

7 years agoaudio: Fix introspection annotation
Thibault Saunier [Thu, 15 Dec 2016 13:57:14 +0000 (10:57 -0300)]
audio: Fix introspection annotation

In gst_audio_check_valid_channel_positions the mask
is an out parameter.

And minor conversion from a print to a GST_ERROR.

7 years agoencoding-target: Handle GST_ENCODING_TARGET_PATH in list_all
Thibault Saunier [Wed, 14 Dec 2016 21:06:09 +0000 (18:06 -0300)]
encoding-target: Handle GST_ENCODING_TARGET_PATH in list_all

And fix the compare_target function

7 years agodecodebin: For adaptive streaming, ensure to put the buffering multiqueue after a...
Sebastian Dröge [Thu, 15 Dec 2016 14:29:02 +0000 (16:29 +0200)]
decodebin: For adaptive streaming, ensure to put the buffering multiqueue after a parser or demuxer

There are cases when there is no demuxer involved that could do the
buffering, e.g. HLS with raw MP3 or AAC. In this case we want to place
the buffering multiqueue after the parser.

Before this change, we've considered the first element after the
adaptive streaming demuxer as a parser. This is not always true, e.g.
id3demux. Instead we now wait until we actually have a parser (or
decoder).

Fixes playback on such HLS streams.

7 years agoRemove generated .spec file
Tim-Philipp Müller [Wed, 14 Dec 2016 09:48:02 +0000 (09:48 +0000)]
Remove generated .spec file

Likely extremely bitrotten, and we should not ship this anyway.

7 years agortsp: add boxed types for new authentication credential API
Tim-Philipp Müller [Tue, 13 Dec 2016 22:45:02 +0000 (22:45 +0000)]
rtsp: add boxed types for new authentication credential API

To make the structs usable in bindings, and fix

gstrtspmessage.c:1188: Warning: GstRtsp:
gst_rtsp_message_parse_auth_credentials: return value: Invalid
non-constant return of bare structure or union; register as
boxed type or (skip)

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

7 years agogst: Don't declare variables inside the for loop header
Sebastian Dröge [Tue, 13 Dec 2016 20:26:08 +0000 (22:26 +0200)]
gst: Don't declare variables inside the for loop header

This is a C99 feature.

7 years agoaudioringbuffer: do not require 4 byte multiple for encoded MPEG
Vincent Penquerc'h [Tue, 13 Dec 2016 09:44:09 +0000 (09:44 +0000)]
audioringbuffer: do not require 4 byte multiple for encoded MPEG

Bytes per frame doesn't make sense for encoded audio.

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

7 years agoplayback: Add ANY caps features to default text raw caps
Seungha Yang [Mon, 12 Dec 2016 05:50:11 +0000 (14:50 +0900)]
playback: Add ANY caps features to default text raw caps

Raw text caps with any caps features should be also default raw caps

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

7 years agomeson: Support building without Gst debug
Thibault Saunier [Fri, 9 Dec 2016 20:08:20 +0000 (17:08 -0300)]
meson: Support building without Gst debug

7 years agoxmptag: Don't leak the namespace string if there are multiple
Sebastian Dröge [Fri, 9 Dec 2016 15:36:47 +0000 (17:36 +0200)]
xmptag: Don't leak the namespace string if there are multiple

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

7 years agoid3v2: Clarify id3v2_add_id3v2_frame_blob_to_taglist()
Jan Schmidt [Fri, 9 Dec 2016 06:59:09 +0000 (17:59 +1100)]
id3v2: Clarify id3v2_add_id3v2_frame_blob_to_taglist()

Pass the frame data and size explicitly to
id3v2_add_id3v2_frame_blob_to_taglist() and add a
comment that it's being deliberately / manually
passed the full ID3v2 frame including header.

7 years agoid3v2: Add missing overrun check for frame sizes
Jan Schmidt [Fri, 9 Dec 2016 06:57:52 +0000 (17:57 +1100)]
id3v2: Add missing overrun check for frame sizes

When frames claim to have a footer, ensure they
are large enough to contain one to avoid an invalid
read overrun.

Spotted by Joshua Yabut

7 years agoogg: Fix element factory klass for OGM parsers
Jan Schmidt [Tue, 22 Nov 2016 12:08:09 +0000 (23:08 +1100)]
ogg: Fix element factory klass for OGM parsers

They're parsers, not decoders, so fix the klass info
accordingly.

7 years agodocs: design: remove outdated draft docs (hw-acceleration, va)
Tim-Philipp Müller [Thu, 8 Dec 2016 23:01:28 +0000 (23:01 +0000)]
docs: design: remove outdated draft docs (hw-acceleration, va)

7 years agodocs: design: move most design docs to gst-docs module
Tim-Philipp Müller [Thu, 8 Dec 2016 22:59:58 +0000 (22:59 +0000)]
docs: design: move most design docs to gst-docs module

7 years agodecodebin3: Remove unused variable
Seungha Yang [Sat, 3 Dec 2016 14:01:53 +0000 (23:01 +0900)]
decodebin3: Remove unused variable

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

7 years agodecodebin3: More cleanup DecodebinOutputStream and MultiQueueSlot
Seungha Yang [Sat, 3 Dec 2016 13:46:20 +0000 (22:46 +0900)]
decodebin3: More cleanup DecodebinOutputStream and MultiQueueSlot

When removing DecodebinInputStream, cleanup DecodebinOutputStream and
MultiQueueSlot also if they were drained.

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

7 years agodecodebin3: Drop duration query during _input_pad_unlink ()
Seungha Yang [Sat, 3 Dec 2016 13:37:55 +0000 (22:37 +0900)]
decodebin3: Drop duration query during _input_pad_unlink ()

Playbin3 takes lock when querying duration and handling
stream-collection message. So,to post stream-collection message,
duration query should be dropped when input pad is being unlinked.

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

7 years agodecodebin3: Update stream-collection with _input_pad_unlink()
Seungha Yang [Sat, 3 Dec 2016 13:12:21 +0000 (22:12 +0900)]
decodebin3: Update stream-collection with _input_pad_unlink()

Since parsebin does not post new stream-collection message when
it was being removed, decodebin3 should update it itself.

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

7 years agodecodebin3: Cleanup no more used DecodebinInput
Seungha Yang [Sat, 3 Dec 2016 13:28:28 +0000 (22:28 +0900)]
decodebin3: Cleanup no more used DecodebinInput

Remove DecodebinInput using gst_element_call_async() API.

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

7 years agodecodebin3: Cleanup no more used MultiQueueSlot
Seungha Yang [Sat, 3 Dec 2016 12:50:47 +0000 (21:50 +0900)]
decodebin3: Cleanup no more used MultiQueueSlot

Since MultiQueueSlot cannot be removed inside of streaming thread,
use gst_element_call_async() API.

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

7 years agodecodebin3: Send custom-eos event to notify drained state
Seungha Yang [Sat, 3 Dec 2016 12:42:30 +0000 (21:42 +0900)]
decodebin3: Send custom-eos event to notify drained state

Likewise how urisourcebin is doing, use custom event if other streams
are still alive.

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

7 years agoplaybin3: Reconfigure playsink again with pad-removed
Seungha Yang [Sat, 3 Dec 2016 11:44:21 +0000 (20:44 +0900)]
playbin3: Reconfigure playsink again with pad-removed

If selected streams and actived streams are matched,
do reconfigure of playsink again with pad-removed signal

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

7 years agoplayback: Remove trailing whitespace
Seungha Yang [Tue, 25 Oct 2016 12:06:40 +0000 (21:06 +0900)]
playback: Remove trailing whitespace

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

7 years agourisourcebin: Try to link output slot before cleanup
Seungha Yang [Sun, 23 Oct 2016 13:10:39 +0000 (22:10 +0900)]
urisourcebin: Try to link output slot before cleanup

Before cleaning up output slot, check pending pads first, if available.
Then, cleanup it only if linking was failed.

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

7 years agourisourcebin: Cleanup unused output slot
Seungha Yang [Sat, 22 Oct 2016 09:53:17 +0000 (18:53 +0900)]
urisourcebin: Cleanup unused output slot

Since urisourcebin cannot cleanup unused output slot
in streaming thread, it will be handled in thread pool
with gst_element_call_async ().

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

7 years agotagdemux: Fix crash when shutting down element during getrange()
Sebastian Dröge [Tue, 6 Dec 2016 14:29:23 +0000 (16:29 +0200)]
tagdemux: Fix crash when shutting down element during getrange()

Ensure that nothing is in any of the streaming thread functions
anymore when going from PAUSED to READY. While the parent's state change
function has deactivated all pads, there is nothing preventing
downstream from activating our srcpad again and calling the getrange()
function. Although we're in READY!

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

7 years agoAutomatic update of common submodule
Edward Hervey [Sat, 3 Dec 2016 07:19:15 +0000 (08:19 +0100)]
Automatic update of common submodule

From f980fd9 to 39ac2f5

7 years agotypefind: add another test to itc typefinder
Reynaldo H. Verdejo Pinochet [Fri, 2 Dec 2016 23:12:12 +0000 (15:12 -0800)]
typefind: add another test to itc typefinder

Report certainty after every test passes.

Additionally:

 - Remove self-explanatory comment.

7 years agossaparse: Free initialization section before storing the next one
Sebastian Dröge [Thu, 1 Dec 2016 17:57:47 +0000 (19:57 +0200)]
ssaparse: Free initialization section before storing the next one

If getting multiple caps events.

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

7 years agooggdemux: Don't end up ignoring caps just because there are no headers for this stream
Sebastian Dröge [Thu, 1 Dec 2016 13:12:59 +0000 (15:12 +0200)]
oggdemux: Don't end up ignoring caps just because there are no headers for this stream

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

7 years agoaudioconvert: Error out if mapping input/output buffer failed
Sebastian Dröge [Wed, 30 Nov 2016 08:55:16 +0000 (10:55 +0200)]
audioconvert: Error out if mapping input/output buffer failed

7 years agoaudioconvert: Don't map the input buffer in in-place mode
Sebastian Dröge [Wed, 30 Nov 2016 08:48:40 +0000 (10:48 +0200)]
audioconvert: Don't map the input buffer in in-place mode

Input and output buffer are the same, let's not do unnecessary work.

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

7 years agoaudio-converter: In passthrough, also don't copy if in and out block are the same
Sebastian Dröge [Wed, 30 Nov 2016 08:43:50 +0000 (10:43 +0200)]
audio-converter: In passthrough, also don't copy if in and out block are the same

In and out array are usually different, they are stack allocated arrays.
However the blocks inside them still can be the same.

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

7 years agoaudioconvert: Don't call transform_ip() in passthrough mode
Sebastian Dröge [Wed, 30 Nov 2016 08:36:14 +0000 (10:36 +0200)]
audioconvert: Don't call transform_ip() in passthrough mode

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

7 years agomultihandlesink: Fix buffers-queued being off by one
Jan Alexander Steffens (heftig) [Tue, 29 Nov 2016 14:30:43 +0000 (15:30 +0100)]
multihandlesink: Fix buffers-queued being off by one

max_buffer_usage is the index of the oldest buffer in the queue,
starting at zero, not the number of buffers queued.

find_limits returns the index of the oldest buffer that satisfies the
limits in its min_idx parameter, not the number of buffers needed. Fix
this use too in order to keep passing the tests that read
buffers-queued.

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

7 years agomultifdsink: Add a test involving a slow client
Jan Alexander Steffens (heftig) [Tue, 29 Nov 2016 15:26:22 +0000 (16:26 +0100)]
multifdsink: Add a test involving a slow client

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

7 years agomultihandlesink: Update bufpos in a separate pass
Jan Alexander Steffens (heftig) [Wed, 23 Nov 2016 13:35:04 +0000 (14:35 +0100)]
multihandlesink: Update bufpos in a separate pass

If a client gets dropped and the iteration gets restarted, bufpos is
incremented again for all clients that preceded the dropped one, causing
havoc.

Adjust the bufpos for all clients first before trying to drop any.

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

7 years agoplaybin: Fix caps memory leak in usage of gst_static_caps_get() API
Garima Gaur [Tue, 29 Nov 2016 11:07:50 +0000 (16:37 +0530)]
playbin: Fix caps memory leak in usage of gst_static_caps_get() API

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

7 years agowin32: update .def file for new audioconverter API
Tim-Philipp Müller [Mon, 28 Nov 2016 20:25:35 +0000 (20:25 +0000)]
win32: update .def file for new audioconverter API

Fixes distcheck.

7 years agomeson: Add headers and libm to has_function checks
Scott D Phillips [Tue, 29 Nov 2016 02:28:24 +0000 (18:28 -0800)]
meson: Add headers and libm to has_function checks

The functions from math.h may be implemented in libm.

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

7 years agodiscoverer: Handle NULL/ANY/EMPTY caps without crashing
Sebastian Dröge [Mon, 28 Nov 2016 17:45:46 +0000 (19:45 +0200)]
discoverer: Handle NULL/ANY/EMPTY caps without crashing