platform/upstream/gst-plugins-bad.git
6 years agoRevert "gl: cocoa: sprinkle some GST_EXPORT"
Matthew Waters [Mon, 27 Nov 2017 03:44:24 +0000 (14:44 +1100)]
Revert "gl: cocoa: sprinkle some GST_EXPORT"

This reverts commit 94d798c3337013bd902c0fd0a66f7f6842243eeb.

cocoac headers don't need to be public as all the functionality can be
provided by the base class

6 years agogl: cocoa: sprinkle some GST_EXPORT
Tim-Philipp Müller [Sun, 26 Nov 2017 22:36:35 +0000 (22:36 +0000)]
gl: cocoa: sprinkle some GST_EXPORT

Undefined symbols for architecture x86_64:
  "_gst_gl_context_cocoa_get_type", referenced from:
      __create_layer in libgstopengl_la-caopengllayersink.o

Might need some more in other headers, but first need to
clarify what exactly should be exported, there are some
inconsistencies (installed header files vs. funcs in docs).

6 years agoautotools: remove check-exports target dep which no longer exists
Tim-Philipp Müller [Sun, 26 Nov 2017 18:35:13 +0000 (18:35 +0000)]
autotools: remove check-exports target dep which no longer exists

6 years agowin32: remove .def file with exports
Tim-Philipp Müller [Sun, 26 Nov 2017 16:32:01 +0000 (16:32 +0000)]
win32: remove .def file with exports

They're no longer needed, symbol exporting is now explicit
via GST_EXPORT in all cases (autotools, meson, incl. MSVC).

6 years agoautotools: stop controlling symbol visibility with -export-symbols-regex
Tim-Philipp Müller [Sun, 26 Nov 2017 16:25:50 +0000 (16:25 +0000)]
autotools: stop controlling symbol visibility with -export-symbols-regex

Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT.
This should result in consistent behaviour for the autotools and
Meson builds.

6 years agocodecparsers: mpegvideoparser: remove API that was deprecated 5 years ago
Tim-Philipp Müller [Sun, 26 Nov 2017 16:07:13 +0000 (16:07 +0000)]
codecparsers: mpegvideoparser: remove API that was deprecated 5 years ago

Libraries in -bad are not covered by our API/ABI stability
guarantees, and to the best of our knowledge everyone using
this API has moved to the replacement APIs ages ago.

6 years agowaylandsink: Add prototype for gst_wayand_pool_get_type()
Nicolas Dufresne [Sun, 26 Nov 2017 01:06:57 +0000 (20:06 -0500)]
waylandsink: Add prototype for gst_wayand_pool_get_type()

6 years agowaylandsink: Rollback video info changes when copying
Nicolas Dufresne [Thu, 23 Nov 2017 03:27:04 +0000 (22:27 -0500)]
waylandsink: Rollback video info changes when copying

We change the video info base on the received buffer. We need to
rollback these changes whenever we want to copy into our internal
pool of buffers.

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

6 years agowaylandsink: Validate strides and offset when using FD as SHM
Nicolas Dufresne [Wed, 22 Nov 2017 04:18:24 +0000 (23:18 -0500)]
waylandsink: Validate strides and offset when using FD as SHM

As SHM interface only support 1 stride, and 1 offset, we need to
make sure that there is no padding between planes for planar formats.

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

6 years agowaylandsink: Update video info size to buffer size
Nicolas Dufresne [Wed, 22 Nov 2017 04:17:14 +0000 (23:17 -0500)]
waylandsink: Update video info size to buffer size

We where setting the size to the first memory size, this may be
too small in case we received a buffer with multiple memory.

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

6 years agowaylandsink: Allocate only what's needed when copying
Nicolas Dufresne [Wed, 22 Nov 2017 04:12:12 +0000 (23:12 -0500)]
waylandsink: Allocate only what's needed when copying

There was this regression that we'd be using the updated video
info size instead of default size when initializing the pool.

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

6 years agowaylandsink: Only try SHM for single memory buffer
Nicolas Dufresne [Wed, 22 Nov 2017 04:11:02 +0000 (23:11 -0500)]
waylandsink: Only try SHM for single memory buffer

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

6 years agowlwindow: Only update video info on new render
Nicolas Dufresne [Wed, 22 Nov 2017 04:10:03 +0000 (23:10 -0500)]
wlwindow: Only update video info on new render

The sink->video_info might not reflect the current buffer
when expose is being called.

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

6 years agowaylandsink: Disable video-alignment from the pool
Nicolas Dufresne [Tue, 21 Nov 2017 02:09:28 +0000 (21:09 -0500)]
waylandsink: Disable video-alignment from the pool

The SHM interface does not allow passing arbitrary strides and offsets,
for this reason, we simply disable this feature from the proposed pool.

This fixes video artifact seen when using the FFMPEG based video
decoder.

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

6 years agoopusparse: fix uninitialized-warning
Havard Graff [Mon, 24 Oct 2016 21:02:38 +0000 (23:02 +0200)]
opusparse: fix uninitialized-warning

6 years agoh263parse: Add debug log for more annexes when plustype
Stian Selnes [Fri, 29 Jan 2016 10:46:52 +0000 (11:46 +0100)]
h263parse: Add debug log for more annexes when plustype

6 years agohls: Don't leak mutex
Edward Hervey [Sat, 25 Nov 2017 12:10:11 +0000 (13:10 +0100)]
hls: Don't leak mutex

6 years agovideoaggregator: Don't leak string
Edward Hervey [Sat, 25 Nov 2017 11:48:40 +0000 (12:48 +0100)]
videoaggregator: Don't leak string

The result of gst_video_colorimetry_to_string () needs to be free'd

6 years agonetsim: simplify getting buffer size in bits
Tim-Philipp Müller [Sat, 25 Nov 2017 11:27:57 +0000 (11:27 +0000)]
netsim: simplify getting buffer size in bits

6 years agomeson.build: use join_paths() on prefix
Håvard Graff [Tue, 10 Oct 2017 13:45:47 +0000 (15:45 +0200)]
meson.build: use join_paths() on prefix

So that "/" are correct on Windows and the paths in
the .pc files are like C:/some/where and not
C:\some\where.

6 years agotests: ignore waylandsink in state change test
Tim-Philipp Müller [Sat, 25 Nov 2017 11:16:28 +0000 (11:16 +0000)]
tests: ignore waylandsink in state change test

"Unexpected critical/warning: Wayland compositor is missing
the ability to scale, video display may not work properly."

6 years agonetsim: add "allow-reordering" property
Havard Graff [Tue, 1 Nov 2016 15:03:00 +0000 (16:03 +0100)]
netsim: add "allow-reordering" property

Reordering of packets is not very common in networks, and the delay
functions will always introduce reordering if delay > packet-spacing,
so by setting allow-reordering to FALSE you guarantee that the packets
are in order, while at the same time introducing delay/jitter to them.

6 years agonetsim: Add gamma distribution for delay
Stian Selnes [Mon, 3 Oct 2016 16:43:24 +0000 (18:43 +0200)]
netsim: Add gamma distribution for delay

This simulates the delay on wifi networks better.

6 years agonetsim: Change max-delay to be inclusive
Stian Selnes [Tue, 2 Aug 2016 11:45:54 +0000 (13:45 +0200)]
netsim: Change max-delay to be inclusive

It is more intuitive for the user that in order to acheive a constant
delay min-delay and max-delay are equal.

6 years agonetsim: Add "delay-distribution" property plus normal distribution
Stian Selnes [Mon, 1 Aug 2016 18:27:03 +0000 (20:27 +0200)]
netsim: Add "delay-distribution" property plus normal distribution

By using the property "delay-distribution" the user can control how the
delay applied to delayed packets is distributed. This is either the
uniform distribution (as before) or the normal distribution.

"min-delay" and "max-delay" control both distributions. For the normal
distribution it defines the bounds of the 95% confidence interval.

6 years agonetsim: add token bucket algorithm for simulating network congestion
Havard Graff [Thu, 23 Nov 2017 12:47:48 +0000 (13:47 +0100)]
netsim: add token bucket algorithm for simulating network congestion

6 years agonetsim: change property enums to PROP_* and fix indentation
Havard Graff [Thu, 23 Nov 2017 12:48:32 +0000 (13:48 +0100)]
netsim: change property enums to PROP_* and fix indentation

6 years agonetsim: remove private struct and padding
Tim-Philipp Müller [Fri, 24 Nov 2017 22:09:25 +0000 (22:09 +0000)]
netsim: remove private struct and padding

There's no need for these things, since the plugin headers
are not public, and all the extra ->priv-> just clutter the
code.

6 years agodashdemux: Handle bitrate > 2**31
Edward Hervey [Sat, 25 Nov 2017 08:41:00 +0000 (09:41 +0100)]
dashdemux: Handle bitrate > 2**31

On very-high connection, we could quite well exceed that. Instead use
gint64 for max-bitrate.

6 years agosdlshare: Destroy GL backend buffer before the GL Context
Nicolas Dufresne [Fri, 24 Nov 2017 22:06:22 +0000 (17:06 -0500)]
sdlshare: Destroy GL backend buffer before the GL Context

This was otherwise leading to a deadlock in the GL library.

6 years agosdlshare2: Fix race conditions
Nicolas Dufresne [Fri, 24 Nov 2017 21:58:21 +0000 (16:58 -0500)]
sdlshare2: Fix race conditions

The client-draw callback is running on the GL Thread, which will
be required to map the buffer. Map early, and pass the mapped
frame instead. On top of that, make sure to signal any pending
draw before trying to push EOS, as some pad locks might be taken.
This is the cost of using the same thread to control GStreamer and
to render GL.

6 years agomeson: Build gl/sdl examples
Nicolas Dufresne [Fri, 24 Nov 2017 21:58:01 +0000 (16:58 -0500)]
meson: Build gl/sdl examples

6 years agomeson: Playout example has not GL deps
Nicolas Dufresne [Fri, 24 Nov 2017 20:48:19 +0000 (15:48 -0500)]
meson: Playout example has not GL deps

6 years agomeson: Add missing examples directory
Nicolas Dufresne [Fri, 24 Nov 2017 20:19:25 +0000 (15:19 -0500)]
meson: Add missing examples directory

This will make it more visible what is missing in meson.

6 years agomeson: Build playout example
Nicolas Dufresne [Fri, 24 Nov 2017 20:17:02 +0000 (15:17 -0500)]
meson: Build playout example

6 years agoh265parse: early set src caps when input not byte-stream
Guillaume Desmottes [Wed, 22 Nov 2017 13:35:31 +0000 (14:35 +0100)]
h265parse: early set src caps when input not byte-stream

When input is not in byte-stream format there is no need to wait for the first
buffer before setting src caps. We already have all the information from the
input codec_data.

This allow us to already configure downstream elements allowing them,
for example, to already allocate their internal buffers as they know
the format of the input they are about to receive.

Same change as the one I just did in h264parse.

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

6 years agoh264parse: early set src caps when input is avc
Guillaume Desmottes [Wed, 22 Nov 2017 13:35:31 +0000 (14:35 +0100)]
h264parse: early set src caps when input is avc

When input is in AVC format there is no need to wait for the first buffer
before setting src caps. We already have all the information from the
input codec_data.

This allow us to already configure downstream elements allowing them,
for example, to already allocate their internal buffers as they know
the format of the input they are about to receive.

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

6 years agouvch264src: Check return values of all xu_query calls
Edward Hervey [Fri, 24 Nov 2017 07:06:52 +0000 (08:06 +0100)]
uvch264src: Check return values of all xu_query calls

And use warnings/returns like for other calls

CID #1373414
CID #1373417

6 years agogtk: Fix possibility of NULL variable
Edward Hervey [Fri, 24 Nov 2017 07:00:21 +0000 (08:00 +0100)]
gtk: Fix possibility of NULL variable

It's quite unlikely since it's initialized in instance initialization.

CID #1417721

6 years agodc1394src: Remove logically dead code
Edward Hervey [Fri, 24 Nov 2017 06:57:49 +0000 (07:57 +0100)]
dc1394src: Remove logically dead code

buffer would always be NULL in the error case. Simplify and just
return GST_FLOW_ERROR

CID #1417216

6 years agoviv-fb: Don't destroy the native FB display
Jan Schmidt [Thu, 23 Nov 2017 12:01:52 +0000 (23:01 +1100)]
viv-fb: Don't destroy the native FB display

It causes crashes in applications because the result of
fbGetDisplay() might be in use elsewhere in the application
and Vivante doesn't seem to do any refcounting

6 years agoRevert "gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb...
Jan Schmidt [Thu, 23 Nov 2017 11:58:40 +0000 (22:58 +1100)]
Revert "gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass"

This reverts commit 47fd4d391e775c11f529705bb0f457a9d25ba5e7.

This patch is incorrect. It doesn't actually compile, and causes a crash
because the viv-fb window implementation needs a native EGL handle
to pass to fbCreateWindow, but the GstGLDisplayEGL handleis actually
an EGLDisplay now (and gets cast to the wrong type)

6 years ago3dvideo example: Correct video overlay for HiDPI
Jan Schmidt [Thu, 23 Nov 2017 14:37:48 +0000 (01:37 +1100)]
3dvideo example: Correct video overlay for HiDPI

Use the GTK scaling factor to scale the video allocation
so video displays correctly on hi-dpi screens

6 years agomeson: remove outdated comment in build file
Tim-Philipp Müller [Thu, 23 Nov 2017 10:15:49 +0000 (11:15 +0100)]
meson: remove outdated comment in build file

6 years agomsdkdec: keep draining even if a finish_task fails
Hyunjun Ko [Thu, 23 Nov 2017 03:38:11 +0000 (12:38 +0900)]
msdkdec: keep draining even if a finish_task fails

Should continue draining so that it could try to
discard the rest of pending frames even if a finish_task fails.

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

6 years agoopencv: Update version for building plugins
Mario Alfredo Carrillo Arevalo [Fri, 10 Nov 2017 19:32:17 +0000 (13:32 -0600)]
opencv: Update version for building plugins

This commit allows to build the OpenCV plugin with OpenCV >= 2.3.0 to < 3.4.0.

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

6 years agodvb: Fix previous commit
Edward Hervey [Thu, 23 Nov 2017 07:14:06 +0000 (08:14 +0100)]
dvb: Fix previous commit

strlen on strings (and not sizeof) *sigh*

6 years agodvb: Fix sock_addr usage (for real)
Edward Hervey [Thu, 23 Nov 2017 07:12:03 +0000 (08:12 +0100)]
dvb: Fix sock_addr usage (for real)

It was great checking that the string was not too big ... but
it's better if we actually copy the proper amount of bytes :)

CID #206004

6 years agoipcpipeline: Don't leak structure
Edward Hervey [Thu, 23 Nov 2017 07:09:36 +0000 (08:09 +0100)]
ipcpipeline: Don't leak structure

CID #1416131

6 years agoipcpipeline: Simplify usage of g_cond_wait_until()
Edward Hervey [Thu, 23 Nov 2017 07:05:48 +0000 (08:05 +0100)]
ipcpipeline: Simplify usage of g_cond_wait_until()

It will return FALSE if a timeout happened. So don't check if we
timed out afterwards, just use the return value.

CID #1416347

6 years agoipcpipeline: Check the proper value
Edward Hervey [Thu, 23 Nov 2017 07:02:58 +0000 (08:02 +0100)]
ipcpipeline: Check the proper value

The code is meant to check the *peer* state change return value
(and not the sink's one).

CID #1416128

6 years agopo: update POTFILES.in
Piotr Drąg [Wed, 22 Nov 2017 16:37:02 +0000 (17:37 +0100)]
po: update POTFILES.in

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

6 years agocurlhttpsrc: Don't leak structure
Edward Hervey [Wed, 22 Nov 2017 15:53:17 +0000 (16:53 +0100)]
curlhttpsrc: Don't leak structure

CID #1415716

6 years agoaggregator: Remove klass->sinkpads_type
Mathieu Duponchelle [Mon, 6 Nov 2017 20:07:51 +0000 (21:07 +0100)]
aggregator: Remove klass->sinkpads_type

This posed problems for the python bindings (and possibly others).

Instead, subclasses now use add_pad_template_with_gtype.

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

6 years agoh265parse: put downstream caps first if possible on sink caps
Guillaume Desmottes [Mon, 20 Nov 2017 16:54:54 +0000 (17:54 +0100)]
h265parse: put downstream caps first if possible on sink caps

Try prioritizing downstream's caps over upstream's if possible so the
parser can configured in "passthrough" if possible and save it from
doing useless conversions.

Exact same change as the one I just did in h264parse.

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

6 years agoh264parse: put downstream caps first if possible on sink caps
Guillaume Desmottes [Mon, 20 Nov 2017 16:54:54 +0000 (17:54 +0100)]
h264parse: put downstream caps first if possible on sink caps

Try prioritizing downstream's caps over upstream's if possible so the
parser can configured in "passthrough" if possible and save it from
doing useless conversions.

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

6 years agomsdkdec: fix buffer leaks during drain and a leak of videobufferpool
Hyunjun Ko [Wed, 22 Nov 2017 02:33:54 +0000 (11:33 +0900)]
msdkdec: fix buffer leaks during drain and a leak of videobufferpool

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

6 years agomsdkenc: handle the MORE_DATA case
Hyunjun Ko [Tue, 21 Nov 2017 05:57:03 +0000 (14:57 +0900)]
msdkenc: handle the MORE_DATA case

If the driver requires more data, just unref the frame at the moment
then retreive/finish the frame after encoding is finished.

This also fixes a memory leak.

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

6 years agodecklinkvideosink: Print "Starting" instead of "Stopping" when starting
Sebastian Dröge [Wed, 22 Nov 2017 08:30:22 +0000 (10:30 +0200)]
decklinkvideosink: Print "Starting" instead of "Stopping" when starting

6 years agonvdec: implement flush/drain
Matthew Waters [Fri, 17 Nov 2017 06:09:22 +0000 (17:09 +1100)]
nvdec: implement flush/drain

Fixes outputted frame sequence when performing a seek

i.e. when seeking backwards, the first frame after the seek was a frame
from the future.  This would result in GstVideoDecoder essentially
marking all the timestamps as essentially bogus and the base class would
attempt to compensate.  A visible indication of this was 'decreasing timestamp'
warning after a seek.

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

6 years agocurl: fix meson build
Tim-Philipp Müller [Tue, 21 Nov 2017 19:56:38 +0000 (20:56 +0100)]
curl: fix meson build

Include libsdir so our i18n header there is found.

6 years agokmssink: Add Raspberry Pi (vc4) support
Nicolas Dufresne [Tue, 21 Nov 2017 17:03:38 +0000 (12:03 -0500)]
kmssink: Add Raspberry Pi (vc4) support

6 years agode265: Don't leak CodecState
Edward Hervey [Tue, 21 Nov 2017 15:43:03 +0000 (16:43 +0100)]
de265: Don't leak CodecState

Unref it in error case

CID #1417220

6 years agovulkan: Fix out-of-bound read
Edward Hervey [Tue, 21 Nov 2017 15:39:14 +0000 (16:39 +0100)]
vulkan: Fix out-of-bound read

G_N_ELEMENTS is the *number* of entries, not the maximum entry number

CID #1417215

6 years agocurlhttpsrc: Post an error message if no URI was set
Edward Hervey [Tue, 21 Nov 2017 15:30:35 +0000 (16:30 +0100)]
curlhttpsrc: Post an error message if no URI was set

Like for other sources

6 years agocurl: Add i18n
Edward Hervey [Tue, 21 Nov 2017 15:30:17 +0000 (16:30 +0100)]
curl: Add i18n

6 years agotests/srtp: Bump up timeout to 3mins for testcase
Edward Hervey [Tue, 21 Nov 2017 14:48:06 +0000 (15:48 +0100)]
tests/srtp: Bump up timeout to 3mins for testcase

This involves generating and processing 65536 packets, let's give it
time to actually complete that.

And a bit of debug to track what's going on.

6 years agosmoothstreaming: Handle invalid XML
Edward Hervey [Tue, 21 Nov 2017 14:33:57 +0000 (15:33 +0100)]
smoothstreaming: Handle invalid XML

Nothing guarantees the manifest is valid and will return a root node

6 years agocurlhttpsrc: Fix return value
Edward Hervey [Tue, 21 Nov 2017 14:33:08 +0000 (15:33 +0100)]
curlhttpsrc: Fix return value

The function returns a gchar * (and not a boolean)

6 years agocurlhttpsrc: Don't switch to PAUSED if not URI was specified
Edward Hervey [Tue, 21 Nov 2017 14:31:05 +0000 (15:31 +0100)]
curlhttpsrc: Don't switch to PAUSED if not URI was specified

Like for other sources

6 years agoall: Fix left-shift undefined behaviour
Edward Hervey [Mon, 20 Nov 2017 16:06:07 +0000 (17:06 +0100)]
all: Fix left-shift undefined behaviour

Cast to the target type before shifting (or use macro if available)

6 years agomsdkh264enc: Implement frame-packing SEI insertion for side-by-side and top-bottom
Sebastian Dröge [Tue, 31 Oct 2017 08:09:44 +0000 (10:09 +0200)]
msdkh264enc: Implement frame-packing SEI insertion for side-by-side and top-bottom

Ideally this would be supported directly in the Intel MediaSDK but
that's not the case nowadays.

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

6 years agomsdkenc: Fix handling of YUY2, UYVY, BGRA surfaces
Hyunjun Ko [Fri, 17 Nov 2017 08:49:16 +0000 (17:49 +0900)]
msdkenc: Fix handling of YUY2, UYVY, BGRA surfaces

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

6 years agomsdkenc: Add support for YV12, YUY2, UYVY and BGRA
Sebastian Dröge [Thu, 16 Nov 2017 09:32:52 +0000 (11:32 +0200)]
msdkenc: Add support for YV12, YUY2, UYVY and BGRA

By doing conversion with VPP to NV12 before the actual encoding.

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

6 years agohlsdemux: Fix memory leak caused by double buffer map
Jun Xie [Thu, 9 Nov 2017 04:36:44 +0000 (12:36 +0800)]
hlsdemux: Fix memory leak caused by double buffer map

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

6 years agosrt: add passphrase and key length properties
Justin Kim [Mon, 13 Nov 2017 14:01:58 +0000 (23:01 +0900)]
srt: add passphrase and key length properties

For stream encryption, both `passphrase` and `key-length`
properties are required.

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

6 years agoavwait: Deserialised timecodes set after caps event now get correct framerate
Vivia Nikolaidou [Tue, 14 Nov 2017 16:13:54 +0000 (18:13 +0200)]
avwait: Deserialised timecodes set after caps event now get correct framerate

A deserialised timecode has a framerate of 0/1 by default. That breaks
it when comparing the frames field with another timecode (incoming from
the frame). We were setting the framerate when receiving the caps event,
but not when setting the timecode in set_property, so it was broken for
timecodes set after the caps event.

Also checking if the fps_n we got from the caps event is != 0 before
setting it - also at the caps event.

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

6 years agotimecode: Fix incorrect wording in error message
Vivia Nikolaidou [Fri, 10 Nov 2017 15:21:43 +0000 (17:21 +0200)]
timecode: Fix incorrect wording in error message

6 years agoavwait: Better handling of deserialised timecode framerates
Vivia Nikolaidou [Fri, 10 Nov 2017 15:18:45 +0000 (17:18 +0200)]
avwait: Better handling of deserialised timecode framerates

Now that timecodes support proper serialisation / deserialisation, a
timecode might have an invalid fps_n / fps_d even without using the
target-time-code-string property. Detect those cases and set fps_n/fps_d
properly.

6 years agodecklink: Remove unused "bflags" variable
Vivia Nikolaidou [Thu, 9 Nov 2017 10:08:35 +0000 (12:08 +0200)]
decklink: Remove unused "bflags" variable

We are ignoring all its flags anyway, so let's remove it altogether.

6 years agodecklink: Ignore some driver-set timecode flags
Vivia Nikolaidou [Thu, 9 Nov 2017 09:44:17 +0000 (11:44 +0200)]
decklink: Ignore some driver-set timecode flags

The "fields" flag is ignored because currently GStreamer doesn't support
having only top or only bottom fields inside a frame. The "drop frame"
flag is ignored because some occurrences have been spotted where it
wasn't set while it should have been. In practice, when we have 29.97 or
59.94 FPS, it's always drop-frame.

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

6 years agodecklink: Don't crash when getting hw serial number doesn't return OK
Vivia Nikolaidou [Wed, 8 Nov 2017 22:16:21 +0000 (00:16 +0200)]
decklink: Don't crash when getting hw serial number doesn't return OK

If the return value isn't OK, it means we might be getting data that
points to an invalid memory address. That shouldn't make us crash.

6 years agosrt: Introduce SRT source and sink
Justin Kim [Mon, 31 Jul 2017 05:38:34 +0000 (14:38 +0900)]
srt: Introduce SRT source and sink

SRT[0] is an open source transport technology[1] that optimizes
streaming performance across unpredictable networks.

Although SRT is based on UDP, it works like connection-oriented
protocol. However, it doesn't mean that the SRT server or client
is necessarily to link to a receiver or a sender so, here, the
pairs of source and sink elements are introduced.

 - srtserversink: SRT server to feed SRT stream
 - srtclientsrc:  SRT client to get SRT stream from srtserversink

 - srtclientsink: SRT client to send SRT stream
 - srtserversrc:  SRT server to listen from srtclientsink

[0] https://github.com/Haivision/srt
[1] http://www.srtalliance.org/

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

6 years agoRevert "decklink: Detect gaps on incoming stream times, issue warnings"
Vivia Nikolaidou [Tue, 7 Nov 2017 19:12:42 +0000 (21:12 +0200)]
Revert "decklink: Detect gaps on incoming stream times, issue warnings"

This reverts commit c1294e10f99adf04a104397da735904634400464.

Was not ready to be pushed yet.

6 years agoRevert "debugutils: Added new jitterer element"
Vivia Nikolaidou [Tue, 7 Nov 2017 19:12:36 +0000 (21:12 +0200)]
Revert "debugutils: Added new jitterer element"

This reverts commit 595254f21b15702d95d5a7cf6e43d29f9c179f43.

Was not ready to be pushed yet.

6 years agoRevert "timecodestamper: LTC from audio"
Vivia Nikolaidou [Tue, 7 Nov 2017 19:12:32 +0000 (21:12 +0200)]
Revert "timecodestamper: LTC from audio"

This reverts commit c01afab9f7fa7e822dea38e358e92163e8d36282.

Was not ready to be pushed yet

6 years agoRevert "timecodestamper: Modify ltc-add to tc-add"
Vivia Nikolaidou [Tue, 7 Nov 2017 19:12:25 +0000 (21:12 +0200)]
Revert "timecodestamper: Modify ltc-add to tc-add"

This reverts commit 6552981b795a024d26bf509893d55970c2294c04.

Was not ready to be pushed yet

6 years agoavwait: Fix crash when explicitly setting end_tc to NULL
Vivia Nikolaidou [Tue, 7 Nov 2017 19:03:22 +0000 (21:03 +0200)]
avwait: Fix crash when explicitly setting end_tc to NULL

If end_tc is NULL, it means that we don't want avwait to stop at any
timecode. When explicitly setting end_tc to NULL, there is no point in
comparing end_tc with start_tc (to see if we'll reject end_tc for being
before start_tc), so the check in question is completely disabled
instead of letting it crash.

6 years agotimecodestamper: Modify ltc-add to tc-add
Georg Lippitsch [Mon, 2 Oct 2017 16:39:49 +0000 (18:39 +0200)]
timecodestamper: Modify ltc-add to tc-add

It is more general now and also adds TC to internal counter

6 years agotimecodestamper: LTC from audio
Georg Lippitsch [Tue, 13 Jun 2017 10:19:19 +0000 (13:19 +0300)]
timecodestamper: LTC from audio

Add support for parsing linear time code from
an audio source using libltc

https://github.com/x42/libltc

The user can now choose between 3 different and independently
running timecode sources. The old override-existing property
has been replaced by timecode-source.

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

6 years agodebugutils: Added new jitterer element
Vivia Nikolaidou [Wed, 6 Sep 2017 10:16:21 +0000 (13:16 +0300)]
debugutils: Added new jitterer element

This element can be configured to add jitter and/or drift to incoming
buffers' PTS, DTS, or both. Amplitude and average of jitter and drift
are configurable.

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

6 years agodecklink: Detect gaps on incoming stream times, issue warnings
Vivia Nikolaidou [Wed, 26 Apr 2017 16:05:21 +0000 (19:05 +0300)]
decklink: Detect gaps on incoming stream times, issue warnings

When we receive a video or audio buffer, we calculate the next stream
time based on the current stream time + buffer duration. If the next
buffer's stream time is after that, we issue a warning.

This happens because the stream time incoming from Decklink should be
really constant and without gaps. If there is a gap, it means that
something went wrong, e.g. the internal buffer pool is empty (too many
buffers queued up downstream).

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

6 years agogl/tests: add some simple shader testing
Matthew Waters [Tue, 7 Nov 2017 04:21:43 +0000 (15:21 +1100)]
gl/tests: add some simple shader testing

Making sure that the default shaders compile and are usable

6 years agogltestsrc: guard stop in gl thread
Matthew Waters [Tue, 7 Nov 2017 01:39:58 +0000 (12:39 +1100)]
gltestsrc: guard stop in gl thread

So we don't result in a critical when we've never created the GL context:

gst_gl_context_thread_add: assertion 'GST_IS_GL_CONTEXT (context)' failed

6 years agoglbasefilter: actually indicate start internally
Matthew Waters [Mon, 6 Nov 2017 13:07:42 +0000 (00:07 +1100)]
glbasefilter: actually indicate start internally

Otherwise when we stop, the necessary stop functions will not be called
and things may be leaked.

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

6 years agogltestsrc: free in the GL thread on stop
Matthew Waters [Mon, 6 Nov 2017 12:19:15 +0000 (23:19 +1100)]
gltestsrc: free in the GL thread on stop

Calling GL functions not on the GL thread may crash in some GL
implementations.

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

6 years agomsdk: fix to build msdkvp8dec with mfx_dispatch
Hyunjun Ko [Fri, 3 Nov 2017 01:55:28 +0000 (10:55 +0900)]
msdk: fix to build msdkvp8dec with mfx_dispatch

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

6 years agodvb: Fix sockaddr_un usage
Edward Hervey [Sat, 4 Nov 2017 06:49:24 +0000 (07:49 +0100)]
dvb: Fix sockaddr_un usage

The sun_path field needs to be NULL-terminated

CID #206004

6 years agoaggregator: add doc blurb for gst_aggregator_pad_is_eos()
Tim-Philipp Müller [Thu, 2 Nov 2017 18:32:55 +0000 (18:32 +0000)]
aggregator: add doc blurb for gst_aggregator_pad_is_eos()

6 years agoaggregator: also remove now-unused PadForeachFunc declaration
Tim-Philipp Müller [Thu, 2 Nov 2017 16:05:12 +0000 (16:05 +0000)]
aggregator: also remove now-unused PadForeachFunc declaration

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