platform/upstream/gstreamer.git
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

7 years agoplayer: Constify the config argument to gst_player_get_video_snapshot()
Sebastian Dröge [Tue, 8 Aug 2017 08:05:15 +0000 (11:05 +0300)]
player: Constify the config argument to gst_player_get_video_snapshot()

This structure is only ever read from.

7 years agoRevert "kmssink: support videooverlay interface"
Nicolas Dufresne [Mon, 7 Aug 2017 20:00:16 +0000 (16:00 -0400)]
Revert "kmssink: support videooverlay interface"

This is causing hard failure for non-squared pixel. The fix isn't
trivial so taking offline by reverting.

This reverts commit db07f4507dad6561fc7e9320624aa7f0f0e10b36.

7 years agovideoaggregator: Don't mix up width and height
Sebastian Dröge [Fri, 4 Aug 2017 08:08:18 +0000 (11:08 +0300)]
videoaggregator: Don't mix up width and height

CID 1416129

7 years agoexamples: fix compiler warning in compositor crossfade example
Tim-Philipp Müller [Thu, 3 Aug 2017 19:21:17 +0000 (20:21 +0100)]
examples: fix compiler warning in compositor crossfade example

warning: control reaches end of non-void function

7 years agodocs: update for git master
Tim-Philipp Müller [Thu, 3 Aug 2017 19:17:03 +0000 (20:17 +0100)]
docs: update for git master

7 years agocompositor: update disted orc fallback files
Tim-Philipp Müller [Thu, 3 Aug 2017 19:14:20 +0000 (20:14 +0100)]
compositor: update disted orc fallback files

7 years agotests: examples: Add a simple crossfade example
Thibault Saunier [Wed, 12 Jul 2017 02:04:55 +0000 (22:04 -0400)]
tests: examples: Add a simple crossfade example

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

7 years agocompositor: Add support for crossfade blending
Thibault Saunier [Thu, 6 Jul 2017 18:26:21 +0000 (14:26 -0400)]
compositor: Add support for crossfade blending

Crossfading is a bit more complex than just having two pads with the
right keyframes as the blending is not exactly the same.

The difference is in the way we compute the alpha channel, in the case
of crossfading, we have to compute an additive operation between
the destination and the source (factored by the alpha property of both
the input pad alpha property and the crossfading ratio) basically so
that the crossfade result of 2 opaque frames is also fully opaque at any
time in the crossfading process, avoid bleeding through the layer
blending.

Some rationnal can be found in https://phabricator.freedesktop.org/T7773.

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

7 years agode265: Fix plugin name to match new plugin naming convention
Thibault Saunier [Thu, 20 Jul 2017 20:17:16 +0000 (16:17 -0400)]
de265: Fix plugin name to match new plugin naming convention

7 years agompegpsmux: Do not dereference a NULL pointer
Thibault Saunier [Fri, 14 Jul 2017 13:54:40 +0000 (09:54 -0400)]
mpegpsmux: Do not dereference a NULL pointer

7 years agodecklink: Fix indentation
Sebastian Dröge [Wed, 2 Aug 2017 15:43:54 +0000 (18:43 +0300)]
decklink: Fix indentation

7 years agoipcpipeline: don't use g_steal_pointer; it's not in the current required version...
George Kiagiadakis [Wed, 2 Aug 2017 07:46:46 +0000 (10:46 +0300)]
ipcpipeline: don't use g_steal_pointer; it's not in the current required version of GLib

We depend on GLib 2.40, g_steal_pointer was introduced in 2.44.

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

7 years agoipcpipeline: move to sys/ and make it dependent on platform support for unix sockets
George Kiagiadakis [Tue, 1 Aug 2017 14:07:59 +0000 (17:07 +0300)]
ipcpipeline: move to sys/ and make it dependent on platform support for unix sockets

7 years agodecklinksrc: Raise limit of devices to 16
Georg Lippitsch [Tue, 1 Aug 2017 14:15:13 +0000 (10:15 -0400)]
decklinksrc: Raise limit of devices to 16

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

7 years agomeson: enable building the ipcpipeline plugin
George Kiagiadakis [Tue, 1 Aug 2017 10:26:38 +0000 (13:26 +0300)]
meson: enable building the ipcpipeline plugin

7 years agotests/examples: add manual tests/examples for the ipcpipeline elements
George Kiagiadakis [Wed, 5 Jul 2017 13:56:24 +0000 (16:56 +0300)]
tests/examples: add manual tests/examples for the ipcpipeline elements

ipcpipeline1 is a very simple test that shows a short videotestsrc fragment.

ipc-play is a clone of gst-play that splits the pipeline in two
processes, running the source & demuxer on the master process
and the decoders & sinks on the slave.

7 years agotests/check: add automatic unit test suite for the ipcpipeline elements
George Kiagiadakis [Wed, 5 Jul 2017 13:53:48 +0000 (16:53 +0300)]
tests/check: add automatic unit test suite for the ipcpipeline elements

All tests run within a common framework for splitting processes
and making them interract properly with the gst check system.

7 years agoipcpipeline: introduce new plugin for inter-process pipelines
George Kiagiadakis [Wed, 5 Jul 2017 13:50:22 +0000 (16:50 +0300)]
ipcpipeline: introduce new plugin for inter-process pipelines

These elements allow splitting a pipeline across several processes,
with communication done by the ipcpipelinesink and ipcpipelinesrc
elements. The main use case is to split a playback pipeline into
a process that runs networking, parser & demuxer and another process
that runs the decoder & sink, for security reasons.

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

7 years agogl: return NULL mem if eglCreateImage failed
Julien Isorce [Tue, 1 Aug 2017 09:21:51 +0000 (10:21 +0100)]
gl: return NULL mem if eglCreateImage failed

Found on rpi when gpu_mem is too low so there is not enough memory to
create the eglimage. But still gst_buffer_pool_acquire_buffer succeeded.
And it leads to a CRITICAL assert:
  gst_egl_image_get_image: assertion 'GST_IS_EGL_IMAGE (image)' failed

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

7 years agokmssink: support videooverlay interface
Haihua Hu [Tue, 20 Jun 2017 05:11:27 +0000 (13:11 +0800)]
kmssink: support videooverlay interface

Implement videooverlay interface in kmssink, divided into two cases:
when driver supports scale, then we do refresh in show_frame(); if
not, send a reconfigure event to upstream and re-negotiate, using the
new size.

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

7 years agoaggregator: log all events
Stefan Sauer [Sun, 30 Jul 2017 10:17:57 +0000 (12:17 +0200)]
aggregator: log all events

We already log a few events explicitly, just log them all with more detail.

7 years agoaggregator: fix header formatting
Tim-Philipp Müller [Sat, 29 Jul 2017 15:54:38 +0000 (16:54 +0100)]
aggregator: fix header formatting

7 years agogl: document missing GstGLShader functions
Matthew Waters [Fri, 28 Jul 2017 15:58:38 +0000 (16:58 +0100)]
gl: document missing GstGLShader functions

7 years agogl/docs: some documentation updates
Matthew Waters [Fri, 28 Jul 2017 10:00:12 +0000 (11:00 +0100)]
gl/docs: some documentation updates

Add some missing/incomplete docs

7 years agogl/docs: correctly name our objects in the documentation GstGl -> GstGL
Matthew Waters [Wed, 26 Jul 2017 09:04:09 +0000 (19:04 +1000)]
gl/docs: correctly name our objects in the documentation GstGl -> GstGL

7 years agogl/docs: document GstGLFormat enum
Matthew Waters [Wed, 26 Jul 2017 09:03:15 +0000 (19:03 +1000)]
gl/docs: document GstGLFormat enum

7 years agocurl: curlqueue: add symbol name to avoid confusing gtkdoc
Reynaldo H. Verdejo Pinochet [Thu, 27 Jul 2017 00:22:31 +0000 (17:22 -0700)]
curl: curlqueue: add symbol name to avoid confusing gtkdoc

7 years agocurlhttpsrc: do not check for NULL before g_free()
Reynaldo H. Verdejo Pinochet [Wed, 26 Jul 2017 23:51:50 +0000 (16:51 -0700)]
curlhttpsrc: do not check for NULL before g_free()

g_free() is NULL-safe.

7 years agocurlhttpsrc: Fix flagged Coverity errors
Sam Hurst [Wed, 26 Jul 2017 16:06:17 +0000 (17:06 +0100)]
curlhttpsrc: Fix flagged Coverity errors

Fixes CIDs 1415707 - 1415717

7 years agocurl: Reorganise header files to fix macOS builds
Sam Hurst [Wed, 26 Jul 2017 16:43:19 +0000 (17:43 +0100)]
curl: Reorganise header files to fix macOS builds

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

7 years agoaudioaggregator: use local var
Stefan Sauer [Sun, 23 Jul 2017 11:26:23 +0000 (13:26 +0200)]
audioaggregator: use local var

Instead of the self->priv-> deref use the local var we created already.

7 years agocurlhttpsrc: Fix compilation without debugging system enabled
Edward Hervey [Wed, 26 Jul 2017 07:19:42 +0000 (09:19 +0200)]
curlhttpsrc: Fix compilation without debugging system enabled

7 years agocurl: Add curlhttpsrc element
Sam Hurst [Tue, 25 Jul 2017 14:23:57 +0000 (15:23 +0100)]
curl: Add curlhttpsrc element

Merged from https://github.com/bbc/gst-curlhttpsrc commit
  f8aabcfc5c50a44f3362de831377d6e86dcd2d49

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

7 years agokmsallocator: add driver pitch support for planar formats
Guillaume Desmottes [Mon, 17 Jul 2017 14:07:21 +0000 (16:07 +0200)]
kmsallocator: add driver pitch support for planar formats

We used to to handle the driver pitch only for single plan video format.
Add support for multi planes format by re-using the extrapolate function
from the v4l2 element.
Also use this pitch to calculate the proper offsets.

Prevent DRM drivers to pick a slow path if the pitches/offsets don't
match the ones it reported.

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

7 years agokmsallocator: inline gst_kms_allocator_alloc_empty()
Guillaume Desmottes [Mon, 17 Jul 2017 13:58:57 +0000 (15:58 +0200)]
kmsallocator: inline gst_kms_allocator_alloc_empty()

No semantic change, just renamed the 'tmp' variable to a more meaningful
name and to use the same structure as in gst_kms_allocator_bo_alloc().

Needed as I'm going to move the gst_memory_init() call after the
allocation of the DUMB buffer.

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

7 years agomxfdemux: Fix compilation with gcc 4.8.4
Sebastian Dröge [Tue, 25 Jul 2017 07:03:25 +0000 (10:03 +0300)]
mxfdemux: Fix compilation with gcc 4.8.4

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

7 years agoaggregator: Remove the GAP event from the queue before queueing up the GAP buffer
Sebastian Dröge [Mon, 24 Jul 2017 15:38:57 +0000 (18:38 +0300)]
aggregator: Remove the GAP event from the queue before queueing up the GAP buffer

Otherwise check_events() will not remove the GAP event (as the queue
tail is not the event anymore but the GAP buffer), then the GAP buffer
is handled, then the GAP event is handled again, ... forever.

7 years agomxfdemux: Correctly consider frame reordering for timecode calculation
Sebastian Dröge [Mon, 24 Jul 2017 14:00:02 +0000 (17:00 +0300)]
mxfdemux: Correctly consider frame reordering for timecode calculation

7 years agomxfdemux: Use material track edit rate for component PTS offsetting
Sebastian Dröge [Mon, 24 Jul 2017 13:54:22 +0000 (16:54 +0300)]
mxfdemux: Use material track edit rate for component PTS offsetting

7 years agomxfdemux: Output timecodes for video streams
Sebastian Dröge [Mon, 24 Jul 2017 13:49:19 +0000 (16:49 +0300)]
mxfdemux: Output timecodes for video streams

7 years agomxfdemux: Keep track of component start positions and material track positions
Sebastian Dröge [Mon, 24 Jul 2017 13:21:31 +0000 (16:21 +0300)]
mxfdemux: Keep track of component start positions and material track positions

This allows us to know exactly where in the material track we are, and
how to convert from a PTS for a source track to the actual PTS of the
material track (i.e. by adding the component start position).

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

7 years agotsmux: Fix make distcheck
Sebastian Dröge [Fri, 21 Jul 2017 09:28:23 +0000 (12:28 +0300)]
tsmux: Fix make distcheck

7 years agogl: fix g-i annotations for glframebuffer
Tim-Philipp Müller [Fri, 21 Jul 2017 07:43:45 +0000 (08:43 +0100)]
gl: fix g-i annotations for glframebuffer

gstglframebuffer.c:176: Error: GstGL: annotations not supported for tag "Since:".

7 years agotsmux: Add mpegtsmux_jpeg2000.c to meson.build
Sebastian Dröge [Fri, 21 Jul 2017 06:33:54 +0000 (09:33 +0300)]
tsmux: Add mpegtsmux_jpeg2000.c to meson.build

7 years agotsmux: Store PES payload size in a 32 bit integer
Sebastian Dröge [Fri, 21 Jul 2017 06:27:20 +0000 (09:27 +0300)]
tsmux: Store PES payload size in a 32 bit integer

While the size in the packet is only 16 bits, we need to handle bigger
sizes without overflowing. For video streams this can happen, 0 is
written to the stream instead.

This fixes muxing of buffers >= 2**16.

7 years agotsmux/tsdemux: Add support for JPEG2000
Aaron Boxer [Wed, 19 Jul 2017 14:14:21 +0000 (10:14 -0400)]
tsmux/tsdemux: Add support for JPEG2000

Based on patches by Milos Seleceni.

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

7 years agod3dsinkwrapper: Make the DLL name match the plugin name
Nicolas Dufresne [Thu, 20 Jul 2017 14:29:18 +0000 (10:29 -0400)]
d3dsinkwrapper: Make the DLL name match the plugin name

Otherwise, since 1.12, the plugin gets blacklisted.

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

7 years agodecklink: Fix building with MSYS2's MinGW
Nirbheek Chauhan [Thu, 20 Jul 2017 12:39:15 +0000 (18:09 +0530)]
decklink: Fix building with MSYS2's MinGW

Reported and tested by Philippe Renon.

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

7 years agomeson: fix potentially undefined shm_deps variable
Alessandro Decina [Thu, 20 Jul 2017 08:51:53 +0000 (18:51 +1000)]
meson: fix potentially undefined shm_deps variable

7 years agomeson: make smoothstreaming depend on gio
Alessandro Decina [Thu, 20 Jul 2017 08:43:11 +0000 (18:43 +1000)]
meson: make smoothstreaming depend on gio

7 years agomeson: specify fallback for libgmodule_dep
Alessandro Decina [Thu, 20 Jul 2017 07:49:59 +0000 (17:49 +1000)]
meson: specify fallback for libgmodule_dep

Fixes build with glib built as a subproject.

7 years agodecklink: Fix format specifier warnings in logging v2
Nirbheek Chauhan [Tue, 18 Jul 2017 22:49:34 +0000 (04:19 +0530)]
decklink: Fix format specifier warnings in logging v2

HRESULT is unsigned long on Windows, but the Decklink headers define
it to 'int' on Linux. Confusingly, the defines that talk about the
possible return values for it use long constants. The easy fix would
be to change the linux/LinuxCOM.h header, but that's copied from the
decklink SDK.

Change the logging to always upcast to unsigned long while printing
HRESULT for consistency across platforms.

7 years agodecklink: Fix CI failure due to missing WINAPI definition
Nirbheek Chauhan [Tue, 18 Jul 2017 22:44:13 +0000 (04:14 +0530)]
decklink: Fix CI failure due to missing WINAPI definition

WINAPI is for the windows calling convention to use, and should expand
to nothing on Linux.

https://build.gnome.org/continuous/buildmaster/builds/2017/07/18/76/build/log-gst-plugins-bad.txt

7 years agodecklink: Fix format specifier warnings in logging
Nirbheek Chauhan [Tue, 18 Jul 2017 20:51:42 +0000 (02:21 +0530)]
decklink: Fix format specifier warnings in logging

gstdecklinkvideosrc.cpp:425:7: warning: format '%x' expects argument of type 'unsigned int', but argument 8 has type 'HRESULT {aka long int}' [-Wformat]

[and so on]

7 years agodecklink: Fix build on mingw32 by adding missing WINAPI
Nirbheek Chauhan [Tue, 18 Jul 2017 20:49:47 +0000 (02:19 +0530)]
decklink: Fix build on mingw32 by adding missing WINAPI

gstdecklinkaudiosink.cpp:155:19: error: conflicting type attributes specified for 'virtual HRESULT GStreamerAudioOutputCallback::QueryInterface(const IID&, void**)'
In file included from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/objbase.h:153:0,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/ole2.h:16,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/windows.h:94,
                 from /var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/rpc.h:16,
                 from win/DeckLinkAPI.h:27,
                 from gstdecklink.h:35,
                 from gstdecklinkaudiosink.h:27,
                 from gstdecklinkaudiosink.cpp:25:
/var/lib/jenkins/workspace/cerbero-cross-mingw32/workdir/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.7.3/../../../../i686-w64-mingw32/include/unknwn.h:67:25: error:   overriding 'virtual HRESULT IUnknown::QueryInterface(const IID&, void**)'

(and many more)

https://ci.gstreamer.net/job/cerbero-cross-mingw32/6407/console

7 years agovideo: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 11:46:09 +0000 (12:46 +0100)]
video: mark symbols explicitly for export with GST_EXPORT

7 years agouridownloader: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 11:45:14 +0000 (12:45 +0100)]
uridownloader: mark symbols explicitly for export with GST_EXPORT

7 years agoplayer: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 11:43:26 +0000 (12:43 +0100)]
player: mark symbols explicitly for export with GST_EXPORT

7 years agoopencv: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 00:16:28 +0000 (01:16 +0100)]
opencv: mark symbols explicitly for export with GST_EXPORT

7 years agompegts: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Tue, 18 Jul 2017 00:10:56 +0000 (01:10 +0100)]
mpegts: mark symbols explicitly for export with GST_EXPORT

7 years agophotography: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:49:41 +0000 (00:49 +0100)]
photography: mark symbols explicitly for export with GST_EXPORT

7 years agoinsertbin: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:23:09 +0000 (00:23 +0100)]
insertbin: mark symbols explicitly for export with GST_EXPORT

7 years agocodecparsers: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Sat, 20 May 2017 12:19:07 +0000 (13:19 +0100)]
codecparsers: mark symbols explicitly for export with GST_EXPORT

7 years agobasecamerabinsrc: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:31:36 +0000 (00:31 +0100)]
basecamerabinsrc: mark symbols explicitly for export with GST_EXPORT

7 years agoaggregator: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:30:51 +0000 (00:30 +0100)]
aggregator: mark symbols explicitly for export with GST_EXPORT

7 years agoaudio: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:29:56 +0000 (00:29 +0100)]
audio: mark symbols explicitly for export with GST_EXPORT

7 years agoallocators: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:27:54 +0000 (00:27 +0100)]
allocators: mark symbols explicitly for export with GST_EXPORT

7 years agoadaptivedemux: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:26:23 +0000 (00:26 +0100)]
adaptivedemux: mark symbols explicitly for export with GST_EXPORT