platform/upstream/gst-plugins-base.git
7 years agovideodecoder: fix build error on i386
Matthew Waters [Fri, 10 Mar 2017 07:22:27 +0000 (18:22 +1100)]
videodecoder: fix build error on i386

Use G_GUINT64_FORMAT for guint64 values.

Introduced by fcb63e77a9de42cfb50da03a4925b06704006be3

Found by Alexander Larsson

gstvideodecoder.c: In function 'gst_video_decoder_have_frame':
gstvideodecoder.c:3312:51: error: format '%u' expects argument of type 'unsigned int', but argument 8 has type 'guint64 {aka long long unsigned int}' [-Werror=format=]

7 years agoFix plugin filenames to match pugin names
Nicolas Dufresne [Sat, 4 Mar 2017 15:08:04 +0000 (10:08 -0500)]
Fix plugin filenames to match pugin names

 - libgstencodebin.so is now libgstencoding.so
 - libgstximage.so is now libgstximagesink.so (meson only)

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

7 years agourisourcebin: Shrink queue2 max-size-time buffering
Jan Schmidt [Wed, 8 Mar 2017 14:40:06 +0000 (01:40 +1100)]
urisourcebin: Shrink queue2 max-size-time buffering

The expanded 4 second buffering was making radio streams that are
being delivered at real-time speeds too slow. We might need
a better plan for matching the queue2 size to incoming bitrate
in the absence of tag information or timestamping.

In uridecodebin, it used tags on the output of decodebin to
adjust the queue2 buffering, but urisourcebin doesn't have that
view - decodebin is downstream from us.

7 years agovideotimecode: Unref GDateTime in error cases
Sebastian Dröge [Wed, 8 Mar 2017 13:47:52 +0000 (15:47 +0200)]
videotimecode: Unref GDateTime in error cases

7 years agoplaybin3/urisourcebin: Enable buffering by default
Sebastian Dröge [Tue, 7 Mar 2017 12:59:36 +0000 (14:59 +0200)]
playbin3/urisourcebin: Enable buffering by default

This only has effect on network streams in these elements, and by
enabling it by default we get the same behaviour as in playbin2.

7 years agotools: gst-play: improve verbose output of property notifications
Tim-Philipp Müller [Tue, 7 Mar 2017 00:25:03 +0000 (00:25 +0000)]
tools: gst-play: improve verbose output of property notifications

Use new message notify API and print caps and taglists in a nicer
to read way, just like gst-launch-1.0 does nowadays, without
escaping everything three times.

7 years agovideodecoder: Fix a leak introduced in fcb63e
Jan Schmidt [Mon, 6 Mar 2017 08:14:48 +0000 (19:14 +1100)]
videodecoder: Fix a leak introduced in fcb63e

CID: 1402055

7 years agooggdemux: Fix reverse playback
Jan Schmidt [Fri, 3 Mar 2017 13:27:30 +0000 (00:27 +1100)]
oggdemux: Fix reverse playback

Fix various issues with reverse playback by clearing tracking
vars when working in reverse, and where possible using the
timestamp interpolation code to generate timestamps for
outgoing buffers. Make sure to mark things as discontinuous
only when looping backward to a new position and fix seeking
to the next page when starting.

7 years agooggdemux: Timestamp tracking fixes
Jan Schmidt [Fri, 3 Mar 2017 13:22:17 +0000 (00:22 +1100)]
oggdemux: Timestamp tracking fixes

In gst_ogg_demux_do_seek() when calculating the
keyframe time, account for a non-zero start-time

Handle a discontinuous first packet in
gst_ogg_demux_setup_first_granule() because that's pretty
normal after a seek. Also differentiate between a genuinely
truncated first packet and just bailing out early, by not using
granule = -1 as an error code.

Make the debug output logs clearer about which timestamps
are stream times (PTS) and which are ogg timestamps.

7 years agooggdemux: Don't arbitrarily guess a timestamp of 0
Jan Schmidt [Fri, 3 Mar 2017 13:15:50 +0000 (00:15 +1100)]
oggdemux: Don't arbitrarily guess a timestamp of 0

When we haven't managed to manufacture a timestamp for
a packet, don't just guess '0', leave it at none and
let downstream decide

7 years agotheoradec: Make the keyframe condition check clearer
Jan Schmidt [Fri, 3 Mar 2017 13:12:26 +0000 (00:12 +1100)]
theoradec: Make the keyframe condition check clearer

Make the keyframe checking if statement easier to
read, and add some debug when detecting a keyframe

7 years agovideodecoder: Restrict frame timestamp guessing in reverse mode
Jan Schmidt [Fri, 3 Mar 2017 13:18:07 +0000 (00:18 +1100)]
videodecoder: Restrict frame timestamp guessing in reverse mode

Don't guess a timestamp of the start of the segment when running
in reverse mode, as more likely it means we're discontinuous somewhere
in the middle of the segment, and we'll fix up timestamps once
the frames are decoded and reversed.

7 years agovideodecoder: Store buffer information even without PTS
Jan Schmidt [Fri, 3 Mar 2017 13:10:27 +0000 (00:10 +1100)]
videodecoder: Store buffer information even without PTS

When a PTS is not set, we still want to store the rest of the
buffer information, or else we lose important things like the
duration or buffer flags when parsing.

7 years agovorbisdec: Reset decoder in more situations
Edward Hervey [Fri, 3 Mar 2017 09:52:15 +0000 (10:52 +0100)]
vorbisdec: Reset decoder in more situations

This is a followup commit to b95725c37e70ad3c1ec8dadb401388db375df482

* Resetting the decoder should only happen when we get a new initialization
header (0x01) and not on the other headers
* The initialized variable only gets set to TRUE once all headers have
been parsed. Also check if the vorbis_info struct has been properly resetted
also. Failure to do that would cause vorbisdec to error if it got
two initialization header in a row (the first would configure the underlying
library and the second one would error out because it's already initialized)

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

7 years agorawbaseparse: Assert that frame size is > 0
Sebastian Dröge [Tue, 28 Feb 2017 13:51:00 +0000 (15:51 +0200)]
rawbaseparse: Assert that frame size is > 0

We would later divide by zero otherwise, and generally won't do the
right thing.

CID 1401383

7 years agorawaudioparse: Fix potential NULL pointer dereference
Sebastian Dröge [Tue, 28 Feb 2017 13:26:36 +0000 (15:26 +0200)]
rawaudioparse: Fix potential NULL pointer dereference

CID 1364606

7 years agodecodebin3: Fix potential NULL pointer dereference on slot deactivation
Sebastian Dröge [Tue, 28 Feb 2017 13:17:24 +0000 (15:17 +0200)]
decodebin3: Fix potential NULL pointer dereference on slot deactivation

CID 1363331

7 years agourisourcebin: Fix inverted check for an existing slot
Sebastian Dröge [Tue, 28 Feb 2017 13:15:31 +0000 (15:15 +0200)]
urisourcebin: Fix inverted check for an existing slot

CID 1363330

7 years agodecodebin3: Handle stream-start events without group id correctly
Sebastian Dröge [Tue, 28 Feb 2017 13:13:49 +0000 (15:13 +0200)]
decodebin3: Handle stream-start events without group id correctly

CID 1363327

7 years agovideodecoder: Handle return value of gst_video_decoder_drain()
Sebastian Dröge [Tue, 28 Feb 2017 13:11:42 +0000 (15:11 +0200)]
videodecoder: Handle return value of gst_video_decoder_drain()

CID 1362896

7 years agovorbisdec: reset decoder on vorbis headers update
Jochen Henneberg [Thu, 9 Feb 2017 12:44:51 +0000 (12:44 +0000)]
vorbisdec: reset decoder on vorbis headers update

if the vorbis encoder receives new headers it must be
reset and re-initialized to continue decoding, e. g.
for live streams

7 years agovorbisenc: Resend (new, updated) headers when the caps are changing
Sebastian Dröge [Mon, 27 Feb 2017 17:04:30 +0000 (19:04 +0200)]
vorbisenc: Resend (new, updated) headers when the caps are changing

The headers are usually changing together with the caps, and they are
nedeed for correct decoding.

7 years agorawparse: fix linking for audio/video libs
Tim-Philipp Müller [Sat, 25 Feb 2017 19:19:32 +0000 (19:19 +0000)]
rawparse: fix linking for audio/video libs

Broke build in gnome continuous

7 years agorawparse: Fix meson build
Sebastian Dröge [Sat, 25 Feb 2017 13:14:07 +0000 (15:14 +0200)]
rawparse: Fix meson build

7 years agorawparse: Move to gst-plugins-base
Sebastian Dröge [Sat, 25 Feb 2017 12:48:40 +0000 (14:48 +0200)]
rawparse: Move to gst-plugins-base

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

7 years agoMerge branch 'rawparse-moved-plugin'
Sebastian Dröge [Sat, 25 Feb 2017 12:32:33 +0000 (14:32 +0200)]
Merge branch 'rawparse-moved-plugin'

7 years agomeson: Update version
Sebastian Dröge [Fri, 24 Feb 2017 13:59:38 +0000 (15:59 +0200)]
meson: Update version

7 years agoBack to development
Sebastian Dröge [Fri, 24 Feb 2017 13:37:33 +0000 (15:37 +0200)]
Back to development

7 years agoRelease 1.11.2
Sebastian Dröge [Fri, 24 Feb 2017 13:07:06 +0000 (15:07 +0200)]
Release 1.11.2

7 years agoUpdate .po files
Sebastian Dröge [Fri, 24 Feb 2017 10:46:59 +0000 (12:46 +0200)]
Update .po files

7 years agovideo-converter: Give a name to the thread-pool threads
Sebastian Dröge [Fri, 24 Feb 2017 08:04:21 +0000 (10:04 +0200)]
video-converter: Give a name to the thread-pool threads

This way they can be distinguished from any other threads in the same
process.

7 years agovideo-converter: Only lock the thread pool mutex when running with more than 1 thread
Sebastian Dröge [Fri, 24 Feb 2017 08:02:28 +0000 (10:02 +0200)]
video-converter: Only lock the thread pool mutex when running with more than 1 thread

There's no reason to lock anything if only the current thread is ever
going to do any work.

7 years agovideo-converter: Implement multi-threaded scaling/conversion
Sebastian Dröge [Mon, 20 Feb 2017 19:38:17 +0000 (21:38 +0200)]
video-converter: Implement multi-threaded scaling/conversion

This adds a property to select the maximum number of threads to use for
conversion and scaling. During processing, each plane is split into
an equal number of consecutive lines that are then processed by each
thread.

During tests, this gave up to 1.8x speedup with 2 threads and up to 3.2x
speedup with 4 threads when converting e.g. 1080p to 4k in v210.

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

7 years agovideotimecode: Validate for drop-frame correctness
Georg Lippitsch [Tue, 21 Feb 2017 10:59:12 +0000 (11:59 +0100)]
videotimecode: Validate for drop-frame correctness

In gst_video_time_code_is_valid, also check for invalid
ranges when using drop-frame TC. Refactor some code which
broke after the check was added.

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

7 years agovideotimecode: Init from GDateTime
Georg Lippitsch [Wed, 15 Feb 2017 17:40:21 +0000 (18:40 +0100)]
videotimecode: Init from GDateTime

Add a function to init the time code from a GDateTime

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

7 years agovorbis: Fix channel reorder map for 5.1, 6.1 and 7.1
Jochen Henneberg [Mon, 20 Feb 2017 11:44:37 +0000 (13:44 +0200)]
vorbis: Fix channel reorder map for 5.1, 6.1 and 7.1

7 years agorawbaseparse: Drop incomplete frames at EOS
Sebastian Dröge [Sat, 18 Feb 2017 18:18:50 +0000 (20:18 +0200)]
rawbaseparse: Drop incomplete frames at EOS

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

This would ideally be solved in baseparse but that requires further
thought at this point, and in the meantime it would be good to have
rawbaseparse not assert on this but handle it gracefully instead.

7 years agovideo-scaler: Fix upscaling if width & height change and we're starting not at y=0
Sebastian Dröge [Wed, 15 Feb 2017 19:41:47 +0000 (21:41 +0200)]
video-scaler: Fix upscaling if width & height change and we're starting not at y=0

It was taking the initial input y-offset from the output value, which
only works for y=0 (in which case both are the same). If y > 0, we would
always stay behind the requested input offset and never ever read
anything from the input.

7 years agoFix distcheck
Tim-Philipp Müller [Tue, 14 Feb 2017 22:31:50 +0000 (22:31 +0000)]
Fix distcheck

Buildbot doesn't like wildcards here for some reason.

7 years agomeson: dist meson build files
Tim-Philipp Müller [Tue, 14 Feb 2017 19:44:43 +0000 (19:44 +0000)]
meson: dist meson build files

Ship meson build files in tarballs, so people who use tarballs
in their builds can start playing with meson already.

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