platform/upstream/gstreamer.git
7 years agotests: simplify audiomixer test
Stefan Sauer [Sun, 10 Sep 2017 18:55:07 +0000 (20:55 +0200)]
tests: simplify audiomixer test

Use _link_many() and reuse a helper to reduce the test code.

7 years agomssdemux: fix caps leak in error code path
Tim-Philipp Müller [Fri, 15 Sep 2017 19:34:28 +0000 (20:34 +0100)]
mssdemux: fix caps leak in error code path

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

7 years agoplayer: introduce helper method to remove seek source
Philippe Renon [Fri, 15 Sep 2017 13:04:02 +0000 (15:04 +0200)]
player: introduce helper method to remove seek source

this incidentally fixes a missing g_source_destroy() call in _main()

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

7 years agoplayer: remove duplicate state_ret check in play internal
Philippe Renon [Fri, 15 Sep 2017 12:58:56 +0000 (14:58 +0200)]
player: remove duplicate state_ret check in play internal

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

7 years agoqmlglsink: Expose itemInitialized as property
Jochen Henneberg [Wed, 6 Sep 2017 07:59:56 +0000 (07:59 +0000)]
qmlglsink: Expose itemInitialized as property

Instead of just signalling when ready exposing the state
as a property allows us to bind at any time if player is
loaded async.

7 years agokmssink: Don't leak the dumb buffer on drain
Nicolas Dufresne [Fri, 8 Sep 2017 14:16:12 +0000 (10:16 -0400)]
kmssink: Don't leak the dumb buffer on drain

7 years agokmssink: Don't assume buffer pool won't touch buf pointer
Nicolas Dufresne [Fri, 8 Sep 2017 13:28:19 +0000 (09:28 -0400)]
kmssink: Don't assume buffer pool won't touch buf pointer

Just for extra safety, let's not assume that gst_buffer_pool_acquire()
won't ever touch the buf pointer.

7 years agokms: fix crash if bo allocation failed when copying to dumb buffer
Guillaume Desmottes [Fri, 8 Sep 2017 12:57:06 +0000 (14:57 +0200)]
kms: fix crash if bo allocation failed when copying to dumb buffer

If bo allocation failed we destroy the buffer and return GST_FLOW_ERROR,
but the @buffer pointer was still pointing to the address of the
destroyed buffer. gst_kms_sink_copy_to_dumb_buffer() was then trying to
unref it when bailing out causing a crash.

Leave @buffer untouched if allocation failed to fix the crash.
Also remove the check on *buffer being not NULL as gst_buffer_new()
will abort if it failed.

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

7 years agoqt: fix build with qmake
Tim-Philipp Müller [Thu, 7 Sep 2017 08:39:13 +0000 (09:39 +0100)]
qt: fix build with qmake

Move the package defines for GST_PLUGIN_DEFINE from the
command line into the source file to avoid quoting issues
(-DPACKAGE_NAME="foo" means the quotes won't actually make
it to the compiler and then it no longer gets a string constant).

7 years agodfbvideosink: Pass the VideoInfo to gst_video_info_from_caps
Thibault Saunier [Wed, 6 Sep 2017 19:04:49 +0000 (16:04 -0300)]
dfbvideosink: Pass the VideoInfo to gst_video_info_from_caps

Fixing the build

7 years agoRequest minimum buffer even if need_pool is FALSE
Nicolas Dufresne [Tue, 5 Sep 2017 20:20:44 +0000 (16:20 -0400)]
Request minimum buffer even if need_pool is FALSE

When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

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

7 years agohlsdemux: fix compilation with OpenSSL 1.1.0
George Kiagiadakis [Tue, 5 Sep 2017 12:07:03 +0000 (15:07 +0300)]
hlsdemux: fix compilation with OpenSSL 1.1.0

OpenSSL 1.1.0 no longer allows stack-allocated structures;
it hides the implementation behind typedefs

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

7 years agocheck: Fix usage of dual probes
Edward Hervey [Tue, 5 Sep 2017 12:26:52 +0000 (14:26 +0200)]
check: Fix usage of dual probes

Using two (or more) probes on the same pad where one of the probe
returns HANDLED or DROP is tricky since the other probes might
not be called.

Instead use regular probes and a proper pad (the sinkpad already existed,
it only required to be activated and have a dummy chain function for
the events/buffers to be received/handled properly)

7 years agoamc: actually use the provided application class loader
Matthew Waters [Thu, 31 Aug 2017 08:56:37 +0000 (18:56 +1000)]
amc: actually use the provided application class loader

For the camera and sensor

Fixes a couple of ClassNotFound java exceptions when initializing GStreamer
off the main thread.

7 years agogl/wayland: call eglTerminate() before wl_display_disconnect()
Matthew Waters [Tue, 5 Sep 2017 06:14:02 +0000 (16:14 +1000)]
gl/wayland: call eglTerminate() before wl_display_disconnect()

Calling these two functions in the wrong order will result in
use-after-free inside wayland.

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

7 years agogtkglsink: expose the created display and context correctly
Matthew Waters [Fri, 1 Sep 2017 05:00:12 +0000 (15:00 +1000)]
gtkglsink: expose the created display and context correctly

1. Propagate the GstGLDisplay we create
2. Add the created GstGLContext to the propagated GstGLDisplay

Otherwise with multi-branch GL pipelines involving gtkglsink, things
will fall apart and errors will be genarated somewhere.

7 years agosbcenc: Fix typo in docs
Sebastian Dröge [Tue, 5 Sep 2017 07:56:12 +0000 (10:56 +0300)]
sbcenc: Fix typo in docs

7 years agoplugin: Rename libde265 to de265 for consistency
Edward Hervey [Tue, 5 Sep 2017 07:51:41 +0000 (09:51 +0200)]
plugin: Rename libde265 to de265 for consistency

And avoids it being blacklisted

7 years agoexamples: Makefile.am: add ipcpipeline in SUBDIRS if enabled
George Kiagiadakis [Mon, 4 Sep 2017 13:13:41 +0000 (16:13 +0300)]
examples: Makefile.am: add ipcpipeline in SUBDIRS if enabled

7 years agoipcpipeline: cleanup header includes
George Kiagiadakis [Mon, 4 Sep 2017 13:00:02 +0000 (16:00 +0300)]
ipcpipeline: cleanup header includes

We are only using read(), write(), memcpy(), strlen() and errno
in ipcpipelinecomm.c. Everything else is glib/gstreamer.

7 years agoipcpipeline: use GstPoll instead of select() to watch for socket activity
George Kiagiadakis [Mon, 4 Sep 2017 12:52:03 +0000 (15:52 +0300)]
ipcpipeline: use GstPoll instead of select() to watch for socket activity

... and make that code more readable in the process

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

7 years agoexamples: ipcpipeline: get rid of yet another use of SOCK_NONBLOCK
George Kiagiadakis [Mon, 4 Sep 2017 07:39:58 +0000 (10:39 +0300)]
examples: ipcpipeline: get rid of yet another use of SOCK_NONBLOCK

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

7 years agoopencv: allow compilation against 3.3.0
Nicola Murino [Mon, 4 Sep 2017 06:30:58 +0000 (08:30 +0200)]
opencv: allow compilation against 3.3.0

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

7 years agoqt: Only include qtgui-config.h on qt >= 5.9.0
Edward Hervey [Fri, 1 Sep 2017 13:56:04 +0000 (15:56 +0200)]
qt: Only include qtgui-config.h on qt >= 5.9.0

The file does not exist in previous versions

7 years agotsdemux: Make jp2k handling more robust and efficient
Edward Hervey [Wed, 30 Aug 2017 06:37:04 +0000 (08:37 +0200)]
tsdemux: Make jp2k handling more robust and efficient

* Avoid copying the pending data and instead create a buffer directly from
  that data with the appropriate offset.
* Locate the jp2k magic to determine the exact location of the (first) frame
  data instead of assuming that the header is of an expected size

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

7 years agotsdemux: Handle quirk in jp2k es header handling
Edward Hervey [Tue, 29 Aug 2017 09:14:59 +0000 (11:14 +0200)]
tsdemux: Handle quirk in jp2k es header handling

The jp2k specification (ITU-T T.800) specifies that the 'brat' box
has two fields and the second one (AUF2) can be set to 0 for progressive
streams.

The problem is that the mpeg-ts specification (ITU-T H.222.0 06/2012)
says that the AUF2 field is only present if the stream is interlaced

In order to cope with both situation, accept those next 32bit if the
stream is marked as progressive and those bits contain 0

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

7 years agoexamples: ipcpipeline: do not use the linux-specific SOCK_NONBLOCK flag
George Kiagiadakis [Thu, 31 Aug 2017 12:07:45 +0000 (15:07 +0300)]
examples: ipcpipeline: do not use the linux-specific SOCK_NONBLOCK flag

Use fcntl() instead to set O_NONBLOCK, which is portable.

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

7 years agotests: ipcpipeline: provide pipe2() on systems that don't have it
George Kiagiadakis [Thu, 31 Aug 2017 11:57:34 +0000 (14:57 +0300)]
tests: ipcpipeline: provide pipe2() on systems that don't have it

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

7 years agoqt: the defines for QT_OPENGL_ES_2 have moved
Matthew Waters [Thu, 31 Aug 2017 04:40:44 +0000 (14:40 +1000)]
qt: the defines for QT_OPENGL_ES_2 have moved

Update the includes to account for that

7 years agoqt: ensure GL_DRAW_FRAMEBUFFER
Jochen Henneberg [Wed, 26 Apr 2017 11:50:41 +0000 (13:50 +0200)]
qt: ensure GL_DRAW_FRAMEBUFFER

7 years agotests: ipcpipeline: make the state_changes test more deterministic
George Kiagiadakis [Wed, 30 Aug 2017 15:11:27 +0000 (18:11 +0300)]
tests: ipcpipeline: make the state_changes test more deterministic

Watching the STATE_CHANGED messages is way more deterministic than
polling the state.

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

7 years agotests: ipcpipeline: fix broken exclusivity checks
George Kiagiadakis [Wed, 30 Aug 2017 13:37:21 +0000 (16:37 +0300)]
tests: ipcpipeline: fix broken exclusivity checks

In most cases we want to stop the pipeline just once, but we have
to do this from code that runs in the streaming threads and in case
we have multiple streams, we need to make sure that we do this only
once. The previous checks were broken, this should fix it.

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

7 years agotests: ipcpipeline: attempt to make tags test more deterministic
George Kiagiadakis [Wed, 30 Aug 2017 11:37:32 +0000 (14:37 +0300)]
tests: ipcpipeline: attempt to make tags test more deterministic

Instead of using a timeout and pushing the tags from an outside
thread, use a pad probe and push them from the streaming thread.

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

7 years agoexamples/gl/gtk: build fix for the 3dvideo example on macOS
Philippe Normand [Wed, 30 Aug 2017 14:18:58 +0000 (15:18 +0100)]
examples/gl/gtk: build fix for the 3dvideo example on macOS

7 years agoexamples/gl/gtk: fix overlay handling for macOS
Philippe Normand [Wed, 30 Aug 2017 14:16:39 +0000 (15:16 +0100)]
examples/gl/gtk: fix overlay handling for macOS

The GTK+ window requires a NSView sub-view, not an NSWindow.

7 years agonvdec: fix build after GL/gl.h no longer included
Per-Erik Brodin [Tue, 29 Aug 2017 23:52:07 +0000 (16:52 -0700)]
nvdec: fix build after GL/gl.h no longer included

GL headers are no longer included in public gstgl headers, except for
gstglfuncs.h so make sure to include that one.

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

7 years agotsdemux: Properly error out on jp2k parsing errors
Edward Hervey [Tue, 29 Aug 2017 08:37:11 +0000 (10:37 +0200)]
tsdemux: Properly error out on jp2k parsing errors

Avoids crashes later on where we assume buffer exists

7 years agogl: fix build for ios/win32/android after 2fd84a6c
Matthew Waters [Mon, 28 Aug 2017 02:56:34 +0000 (12:56 +1000)]
gl: fix build for ios/win32/android after 2fd84a6c

Some missing GL includes.

7 years agoisoff: make debug category private
Tim-Philipp Müller [Sat, 26 Aug 2017 12:08:27 +0000 (13:08 +0100)]
isoff: make debug category private

Otherwise it shows up in .def file in autotools build.

7 years agomeson: fix build for isoff lib addition
Tim-Philipp Müller [Sat, 26 Aug 2017 11:03:06 +0000 (12:03 +0100)]
meson: fix build for isoff lib addition

7 years agoisoff: export symbols
Tim-Philipp Müller [Sat, 26 Aug 2017 11:02:51 +0000 (12:02 +0100)]
isoff: export symbols

7 years agosmoothstreaming: Use isoff to parse tfxd/tfrf
Seungha Yang [Wed, 17 May 2017 13:09:48 +0000 (22:09 +0900)]
smoothstreaming: Use isoff to parse tfxd/tfrf

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

7 years agoisoff: Add parsing mss specific tfrf and tfxd boxes
Seungha Yang [Sun, 2 Jul 2017 05:27:33 +0000 (14:27 +0900)]
isoff: Add parsing mss specific tfrf and tfxd boxes

This code is imported from mssdemux's tfxd/tfrf parsing function

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

7 years agoisoff: Add parsing moov and tfdt
Seungha Yang [Fri, 2 Jun 2017 14:19:36 +0000 (23:19 +0900)]
isoff: Add parsing moov and tfdt

To extract isobmff level timestamp, moov and tfdt parsing is required.

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

7 years agoisoff: Move isoff to gst-libs
Seungha Yang [Thu, 25 May 2017 09:14:09 +0000 (18:14 +0900)]
isoff: Move isoff to gst-libs

Also rename unit test dash_isoff to isoff

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

7 years agogl: install new glfuncs.h header
Tim-Philipp Müller [Fri, 25 Aug 2017 19:37:39 +0000 (20:37 +0100)]
gl: install new glfuncs.h header

7 years agotests: ipcpipeline: skip broken tests
Tim-Philipp Müller [Fri, 25 Aug 2017 18:33:41 +0000 (19:33 +0100)]
tests: ipcpipeline: skip broken tests

These fail on the build bots. Blacklist until someone
investigates.

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

7 years agotests/player: check for media-info-updated before duration-changed
Philippe Normand [Thu, 24 Aug 2017 12:43:18 +0000 (13:43 +0100)]
tests/player: check for media-info-updated before duration-changed

The media-info-updated signal is now emitted before duration-changed since
commit 8a29da8023604a1419ac5f2cae7f165198d6fbbf.

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

7 years agosrtp: zero out session member on dealloc
Matthew Waters [Thu, 24 Aug 2017 08:00:41 +0000 (18:00 +1000)]
srtp: zero out session member on dealloc

Fixes a user-after-free retrieving stats from _get_property()

7 years agogl/checks: fix build
Matthew Waters [Wed, 23 Aug 2017 15:18:40 +0000 (01:18 +1000)]
gl/checks: fix build

7 years agogl/meson: add build for the vivante fb backend
Matthew Waters [Wed, 23 Aug 2017 06:36:09 +0000 (16:36 +1000)]
gl/meson: add build for the vivante fb backend

7 years agomeson: build allocators library
Matthew Waters [Wed, 23 Aug 2017 06:34:39 +0000 (16:34 +1000)]
meson: build allocators library

7 years agogl/meson: detect valid configuration from enabled apis/platform/winsys
Matthew Waters [Wed, 23 Aug 2017 06:32:57 +0000 (16:32 +1000)]
gl/meson: detect valid configuration from enabled apis/platform/winsys

7 years agogl/build: also check for the GL/gl.h header
Matthew Waters [Wed, 23 Aug 2017 06:23:07 +0000 (16:23 +1000)]
gl/build: also check for the GL/gl.h header

In order to successfully build against a detected libGL library we also need headers

7 years agoglutils: fix matrix operations everywhere
Matthew Waters [Thu, 17 Aug 2017 03:46:04 +0000 (13:46 +1000)]
glutils: fix matrix operations everywhere

- correct the matrix multiplication
- Use column-major matrices
  - reverse order of matrix multiplications

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

7 years agogltransformation: draw with GL_TRIANGLES
Matthew Waters [Thu, 17 Aug 2017 03:42:21 +0000 (13:42 +1000)]
gltransformation: draw with GL_TRIANGLES

Drawing 5 vertices with GL_TRIANGLE_STRIP will draw an extra unneeded
triangle.

7 years agoapplemedia: fix build after commit 2fd84a6c
Philippe Normand [Tue, 22 Aug 2017 15:16:44 +0000 (16:16 +0100)]
applemedia: fix build after commit 2fd84a6c

7 years agogl/cocoa: fix build after commit 2fd84a6c
Philippe Normand [Tue, 22 Aug 2017 15:16:24 +0000 (16:16 +0100)]
gl/cocoa: fix build after commit 2fd84a6c

7 years agoqt: fix broken build due to commit 2fd84a6c for gstgl
Julien Isorce [Tue, 22 Aug 2017 11:39:43 +0000 (12:39 +0100)]
qt: fix broken build due to commit 2fd84a6c for gstgl

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

7 years agogl: fix broken build due to previous commit 2fd84a6c
Julien Isorce [Tue, 22 Aug 2017 11:39:43 +0000 (12:39 +0100)]
gl: fix broken build due to previous commit 2fd84a6c

Can reproduce after installing libgraphene-dev

Also fixes caopengllayersink.h to anticipate build error on osx.

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

7 years agogl: do not include GL headers in public gstgl headers
Julien Isorce [Fri, 7 Jul 2017 15:15:12 +0000 (16:15 +0100)]
gl: do not include GL headers in public gstgl headers

Except for gst/gl/gstglfuncs.h

It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.

For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.

For example with this patch, if an app includes the headers
  gst/gl/egl/gstglcontext_egl.h
  gst/gl/egl/gstgldisplay_egl.h
  gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.

Also added a test: cd tests/check && make libs/gstglheaders.check

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

7 years agogldownload: Micro-optimisation. Don't check output caps on every buffer
Jan Schmidt [Mon, 21 Aug 2017 13:49:02 +0000 (06:49 -0700)]
gldownload: Micro-optimisation. Don't check output caps on every buffer

The output caps will only change on a set_caps() call, so check if
they contain the SystemMemory feature then and save some
per-buffer CPU.

7 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 17 Aug 2017 11:23:37 +0000 (12:23 +0100)]
Automatic update of common submodule

From 29046b8 to 3f4aa96

7 years agosys: Convert source files to UTF-8
Jan Alexander Steffens (heftig) [Wed, 16 Aug 2017 11:59:01 +0000 (13:59 +0200)]
sys: Convert source files to UTF-8

Otherwise we have problems with the new gtk-doc
ported to python. But it's a good thing to do
anyway.

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

7 years agoplayer: notify of media-info update after duration change
Philippe Normand [Mon, 14 Aug 2017 13:09:33 +0000 (14:09 +0100)]
player: notify of media-info update after duration change

This is a follow-up of 98b0802a981eab05e610638bf5422a08a378a68a

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

7 years agodecklinkvideosink: Add support for Decklink hardware keying
Dave Johnstone [Tue, 15 Aug 2017 00:57:03 +0000 (10:27 +0930)]
decklinkvideosink: Add support for Decklink hardware keying

Add two properties (keyer-mode and keyer-level) to control the built-in hardware keyer of Decklink cards.

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

7 years agoadaptivedemux: start/stop the manifest update loop on liveness or periodic update...
Matthew Waters [Mon, 14 Aug 2017 11:33:51 +0000 (21:33 +1000)]
adaptivedemux: start/stop the manifest update loop on liveness or periodic update changes

Scenario:
A manifest starts out in live mode but then the recording is finalized
and a subsequent update changes the state to a non-live manifest when
the server has finished recording/transcoding/whatever with the full
list of fragments.

Without this patch, the manifest update task is never stopped on the
live->non-live transition and will busy loop, burning through one CPU
core.

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

7 years agomeson: Fix build with openjpeg>=2.2
Thibault Saunier [Mon, 14 Aug 2017 19:33:48 +0000 (16:33 -0300)]
meson: Fix build with openjpeg>=2.2

2.2 implies HAVE_2_1

7 years agoqmlglsink: Add itemInitialized signal to QML item
Carlos Rafael Giani [Sun, 21 May 2017 14:01:14 +0000 (16:01 +0200)]
qmlglsink: Add itemInitialized signal to QML item

This is useful for autoplay for example. With autoplay, it is necessary to
wait until the scene graph is fully set up. This signal is emitted once the
QML item node is ready. So, inside a connected slot, the pipeline's state
can be set to PLAYING to automatically start playback as soon as the QML
script is loaded.

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

7 years agogl: fix build
Tim-Philipp Müller [Mon, 14 Aug 2017 11:12:34 +0000 (12:12 +0100)]
gl: fix build

Include private headers for parent class debug categories.

7 years agogl: add missing new header files
Tim-Philipp Müller [Mon, 14 Aug 2017 09:11:00 +0000 (10:11 +0100)]
gl: add missing new header files

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

7 years agogl: make some debug categories private
Tim-Philipp Müller [Mon, 14 Aug 2017 08:33:38 +0000 (09:33 +0100)]
gl: make some debug categories private

They weren't supposed to be public.

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

7 years agoplayer: propagate updated duration to media_info
Philippe Normand [Sat, 12 Aug 2017 15:08:02 +0000 (16:08 +0100)]
player: propagate updated duration to media_info

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

7 years agoopenjpeg: Fix build against openjpeg 2.2
Clemens Lang [Sun, 13 Aug 2017 19:17:18 +0000 (21:17 +0200)]
openjpeg: Fix build against openjpeg 2.2

OpenJPEG 2.2 has some API changes and thus ships its headers in a new
include path. Add a configure check (to both meson and autoconf) to
detect the newer version of OpenJPEG and add conditional includes.

Fix the autoconf test for OpenJPEG 2.1, which checked for HAVE_OPENJPEG,
which was always set even for 2.0.

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

7 years agogl: don't export symbols that are not supposed to be public
Tim-Philipp Müller [Fri, 11 Aug 2017 17:38:41 +0000 (18:38 +0100)]
gl: don't export symbols that are not supposed to be public

Make a bunch of symbols private that are currently leaked
accidentally because they have a gst_* prefix and are used
internally. We mark those we can't make static with
G_GNUC_INTERNAL so that they get hidden with the autotools
build as well (although we could just pass -fvisibility=hidden
there too).

7 years agogl: sprinkle more GST_EXPORT
Tim-Philipp Müller [Fri, 11 Aug 2017 13:55:48 +0000 (14:55 +0100)]
gl: sprinkle more GST_EXPORT

7 years agompegts: make accidentally exported debug category symbol private
Tim-Philipp Müller [Fri, 11 Aug 2017 13:39:07 +0000 (14:39 +0100)]
mpegts: make accidentally exported debug category symbol private

Was never in header files, was just exported by accident because
of the gst_ prefix of the variable name.

7 years agocodecparsers: make debug categories static
Tim-Philipp Müller [Fri, 11 Aug 2017 13:21:05 +0000 (14:21 +0100)]
codecparsers: make debug categories static

They're only used internally. The VP9 parser's debug
category symbol was accidentally exported.

7 years agokmssink: Add bus-id property
Nicolas Dufresne [Wed, 9 Aug 2017 18:55:44 +0000 (14:55 -0400)]
kmssink: Add bus-id property

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

7 years agomeson: hide symbols by default unless explicitly exported
Tim-Philipp Müller [Fri, 11 Aug 2017 12:59:04 +0000 (13:59 +0100)]
meson: hide symbols by default unless explicitly exported

7 years agoopenh264dec: Drop current frame if passing it to the decoder caused an error
Sebastian Dröge [Thu, 10 Aug 2017 20:25:13 +0000 (23:25 +0300)]
openh264dec: Drop current frame if passing it to the decoder caused an error

Otherwise we will get it again later for output, however this frame will
never actually be output so we will shift timestamps.

This is especially bad if we're handling a live stream where the first
frames are not keyframes. We would output the keyframe with the
timestamp of the first frame, and everything would be too late when
arriving in the sink.

7 years agoopenh264dec: Don't unref NULL frame on EOS decoding error
Sebastian Dröge [Thu, 10 Aug 2017 20:21:46 +0000 (23:21 +0300)]
openh264dec: Don't unref NULL frame on EOS decoding error

7 years agomxfvc3: Use correct wrapping byte value
Sebastian Dröge [Thu, 10 Aug 2017 14:00:37 +0000 (17:00 +0300)]
mxfvc3: Use correct wrapping byte value

7 years agovideoaggregator: use colorimetry from find_best_format.
Mathieu Duponchelle [Wed, 9 Aug 2017 23:48:18 +0000 (01:48 +0200)]
videoaggregator: use colorimetry from find_best_format.

This increases the chances that we won't need to do any conversion
for a given pad.

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

7 years agovideoaggregator: improve find_best_format heuristic.
Mathieu Duponchelle [Wed, 9 Aug 2017 23:45:53 +0000 (01:45 +0200)]
videoaggregator: improve find_best_format heuristic.

The goal here is to minimize the work needed to bring all images
to a common format. A better criteria than the number of pads
with a given format is the number of pixels with a given format.

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

7 years agocompositor: improve conversion debugging
Mathieu Duponchelle [Wed, 9 Aug 2017 23:43:15 +0000 (01:43 +0200)]
compositor: improve conversion debugging

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

7 years agogl, wayland: mark more declared functions with GST_EXPORT
Tim-Philipp Müller [Thu, 10 Aug 2017 08:09:22 +0000 (09:09 +0100)]
gl, wayland: mark more declared functions with GST_EXPORT

7 years agotests: export symbols of parser tests helper lib and make it static
Tim-Philipp Müller [Thu, 10 Aug 2017 08:07:17 +0000 (09:07 +0100)]
tests: export symbols of parser tests helper lib and make it static

And only make the tests that use it link against the helper lib.

7 years agokmssink: Free devname before setting it
Nicolas Dufresne [Wed, 9 Aug 2017 18:59:19 +0000 (14:59 -0400)]
kmssink: Free devname before setting it

This avoids leaking the devname if the property is set twice.

7 years agompegtsdemux: remove obsolete function declaration
Mark Nauwelaerts [Wed, 5 Jul 2017 18:55:11 +0000 (20:55 +0200)]
mpegtsdemux: remove obsolete function declaration

7 years agocurlhttpsrc: set http-version default if curl does not have HTTP2 feature present
Alex Ashley [Wed, 9 Aug 2017 14:10:56 +0000 (15:10 +0100)]
curlhttpsrc: set http-version default if curl does not have HTTP2 feature present

If the version of the curl library is recent enough to allow support
for HTTP2 (i.e. CURL_VERSION_HTTP2 is defined) but does not actually
have that feature enabled, the call to
g_object_class_install_property() uses an incorrect default value for
the "http-version" property. The default should be 1.1 if HTTP2 is
not supported by libcurl or if not enabled by libcurl.

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

7 years agovtenc: assume 25 fps for unknown framerate
Nicola Murino [Wed, 9 Aug 2017 09:26:37 +0000 (11:26 +0200)]
vtenc: assume 25 fps for unknown framerate

This is better than reporting no latency at
all and then later failing in live pipelines.

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

7 years agopcapparse: support vlan 802.1q
Aaron Boxer [Thu, 3 Aug 2017 15:16:20 +0000 (11:16 -0400)]
pcapparse: support vlan 802.1q

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

7 years agopcapparse: Support pcap with nanosecond timestamps
Aaron Boxer [Thu, 3 Aug 2017 12:42:14 +0000 (08:42 -0400)]
pcapparse: Support pcap with nanosecond timestamps

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

7 years agoadaptivedemux: Fix leak of pad probes in GstAdaptiveDemuxStream
Tom Bailey [Wed, 2 Aug 2017 17:17:08 +0000 (18:17 +0100)]
adaptivedemux: Fix leak of pad probes in GstAdaptiveDemuxStream

This commit ensures that the idle probe which GstAdaptiveDemuxStream
adds to the upstream source pad is removed after use. Previously a new
probe was added to the pad whenever a fragment was downloaded, meaning
the number of pad probe callbacks being executed increased continually.

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

7 years agortmpsrc: fix flushing seek
George Kiagiadakis [Mon, 7 Aug 2017 11:25:26 +0000 (14:25 +0300)]
rtmpsrc: fix flushing seek

Previously this was broken, because a flushing seek causes unlock()
to be called and in the implementation of unlock() we close the
socket, so the seek errors out.

This patch fixes it by re-connecting before the seek.
Unfortunately, a seek does not work properly right after
re-connecting, so a small hack is also in place: we read 1 buffer
before seeking to allow librtmp to do its processing in RTMP_Read()

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

7 years agortmpsrc: remove unused macro
George Kiagiadakis [Mon, 7 Aug 2017 11:05:14 +0000 (14:05 +0300)]
rtmpsrc: remove unused macro

7 years agoadaptivedemux: Stop prepared streams as well as running streams
davecraig@unbalancedaudio.com [Tue, 8 Aug 2017 09:20:00 +0000 (09:20 +0000)]
adaptivedemux: Stop prepared streams as well as running streams

There can be twice as many stream tasks running as there are output
pads for playback of variant HLS playlists. Half of them are the
current pads, and the other half are the pads that are about to be
switched to due to a bitrate change.
The old code only stopped the current streams which could result
in a deadlock on stopping the pipeline. The changes force stopping
and joining of any prepared streams too.

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

7 years agocurlhttpsrc: Does version set fail because of HTTP2
Sam Hurst [Mon, 7 Aug 2017 15:41:27 +0000 (16:41 +0100)]
curlhttpsrc: Does version set fail because of HTTP2

Check to see if setting CURL_HTTP_VERSION_2_0 failed due to lack of HTTP/2
support or some bigger underlying libcurl failure

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

7 years agocurlhttpsrc: set http-version class property as enum
Philippe Normand [Mon, 7 Aug 2017 09:25:17 +0000 (10:25 +0100)]
curlhttpsrc: set http-version class property as enum

This matches better with the preferred_http_version which was already declared
as enum.

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