platform/upstream/gst-plugins-base.git
7 years agowin32: dist all .def files
Tim-Philipp Müller [Tue, 14 Feb 2017 19:43:47 +0000 (19:43 +0000)]
win32: dist all .def files

7 years agotypefindfunctions: prevent unsigned int overflow
Heekyoung Seo [Fri, 10 Feb 2017 08:32:29 +0000 (17:32 +0900)]
typefindfunctions: prevent unsigned int overflow

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

7 years agoadder: ensure the discont flag is correct
Stefan Sauer [Fri, 10 Feb 2017 20:28:49 +0000 (21:28 +0100)]
adder: ensure the discont flag is correct

Previously it happened that reused buffer caused the discont to be on the wrong
buffers.

7 years agodiscoverer: Ignore more parser related fields when comparing streams
Thibault Saunier [Wed, 8 Feb 2017 14:42:45 +0000 (11:42 -0300)]
discoverer: Ignore more parser related fields when comparing streams

The parser might do some conversion on a stream but the stream keeps
being the same, and we need to make sure GstDiscoverer detects it is the
case.

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

7 years agoaudioringbuffer: Also add FLAC to debug strings.
Jan Schmidt [Sat, 4 Feb 2017 03:46:00 +0000 (14:46 +1100)]
audioringbuffer: Also add FLAC to debug strings.

Oops, also add FLAC to the debug strings array.

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

7 years agoaudioringbuffer: Prevent overflow of debug names array
Jan Schmidt [Sat, 4 Feb 2017 03:42:33 +0000 (14:42 +1100)]
audioringbuffer: Prevent overflow of debug names array

Add new audio types to the list of strings used for debug
so we don't index past the end of that array.

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

7 years agomultifdsink: Make sure to use a 64 bit integer for the units-max property
Sebastian Dröge [Thu, 2 Feb 2017 12:56:39 +0000 (14:56 +0200)]
multifdsink: Make sure to use a 64 bit integer for the units-max property

7 years agodecodebin3: Fix crash caused by slot double freeing
Seungha Yang [Fri, 20 Jan 2017 10:49:46 +0000 (19:49 +0900)]
decodebin3: Fix crash caused by slot double freeing

Probe for MultiQueue source pad might receive EOS twice,
the first is fake-eos and the other is actual EOS.
And the slot can be freed with fake-eos/EOS if the slot has no input.

Since slot freeing is async, double free can be possible.
So, decodebin3 needs to remove the probe also with slot freeing.

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

7 years agoexamples: Fix leak
Edward Hervey [Tue, 31 Jan 2017 15:47:32 +0000 (16:47 +0100)]
examples: Fix leak

7 years agodecodebin3: Fix list leak on handle_stream_switch()
Seungha Yang [Sat, 3 Dec 2016 04:38:28 +0000 (13:38 +0900)]
decodebin3: Fix list leak on handle_stream_switch()

Free no more used list variables

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

7 years agodecodebin3: Change requested_selection to have its own memory for stream-id
Seungha Yang [Sat, 3 Dec 2016 04:22:54 +0000 (13:22 +0900)]
decodebin3: Change requested_selection to have its own memory for stream-id

"requested_selection" list might be generated by select-streams event.
And memory of stream-id(s) in select-streams is independent from that of stream-collection.

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

7 years agodecodebin3: Change return types of stream_in_{list,collection}
Seungha Yang [Sat, 3 Dec 2016 03:47:41 +0000 (12:47 +0900)]
decodebin3: Change return types of stream_in_{list,collection}

Change return types of functions to get memory address of stream-id.

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

7 years agoplayback: Fix leak on select_streams
Seungha Yang [Sat, 3 Dec 2016 03:43:22 +0000 (12:43 +0900)]
playback: Fix leak on select_streams

Since gst_event_parse_select_streams() returns newly allocated
memory for stream-id(s), it should be freed explicitly.

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

7 years agoencodebin: fix caps leak in test
Guillaume Desmottes [Mon, 2 Jan 2017 14:12:47 +0000 (15:12 +0100)]
encodebin: fix caps leak in test

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

7 years agoaudio-resampler: Fix integer overflow in clamping code
Sebastian Dröge [Mon, 30 Jan 2017 10:35:04 +0000 (12:35 +0200)]
audio-resampler: Fix integer overflow in clamping code

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

7 years agoqt: The videooverlay example requires at least C++11
Sebastian Dröge [Wed, 25 Jan 2017 17:13:40 +0000 (19:13 +0200)]
qt: The videooverlay example requires at least C++11

... and clang requires this to be specified on the commandline while gcc
nowadays defaults to C++11 or even newer.

7 years agomeson: Properly use ':' for defining keywords
Thibault Saunier [Tue, 24 Jan 2017 22:20:53 +0000 (19:20 -0300)]
meson: Properly use ':' for defining keywords

7 years agovideorate: fix LATENCY query
Tim-Philipp Müller [Mon, 23 Jan 2017 19:45:05 +0000 (19:45 +0000)]
videorate: fix LATENCY query

The latency query originally had a fallthrough to the default
label at the end as fallback, but that got messed up when the
DURATION and POSITION queries were added, so it then fell through
to the duration query handler instead. Restore original behaviour.

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

7 years agovideorate: fix duration and position query handling
Tim-Philipp Müller [Mon, 23 Jan 2017 19:08:15 +0000 (19:08 +0000)]
videorate: fix duration and position query handling

Duration query would return TRUE and duration=-1. This
worked in the unit test because the unit test implementation
was a bit broken.

Both queries need to access rate with a lock.

Fix broken duration query test as well. It relied on broken
behaviour by the videorate query handler, and also it was
implemented as a downstream query rather than an upstream
query. And we must return HANDLED from the probe so that the
query we intercept actually returns TRUE.

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

7 years agoaudio: add since markers to docs for new enums
Tim-Philipp Müller [Mon, 23 Jan 2017 19:50:09 +0000 (19:50 +0000)]
audio: add since markers to docs for new enums

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

7 years agoaudio: add FLAC to GstAudioRingBufferFormatType
Vincent Penquerc'h [Thu, 17 Nov 2016 13:04:18 +0000 (13:04 +0000)]
audio: add FLAC to GstAudioRingBufferFormatType

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

7 years agoaudioringbuffer: Also support raw AAC
Olivier Crete [Mon, 23 Jan 2017 18:31:54 +0000 (18:31 +0000)]
audioringbuffer: Also support raw AAC

Support raw AAC streams without the ADTS header

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

7 years agodocs: update libs section
Víctor Manuel Jáquez Leal [Fri, 20 Jan 2017 22:28:23 +0000 (23:28 +0100)]
docs: update libs section

Include documented symbols that were not declared in section file.

7 years agoriff-media: Don't divide block align by zero channels
Sebastian Dröge [Fri, 20 Jan 2017 10:41:16 +0000 (12:41 +0200)]
riff-media: Don't divide block align by zero channels

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

7 years agosamiparse: Check that the string has a non-zero length before overwriting the last...
Sebastian Dröge [Fri, 20 Jan 2017 06:02:38 +0000 (08:02 +0200)]
samiparse: Check that the string has a non-zero length before overwriting the last byte with '\0'

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

7 years agoriff-media: Don't recurse in for nested WAVEFORMATEX
Sebastian Dröge [Sun, 15 Jan 2017 17:42:34 +0000 (18:42 +0100)]
riff-media: Don't recurse in for nested WAVEFORMATEX

There was already a check for that, but it failed because
subformat_guid[0] is a guint32 and that is then casted implicitely to a
guint16 when recursing... just that we checked the uncasted value.

This caused an infinite recursion and thus stack overflow.

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

7 years agodecodebin: Don't leak blocked pad references on errors
Jan Schmidt [Wed, 18 Jan 2017 03:59:18 +0000 (14:59 +1100)]
decodebin: Don't leak blocked pad references on errors

When the decodebin state change fails because of an error
message, we might not go through PAUSED->READY. Don't leak
a ref to decodebin pads due to pad blocking in that case.

This is because we return ASYNC going to PAUSED, and if
we fail before reaching PAUSED the only transition we'll
see is READY->NULL.

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

7 years agovideotestsrc: Add options to make ball pattern based on system time, and invert each...
Carl Karsten [Fri, 28 Nov 2014 00:02:49 +0000 (18:02 -0600)]
videotestsrc: Add options to make ball pattern based on system time, and invert each second.

This adds some extra options that affect pattern=ball mode, allowing the
animation to be synced to running time or wall-time clock for comparing
sync across different instances / pipelines / machines.

Also added is the ability to invert the rendering colours every second,
and some different ball motion patterns.

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

7 years agoriff-media: Check for valid channels/rate before using the values
Sebastian Dröge [Sun, 15 Jan 2017 17:31:56 +0000 (18:31 +0100)]
riff-media: Check for valid channels/rate before using the values

Otherwise we might divide by zero or otherwise create invalid caps.

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

7 years agomeson: bump version
Tim-Philipp Müller [Fri, 13 Jan 2017 12:38:52 +0000 (12:38 +0000)]
meson: bump version

7 years agoBack to development
Sebastian Dröge [Thu, 12 Jan 2017 14:32:42 +0000 (16:32 +0200)]
Back to development

7 years agoRelease 1.11.1
Sebastian Dröge [Thu, 12 Jan 2017 13:30:02 +0000 (15:30 +0200)]
Release 1.11.1

7 years agoUpdate .po files
Sebastian Dröge [Thu, 12 Jan 2017 12:37:17 +0000 (14:37 +0200)]
Update .po files

7 years agopo: Update translations
Sebastian Dröge [Thu, 12 Jan 2017 12:35:09 +0000 (14:35 +0200)]
po: Update translations

7 years agourisourcebin: Preserve seqnum on EOS events
Jan Schmidt [Thu, 12 Jan 2017 11:28:50 +0000 (22:28 +1100)]
urisourcebin: Preserve seqnum on EOS events

When converting EOS to/from our custom fake EOS event,
preserve any seqnum on the original event.

7 years agourisourcebin: Avoid races when setting up typefind
Edward Hervey [Thu, 12 Jan 2017 09:51:34 +0000 (10:51 +0100)]
urisourcebin: Avoid races when setting up typefind

The state of urisourcebin (and all elements contained within) can
change at any point in time, including when setting up the typefind
element.

In order to avoid ending up with typefind starting without being fully
connected, lock the state and connect to the 'have-type' signal.

7 years agovideo-converter: Fix crashes in fast-paths when converting interlaced formats with...
Sebastian Dröge [Wed, 11 Jan 2017 16:24:38 +0000 (18:24 +0200)]
video-converter: Fix crashes in fast-paths when converting interlaced formats with different vertical subsampling

E.g. the following pipelines fail because chroma values after the last
line are read (note: 486 % 4 == 2):

gst-launch-1.0 videotestsrc ! "video/x-raw,interlace-mode=interleaved,width=720,height=486,format=UYVY" ! videoconvert ! "video/x-raw,format=I420" ! fakesink
gst-launch-1.0 videotestsrc ! "video/x-raw,interlace-mode=interleaved,width=720,height=486,format=I420" ! videoconvert ! "video/x-raw,format=UYVY" ! fakesink
gst-launch-1.0 videotestsrc ! "video/x-raw,interlace-mode=interleaved,width=720,height=486,format=I420" ! videoconvert ! "video/x-raw,format=AYUV" ! fakesink

7 years agourisourcebin: Drop fake EOS if the pad got relinked
Jan Schmidt [Wed, 11 Jan 2017 11:48:02 +0000 (22:48 +1100)]
urisourcebin: Drop fake EOS if the pad got relinked

If our pad got relinked in since the fake-EOS was sent to the
pad, then drop the fake-EOS event.

CID: 1398546

7 years agocommon: Revert unintentional change in previous commit
Arun Raghavan [Wed, 11 Jan 2017 11:56:01 +0000 (17:26 +0530)]
common: Revert unintentional change in previous commit

7 years agourisourcebin: Drop some dead code
Arun Raghavan [Wed, 11 Jan 2017 11:44:46 +0000 (17:14 +0530)]
urisourcebin: Drop some dead code

The ret == GST_STATE_CHANGE_FAILURE is handled in the previous for loop
already.

CID: 1398544

7 years agourisourcebin: Clear pad from pending list if it was linked
Seungha Yang [Wed, 11 Jan 2017 03:35:40 +0000 (12:35 +0900)]
urisourcebin: Clear pad from pending list if it was linked

If not, the other slots might try to link the pad again.
This can happen when the demuxer has multiple src pads
and their caps are identical

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

7 years agowin32: update def file
Edward Hervey [Wed, 11 Jan 2017 07:22:21 +0000 (08:22 +0100)]
win32: update def file

7 years agovideotimecode: Added unit test for GstVideoTimeCodeInterval
Vivia Nikolaidou [Tue, 10 Jan 2017 14:36:08 +0000 (16:36 +0200)]
videotimecode: Added unit test for GstVideoTimeCodeInterval

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

7 years agovideotimecode: New GstVideoTimeCodeInterval type, ability to add to a GstVideoTimeCode
Vivia Nikolaidou [Thu, 29 Dec 2016 12:42:52 +0000 (14:42 +0200)]
videotimecode: New GstVideoTimeCodeInterval type, ability to add to a GstVideoTimeCode

Sometimes there is a human-oriented timecode that represents an
interval between two other timecodes. It corresponds to the human
perception of "add X hours" or "add X seconds" to a specific timecode,
taking drop-frame oddities into account. This interval-representing
timecode is now a GstVideoTimeCodeInterval. Also added function to add it to
a GstVideoTimeCode.

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

7 years agourisourcebin: Configure typefind element for non-streaming uri
Seungha Yang [Tue, 10 Jan 2017 12:52:34 +0000 (21:52 +0900)]
urisourcebin: Configure typefind element for non-streaming uri

To ensure configuring adaptivedemux if needed,
setup typefind element even if uri is not matched to streaming protocol.

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

7 years agourisourcebin: Use GList for typefind elements
Seungha Yang [Sat, 24 Dec 2016 07:44:26 +0000 (16:44 +0900)]
urisourcebin: Use GList for typefind elements

We need typefind elements per source element's srcpad

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

7 years agourisourcebin: Remove unused signal handler variable
Seungha Yang [Sat, 24 Dec 2016 07:15:45 +0000 (16:15 +0900)]
urisourcebin: Remove unused signal handler variable

Remove never used handler id

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

7 years agopbutils: Fix annotation in gst_encoding_profile_set_preset
Thibault Saunier [Tue, 10 Jan 2017 11:57:51 +0000 (08:57 -0300)]
pbutils: Fix annotation in gst_encoding_profile_set_preset

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.