platform/upstream/gstreamer.git
6 years agotests: udpsrc: verify the correct amount of bytes is sent to the socket
George Kiagiadakis [Fri, 25 Aug 2017 12:19:37 +0000 (15:19 +0300)]
tests: udpsrc: verify the correct amount of bytes is sent to the socket

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

6 years agotests: udpsrc: ensure test won't timeout if the buffers are already received
George Kiagiadakis [Fri, 25 Aug 2017 11:59:06 +0000 (14:59 +0300)]
tests: udpsrc: ensure test won't timeout if the buffers are already received

Sometimes all the buffers are received before the time we lock the
check_mutex, in which case g_cond_wait will wait forever for another
one. Just check if this is the case before waiting.

https://bugzilla.gnome.org/attachment.cgi?id=358397

6 years agotests: udpsrc: fix test_udpsrc to actually run and fix locking
George Kiagiadakis [Fri, 25 Aug 2017 11:45:52 +0000 (14:45 +0300)]
tests: udpsrc: fix test_udpsrc to actually run and fix locking

Previously this would silently be skipped because 1600 != 1400
and there is no assertion on this call.

Also unlock check_mutex after use.

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

6 years agosplitmuxsink: added a "split now" action signal
John Nikolaides [Thu, 21 Sep 2017 15:23:54 +0000 (18:23 +0300)]
splitmuxsink: added a "split now" action signal

Now, the video file can be split at an arbitrary time chosen by the user.

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

6 years agomultiudpsink: fix bind address leak
Alvaro Margulis [Fri, 8 Dec 2017 00:31:32 +0000 (00:31 +0000)]
multiudpsink: fix bind address leak

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

6 years agoRevert "flacparse: fix header rewriting being ignored"
Tim-Philipp Müller [Thu, 7 Dec 2017 11:15:19 +0000 (11:15 +0000)]
Revert "flacparse: fix header rewriting being ignored"

This caused broken metadata and also looks a bit dodgy.
Revert until we can figure out a solution that works for
all cases and doesn't break anything.

This reverts commit adeee44b07a173b9ab4253216caba8f66dd43abb.

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

6 years agov4l2videodec: Handle drivers that only round up height
Philipp Zabel [Tue, 5 Dec 2017 14:14:04 +0000 (15:14 +0100)]
v4l2videodec: Handle drivers that only round up height

Commit 1f31715c9861 ("v4l2videodec: use visible size, not coded size,
for downstream negotiation filter") added support for removing the
padding obtained as the difference between width/height from G_FMT and
visible width/height from G_SELECTION from the probed caps obtained
via TRY_FMT.
This patch fixes the padding removal for drivers that only round up
height, but not width, to the padded frame size. This might happen
because horizontal padding can be handled by line stride (bytesperline),
but there is no such thing as plane stride in the V4L2 API for
single-buffer planar formats.

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

6 years agortspsrc: Add a signal to allow outgoing messages to be modified or dropped
Matt Staples [Wed, 1 Nov 2017 14:21:37 +0000 (08:21 -0600)]
rtspsrc: Add a signal to allow outgoing messages to be modified or dropped

This feature allows applications to implement extensions to the RTSP
protocol, such as those defined in the ONVIF Streaming Specification.

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

6 years agortpsession: Handle zero length feedback packets
Haakon Sporsheim [Fri, 25 Aug 2017 09:57:26 +0000 (11:57 +0200)]
rtpsession: Handle zero length feedback packets

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

6 years agoqtdemux: fix debug log for 'hvcC' codec_data
Florian Zwoch [Mon, 10 Jul 2017 13:19:34 +0000 (15:19 +0200)]
qtdemux: fix debug log for 'hvcC' codec_data

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

6 years agotests: rtpsession: refactor tests to use GstHarness
Havard Graff [Fri, 1 Dec 2017 12:04:41 +0000 (13:04 +0100)]
tests: rtpsession: refactor tests to use GstHarness

This patch simplifies the tests (44% less code) and
makes them much more readable.

The provided SessionHarness also makes it much easier
to write new tests for rtpsession.

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

6 years agoflacparse: Request at least the full header size when parsing headers
Sebastian Dröge [Fri, 24 Nov 2017 08:36:01 +0000 (10:36 +0200)]
flacparse: Request at least the full header size when parsing headers

Otherwise baseparse will incrementally send us bigger buffers until the
full header size is reached, which is not only pointless but also means
that baseparse will reallocate and copy into a bigger buffer for every
input buffers. In pull mode that's done in 64kb increments, in push mode
usually in much smaller increments, causing a lot of overhead for
example when parsing high-quality coverart.

6 years agov4l2object: Fix dmabuf support detection
Florent Thiéry [Wed, 29 Nov 2017 10:29:31 +0000 (11:29 +0100)]
v4l2object: Fix dmabuf support detection

This resulted in improper selection of dmabuf on unsupported drivers.
The checked ioctl errno was not correct.

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

6 years agoAutomatic update of common submodule
Matthew Waters [Mon, 27 Nov 2017 09:10:51 +0000 (20:10 +1100)]
Automatic update of common submodule

From 3f4aa96 to e8c7a71

6 years agoautotools: stop controlling symbol visibility with -export-symbols-regex
Tim-Philipp Müller [Sun, 26 Nov 2017 15:13:15 +0000 (15:13 +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 agortspsrc: Do more checks for seekability
Edward Hervey [Fri, 24 Nov 2017 14:37:44 +0000 (15:37 +0100)]
rtspsrc: Do more checks for seekability

When receiving a seek event, check whether we can actually seek based
on the information the server provided.

Also add more documentation on what the seekable field means

6 years agoqtmux: Always update reserved-duration-remaining
Jan Schmidt [Fri, 24 Nov 2017 13:53:42 +0000 (00:53 +1100)]
qtmux: Always update reserved-duration-remaining

If a reserved-max-duration is set, we should always track
and update the reserved-duration-remaining estimate, even
if we're not sending periodic moov updates downstream for
full robust muxing.

6 years agosplitmuxsink: Use muxer reserved space properties if present.
Jan Schmidt [Tue, 7 Apr 2015 13:53:19 +0000 (23:53 +1000)]
splitmuxsink: Use muxer reserved space properties if present.

If the use-robust-muxing property is set, check if the
assigned muxer has reserved-max-duration and
reserved-duration-remaining properties, and if so set
the configured maximum duration to the reserved-max-duration
property, and monitor the remaining space to start
a new file if the reserved header space is about to run out -
even though it never ought to.

6 years agosplitmux: Fix file switch-on-caps-change.
Jan Schmidt [Fri, 24 Nov 2017 05:56:03 +0000 (16:56 +1100)]
splitmux: Fix file switch-on-caps-change.

Switching to a new fragment because the input caps have
changed didn't properly end the previous file. Use the normal
EOS sequence to ensure that happens. Add a test that it works.

6 years agojpegenc: Update output caps on input caps change
Jan Schmidt [Fri, 24 Nov 2017 05:53:40 +0000 (16:53 +1100)]
jpegenc: Update output caps on input caps change

If the input changes width/height that should be reflected
in the output caps, so make sure they get updated

6 years agortph265depay: don't insert SPS/PPS inline for hvc1 output
Tim-Philipp Müller [Tue, 5 Sep 2017 14:55:03 +0000 (15:55 +0100)]
rtph265depay: don't insert SPS/PPS inline for hvc1 output

Only for byte-stream or hev1. For hvc1 the SPS/PPS are in the
caps as codec_data field and in this case they shouldn't be in
the stream data as well. The output caps should be updated with
the new codec_data if needed, for hvc1.

6 years agortph265depay: store negotiated output format as enum
Tim-Philipp Müller [Tue, 5 Sep 2017 14:47:42 +0000 (15:47 +0100)]
rtph265depay: store negotiated output format as enum

We keep the boolean byte_stream around since it's nicer for
readability and most of the code just cares about byte_stream
or not. This is useful for future-proofing the code for when
we add support for hev1 output as well.

6 years agortph265depay: add support for hvc1 as output format
Tim-Philipp Müller [Tue, 29 Aug 2017 16:05:51 +0000 (17:05 +0100)]
rtph265depay: add support for hvc1 as output format

6 years agortph265pay: don't add trailing zeros to VPS/PPS/SPS
Tim-Philipp Müller [Tue, 8 Aug 2017 17:58:11 +0000 (18:58 +0100)]
rtph265pay: don't add trailing zeros to VPS/PPS/SPS

This would happen if input is byte-stream with four-byte
sync markers instead of three-byte ones. The code that
scans for sync markers will place the start of the NALU
on the third-last byte of the NALU sync marker, which
means that any additional zeros may be counted as belonging
to the previous NALU instead of being part of the next sync
marker. Fix that so we don't send VPS/SPS/PPS with trailing
zeros in this case.

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

6 years agortph265depay: assemble AUs into downstream-allocated memory
Tim-Philipp Müller [Fri, 16 Jun 2017 11:41:49 +0000 (12:41 +0100)]
rtph265depay: assemble AUs into downstream-allocated memory

When merging NALs into AUs, use downstream-provided allocator
to allocate memory and copy NALs directly into that memory when
assembling them.

6 years agortph265depay: try to negotiate an allocator with downstream
Tim-Philipp Müller [Fri, 16 Jun 2017 11:30:13 +0000 (12:30 +0100)]
rtph265depay: try to negotiate an allocator with downstream

6 years agortph265depay: simplify buffer accumulation control flow
Tim-Philipp Müller [Fri, 16 Jun 2017 11:13:32 +0000 (12:13 +0100)]
rtph265depay: simplify buffer accumulation control flow

There is no difference between pushing out a buffer directly
with gst_rtp_base_depayload_push() and returning it from the
process function. The base class will just call _depayload_push()
on the returned buffer as well.

So instead of marshalling buffers through three layers and back,
just push them from one place in handle_nal() and always return
NULL from the process vfunc. This simplifies the code a little.

Also rename _push_fragmentation_unit() to _finish_fragmentation_unit()
for clarity. Push sounds like it means being pushed out, whereas
it might just be pushed into an adapter.

This change has the side-effect that multiple NALs in a single STAP
(such as SPS/PPS) may no longer be pushed out as a single buffer if
we output NALs in byte-stream format (i.e. not aggregate AUs), but
that shouldn't really make any difference to anyone.

6 years agortph265depay: fix crash with empty sprops-parameters
Tim-Philipp Müller [Fri, 16 Jun 2017 10:18:16 +0000 (11:18 +0100)]
rtph265depay: fix crash with empty sprops-parameters

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

6 years agortph265depay: minor clean-up
Tim-Philipp Müller [Fri, 16 Jun 2017 11:20:34 +0000 (12:20 +0100)]
rtph265depay: minor clean-up

Declutter caps update code a bit.

6 years agotests: rtp-payloading: add unit test for rtph264pay codec_data
Tim-Philipp Müller [Tue, 8 Aug 2017 12:10:15 +0000 (13:10 +0100)]
tests: rtp-payloading: add unit test for rtph264pay codec_data

Make sure no trailing zero bytes sneak into our SPS or PPS.

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

6 years agortph264pay: don't add trailing zeros to PPS/SPS
Philip Craig [Sat, 5 Jul 2014 06:21:48 +0000 (06:21 +0000)]
rtph264pay: don't add trailing zeros to PPS/SPS

This would happen if input is byte-stream with four-byte
sync markers instead of three-byte ones. The code that
scans for sync markers will place the start of the NALU
on the third-last byte of the NALU sync marker, which
means that any additional zeros may be counted as belonging
to the previous NALU instead of being part of the next sync
marker. Fix that so we don't send SPS/PPS with trailing
zeros in this case.

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

6 years agotests: rtph264depay: add test for using downstream memory allocator
Tim-Philipp Müller [Sat, 20 May 2017 14:50:22 +0000 (15:50 +0100)]
tests: rtph264depay: add test for using downstream memory allocator

6 years agortph264depay: assemble AUs into downstream-allocated memory
Tim-Philipp Müller [Fri, 2 Jun 2017 23:58:05 +0000 (00:58 +0100)]
rtph264depay: assemble AUs into downstream-allocated memory

When merging NALs into AUs, use downstream-provided allocator
to allocate memory and copy NALs directly into that memory when
assembling them.

6 years agortph264depay: try to negotiate an allocator with downstream
Tim-Philipp Müller [Fri, 2 Jun 2017 20:27:40 +0000 (21:27 +0100)]
rtph264depay: try to negotiate an allocator with downstream

6 years agortph264depay: minor clean-up
Tim-Philipp Müller [Fri, 2 Jun 2017 19:54:20 +0000 (20:54 +0100)]
rtph264depay: minor clean-up

Declutter caps update code a bit.

6 years agoqtdemux: Run gst-indent
Edward Hervey [Thu, 23 Nov 2017 07:00:58 +0000 (08:00 +0100)]
qtdemux: Run gst-indent

6 years agorganalysis: Fix left shift of signed values
Edward Hervey [Thu, 23 Nov 2017 06:59:07 +0000 (07:59 +0100)]
rganalysis: Fix left shift of signed values

left shifting signed values is undefined.

Instead of doing "x << offs" which is undefined, do the equivalent
"x * (1 << offs)" which is well defined

6 years agoqtdemux: Check presence of bitrate tags
Edward Hervey [Thu, 23 Nov 2017 06:57:44 +0000 (07:57 +0100)]
qtdemux: Check presence of bitrate tags

Check whether the tag was present before printing it out

CID #1418501

6 years agortspsrc: Use the proper maximum value for seekable
Edward Hervey [Tue, 21 Nov 2017 08:33:49 +0000 (09:33 +0100)]
rtspsrc: Use the proper maximum value for seekable

it's a gfloat, not a gdouble

6 years agoqtdemux: Use new GST_SEQNUM_INVALID constant
Jan Schmidt [Fri, 17 Nov 2017 15:27:50 +0000 (02:27 +1100)]
qtdemux: Use new GST_SEQNUM_INVALID constant

6 years agosplitmuxsrc: Don't return FALSE from event handling.
Jan Schmidt [Fri, 17 Nov 2017 15:01:58 +0000 (02:01 +1100)]
splitmuxsrc: Don't return FALSE from event handling.

Returning FALSE because we drop an event means that
internal sources like qtdemux might throw an error
and break the whole pipeline. The only time it can
happen is either flushing or shutdown, and those
will be handled anyway.

6 years agoqtdemux: reset reused QtDemuxStream while parsing a new 'trak'
Jun Xie [Sun, 22 Oct 2017 10:26:12 +0000 (18:26 +0800)]
qtdemux: reset reused QtDemuxStream while parsing a new 'trak'

if QtDemuxStream is reused, then we need to reset it.

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

7 years agoisomp4: Add official fourcc for VP8 codec
Seungha Yang [Mon, 13 Nov 2017 01:43:11 +0000 (10:43 +0900)]
isomp4: Add official fourcc for VP8 codec

fourcc for VP8 codec is "vp08" defined by spec. To follow it,
add it to demux and change legacy VP8 fourcc "VP80" to "vp08" in mux.
Also, enable sync table in case of VP8 codec.
See also https://www.webmproject.org/vp9/mp4/

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

7 years agoisomp4: Add support VP9 codec
Seungha Yang [Mon, 13 Nov 2017 01:38:06 +0000 (10:38 +0900)]
isomp4: Add support VP9 codec

Add fourcc for VP9 codec and support it by qtdemux and qtmux
See also https://www.webmproject.org/vp9/mp4/

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

7 years agomatroskademux: Remove bogus error message
Edward Hervey [Mon, 13 Nov 2017 12:51:20 +0000 (13:51 +0100)]
matroskademux: Remove bogus error message

It's just informational

7 years agortpmpvpay: Don't create empty buffer list
Edward Hervey [Fri, 10 Nov 2017 14:51:05 +0000 (15:51 +0100)]
rtpmpvpay: Don't create empty buffer list

If there's nothing to send, just return

7 years agosouphttpsrc: Remove range header when seek to 0
paul.kim [Mon, 13 Mar 2017 09:14:12 +0000 (18:14 +0900)]
souphttpsrc: Remove range header when seek to 0

This fixes the previous range header is remained if seek to 0 is
attempted.

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

7 years agosouphttpsrc: Fix seeking back to 0
Edward Hervey [Wed, 8 Nov 2017 15:34:01 +0000 (16:34 +0100)]
souphttpsrc: Fix seeking back to 0

This is a regression introduced by "03db374 - souphttpsrc: retry
request on early termination from the server"

The problem was that when seeking back to 0, we would not end up calling
add_range_header() which in addition to adding range headers *ALSO* sets
the read_position to the requested one.

This would result in a wide variety of later failures, like reading
again and again instead of stopping properly.

7 years agomatroskademux: Add parsing Colour element
Seungha Yang [Tue, 7 Nov 2017 09:03:53 +0000 (18:03 +0900)]
matroskademux: Add parsing Colour element

... and forward colorimetry to downstream. The Colour element describes
various color information (similar to 'colr' box in isobmff).
Note that, due to the comparatively limited syntax for color information
in vpx codecs, the color information in mkv/wemb container level
should be used for sophisticated color handling (e.g., HDR video).

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

7 years agov4l2deviceprovider: Ignore touch sensing devices
Jan Alexander Steffens (heftig) [Thu, 19 Oct 2017 12:02:37 +0000 (14:02 +0200)]
v4l2deviceprovider: Ignore touch sensing devices

With GST_V4L2_USE_LIBV4L2=1, my laptop's touchpad shows up as a video
source device in gst-device-monitor, but attempting to stream from it
fails because the device doesn't actually support any video formats.

name  : Synaptics RMI4 Touch Sensor
class : Video/Source
caps  : video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
        video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
        video/x-raw, format=(string)BGR, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
        video/x-raw, format=(string)RGB, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
properties:
        udev-probed = true
        device.bus_path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0
        sysfs.path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0
        device.subsystem = video4linux
        device.product.name = "Synaptics\ RMI4\ Touch\ Sensor"
        device.capabilities = :capture:
        device.api = v4l2
        device.path = /dev/v4l-touch0
        v4l2.device.driver = rmi4_f54
        v4l2.device.card = "Synaptics\ RMI4\ Touch\ Sensor"
        v4l2.device.bus_info = rmi4:rmi4-00.fn54
        v4l2.device.version = 265480 (0x00040d08)
        v4l2.device.capabilities = 2501902337 (0x95200001)
        v4l2.device.device_caps = 354418689 (0x15200001)
gst-launch-1.0 v4l2src device=/dev/v4l-touch0 ! ...

v4l2-ctl -d /dev/v4l-touch0 --list-formats reports:

ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'TD16'
        Name        : 16-bit signed deltas

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'TD08'
        Name        : 8-bit signed deltas

        Index       : 2
        Type        : Video Capture
        Pixel Format: 'TU16'
        Name        : 16-bit unsigned touch data

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

7 years agortpg722pay: Add encoding-params to the src caps template
Youness Alaoui [Fri, 3 Nov 2017 17:27:50 +0000 (13:27 -0400)]
rtpg722pay: Add encoding-params to the src caps template

The G722 payload only accepts G722 audio with channels=1, so it must
specify the encoding-params=1 in its src caps, otherwise it causes issues
with farstream which thinks it supports 2 channels G722 and when
confronted with a remote that has G722/8000/2, it will negotiate it
and error out with a not-negotiated when the caps don't intersect
at runtime.

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

7 years agov4l2allocator: Add support for data_offset
Nicolas Dufresne [Fri, 6 Oct 2017 21:36:34 +0000 (17:36 -0400)]
v4l2allocator: Add support for data_offset

In MPLANE mode, the driver may set data_offset, which represent some
padding at the start of the buffer used internally. This portion of the
data need to be skipped, though it is included in bytesused.

This patch removes frame size sanity check as the method used will no
longer work. This check was simply there to help detect broken kernel
drivers. It would be re-implement by estimating the plane size, which is
not totally trivial and may be too much work for a simple debug check.

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

7 years agortspsrc: Add "accept-certificate" signal for manually checking a TLS certificate...
Sebastian Dröge [Mon, 17 Jul 2017 14:09:18 +0000 (17:09 +0300)]
rtspsrc: Add "accept-certificate" signal for manually checking a TLS certificate for validity

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

7 years agortspsrc: Print RTSP/SDP messages to gstreamer log instead of stdout
Sangkyu Park [Mon, 30 Oct 2017 10:15:56 +0000 (19:15 +0900)]
rtspsrc: Print RTSP/SDP messages to gstreamer log instead of stdout

- 'debug' property is deprecated
- All RTSP messages are printed to gstreamer log with 'log' level.

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

7 years agortpsesson: downgrade message level to debug when detected XR
Justin Kim [Wed, 1 Nov 2017 06:29:58 +0000 (15:29 +0900)]
rtpsesson: downgrade message level to debug when detected XR

When XR packet is detected, warning message leads to misunderstandings.
Until RFC3611 is implemented in gst-plugins-base, the level needs to
be downgraded to avoid confusion.

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

7 years agogst-plugins-good: atoms_recovery: Handled buffer mapping failure
Ashish Kumar [Tue, 24 Oct 2017 14:42:29 +0000 (20:12 +0530)]
gst-plugins-good: atoms_recovery: Handled buffer mapping failure

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

7 years agoatomsrecovery: read from mdat only what is on headers
Thiago Santos [Sun, 9 Jul 2017 05:11:49 +0000 (22:11 -0700)]
atomsrecovery: read from mdat only what is on headers

It is possible that the mdat has more data than what was stored in the
headers file. If we put that to the output the file will have bogus data
at the end and some players will complain.

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

7 years agoisomp4: atomsrecovery: handle common and large atom headers
Thiago Santos [Thu, 6 Jul 2017 05:23:21 +0000 (22:23 -0700)]
isomp4: atomsrecovery: handle common and large atom headers

Do not assume all files are large files. Check and use the short or
extended atom size field only if needed.

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

7 years agopngdec: fix build with libpng versions between 1.2 and 1.5.1 (revised)
Andreas Frisch [Fri, 20 Oct 2017 09:08:24 +0000 (11:08 +0200)]
pngdec: fix build with libpng versions between 1.2 and 1.5.1 (revised)

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

7 years agopngdec: fix build with libpng versions between 1.2 and 1.5.1
Andreas Frisch [Thu, 19 Oct 2017 16:23:34 +0000 (18:23 +0200)]
pngdec: fix build with libpng versions between 1.2 and 1.5.1

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

7 years agopngdec: Extract icc profiles and send them downstreams for colormanagement elements
Andreas Frisch [Thu, 19 Oct 2017 14:17:45 +0000 (16:17 +0200)]
pngdec: Extract icc profiles and send them downstreams for colormanagement elements

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

7 years agortsp: Add missing Since marker
Thibault Saunier [Mon, 16 Oct 2017 12:20:47 +0000 (14:20 +0200)]
rtsp: Add missing Since marker

7 years agogstgdkpixbufdec: stop pretending to decode gifs.
Mathieu Duponchelle [Tue, 13 Jun 2017 16:51:32 +0000 (18:51 +0200)]
gstgdkpixbufdec: stop pretending to decode gifs.

If you can't decode an animated gif, you can't decode a gif,
so stop squatting GST_RANK_SECONDARY for that format, libav
does a better job.

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

7 years agodirectsoundsink: simplify how DirecSoundBuffer is cleared
Philippe Renon [Thu, 28 Sep 2017 20:51:57 +0000 (22:51 +0200)]
directsoundsink: simplify how DirecSoundBuffer is cleared

we always want to clear the whole buffer so no need to
start from offset even if the offset is always zero.

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

7 years agodirectsoundsink: fix comment
Philippe Renon [Thu, 28 Sep 2017 20:49:31 +0000 (22:49 +0200)]
directsoundsink: fix comment

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

7 years agodirectsoundsink: don't call set_volume with private scaled volume
Philippe Renon [Thu, 28 Sep 2017 20:48:41 +0000 (22:48 +0200)]
directsoundsink: don't call set_volume with private scaled volume

use get_volume() instead to get unscaled volume

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

7 years agodirectsoundsink: remove duplicate volume initialization
Philippe Renon [Thu, 28 Sep 2017 20:46:23 +0000 (22:46 +0200)]
directsoundsink: remove duplicate volume initialization

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

7 years agoqtdemux: Fix compiler warning
Sebastian Dröge [Tue, 10 Oct 2017 15:04:50 +0000 (18:04 +0300)]
qtdemux: Fix compiler warning

qtdemux.c: In function ‘gst_qtdemux_configure_stream’:
qtdemux.c:7764:34: error: suggest parentheses around ‘&&’ within ‘||’ [-Werror=parentheses]
     if ((stream->n_samples == 1) && (stream->first_duration == 0)
         ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

7 years agoqtdemux: fix assert when moof containing one sample
Nael Ouedraogo [Fri, 22 Sep 2017 16:41:52 +0000 (18:41 +0200)]
qtdemux: fix assert when moof containing one sample

Avoid computing frame rate when a stream contain moof with only one
sample, to avoid an assert. The moof is considered as still picture.

The same is already done for one sample given in the moov.

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

7 years agortspsrc: Avoid potentially dereferencing NULL pointer
Thibault Saunier [Mon, 9 Oct 2017 12:17:25 +0000 (14:17 +0200)]
rtspsrc: Avoid potentially dereferencing NULL pointer

CID 1418986

7 years agortpjitterbuffer: fix debug message on pt mismatch
Tim-Philipp Müller [Sat, 7 Oct 2017 23:07:43 +0000 (00:07 +0100)]
rtpjitterbuffer: fix debug message on pt mismatch

7 years agov4l2videoenc: Fix driver capability dectection
Nicolas Dufresne [Sat, 7 Oct 2017 21:11:41 +0000 (21:11 +0000)]
v4l2videoenc: Fix driver capability dectection

Use the right set of caps when checking if caps intersect. That makes
the check only select the supported devices.

7 years agov4l2videoenc/dec: Don't leak template caps
Nicolas Dufresne [Wed, 20 Sep 2017 01:46:15 +0000 (01:46 +0000)]
v4l2videoenc/dec: Don't leak template caps

7 years agov4l2videodec: Protect against null pool in _stop
Nicolas Dufresne [Sat, 7 Oct 2017 21:17:53 +0000 (21:17 +0000)]
v4l2videodec: Protect against null pool in _stop

This may happen if the negotiation fails, as we will have never
created the pools.

7 years agortpbin, rtspsrc: fix compiler warnings about 64-bit integer signednes
Tim-Philipp Müller [Sat, 7 Oct 2017 14:55:24 +0000 (15:55 +0100)]
rtpbin, rtspsrc: fix compiler warnings about 64-bit integer signednes

"warning: this decimal constant is unsigned only in ISO C90" with
gcc 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.3)

7 years agov4l2: fix build without libv4l
Tim-Philipp Müller [Sat, 7 Oct 2017 14:39:18 +0000 (15:39 +0100)]
v4l2: fix build without libv4l

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

7 years agortpsbcdepay: Fix potential NULL pointer dereference
Sebastian Dröge [Sat, 7 Oct 2017 11:06:38 +0000 (14:06 +0300)]
rtpsbcdepay: Fix potential NULL pointer dereference

CID 1418864

7 years agoaudioecho: Micro-optimize
Sebastian Dröge [Fri, 6 Oct 2017 22:21:19 +0000 (01:21 +0300)]
audioecho: Micro-optimize

Gives 1.28x speedup in surround-delay=false mode

7 years agoaudioecho: Don't do linear interpolation between samples
Sebastian Dröge [Fri, 6 Oct 2017 20:59:43 +0000 (23:59 +0300)]
audioecho: Don't do linear interpolation between samples

Linear interpolation adds quite some noise, and it's unlikely that
anybody will ever need sub-sample accurate delays. Proper resampling
before that will lead to better results.

7 years agov4l2object: auto-detect dmabuf export for V4L2_IO_AUTO on capture side
Enrico Jorns [Sat, 30 Sep 2017 02:19:42 +0000 (22:19 -0400)]
v4l2object: auto-detect dmabuf export for V4L2_IO_AUTO on capture side

Issue an invalid VIDIOC_EXPBUF ioctl to the driver to check if the
driver supports dmabuf export. If the driver does not implement the
IOCTL, the error is ENOTTY. Any other error codes mean that the driver
implements VIDIOC_EXPBUF.

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

7 years agoflvdemux: Only set pixel-aspect-ratio if specified
Nicolas Dufresne [Sun, 24 Sep 2017 18:35:01 +0000 (14:35 -0400)]
flvdemux: Only set pixel-aspect-ratio if specified

If it's not specified, we should let the decoder figure it out.
Apparently the code was already in place, all was to make the code
conditional.

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

7 years agoflvdemux: Don't pull passed the EOS
Nicolas Dufresne [Sat, 23 Sep 2017 19:44:09 +0000 (15:44 -0400)]
flvdemux: Don't pull passed the EOS

When a truncated FLV is provided and processed in pull mode, we
may endup trying to pull passed EOS, causing a rather confusing
warning as the pull offset is an integer overflow.

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

7 years agoflvdemux: Ignore invalid H.264 codec data
Nicolas Dufresne [Sat, 23 Sep 2017 19:41:30 +0000 (15:41 -0400)]
flvdemux: Ignore invalid H.264 codec data

This code basically skip over codec_data with empty payload. In
this case, the codec_data variable is the size of the header for
the CODEC part of Video Tag. The remaining is supposed to be the
H.264 codec data, hence should not be empty.

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

7 years agoflvdemux: Avoid integer overflow on invalid CTS
Nicolas Dufresne [Sat, 23 Sep 2017 19:38:07 +0000 (15:38 -0400)]
flvdemux: Avoid integer overflow on invalid CTS

If the CTS is negative an would lead to a negtive PTS, clip
the CTS so the PTS will be 0.

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

7 years agodocs: Update for git changes
Thibault Saunier [Thu, 5 Oct 2017 17:36:28 +0000 (14:36 -0300)]
docs: Update for git changes

7 years agortspsrc: Fix build
Thibault Saunier [Thu, 5 Oct 2017 17:35:27 +0000 (14:35 -0300)]
rtspsrc: Fix build

7 years agortspsrc: Handle TCP as lower transport with RTSP 2.0
Thibault Saunier [Thu, 13 Jul 2017 18:46:55 +0000 (14:46 -0400)]
rtspsrc: Handle TCP as lower transport with RTSP 2.0

Meaning that the interleave fields have to be updated as
if streams setup was working when using pipelined setup
request. Otherwise there is a mismatch between the server
channel count and our own.

This also makes RTSP 2.0 over HTTP working.

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

7 years agortsp: Start implementing support for RTSP 2.0
Thibault Saunier [Thu, 20 Apr 2017 20:45:39 +0000 (17:45 -0300)]
rtsp: Start implementing support for RTSP 2.0

- Handle version negotation:

  Added a `default-version` property so that the user can configure
  what to use in case the server does not support version negotation
  (which actually exist)

- Handle pipelined requests, which allow avoiding full round trip to
  setup the RTP streams (request are sent in a raw, and response are
  handled as they arrive).

- Handle the new Media-Properties header

- Handle the new Seek-Style header

- Handle the new Accept-Ranges header

Handling of IPV6 should already be OK.

We are still missing (at least) the following features (which do not
seem really mandatory as they require a "persistent connection between
server and client"):

  - Server to Client TEARDOWN command (Not so usefull fmpov)
  - PLAY_NOTIFY (not needed for our server yet)
  - Support for the new REDIRECT features

and probably some more protocol changes might not be handled yet.

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

7 years agortspsrc: Use a macro to debug RTSP messages
Thibault Saunier [Wed, 3 May 2017 14:19:03 +0000 (11:19 -0300)]
rtspsrc: Use a macro to debug RTSP messages

Simplifying the code a little.

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

7 years agoUse proper GtkDoc notation for NULL/FALSE/TRUE
Reynaldo H. Verdejo Pinochet [Tue, 3 Oct 2017 23:30:10 +0000 (16:30 -0700)]
Use proper GtkDoc notation for NULL/FALSE/TRUE

7 years agortspsrc: Ignore medias marked as sendonly
Sebastian Dröge [Sun, 1 Oct 2017 14:09:13 +0000 (16:09 +0200)]
rtspsrc: Ignore medias marked as sendonly

We're never going to receive anything from them, so don't create pads
for them. These medias are destinations where *we* could send something.

7 years agosbcdepay: Add property to ignore input timestamps
Sebastian Dröge [Tue, 5 Sep 2017 08:41:35 +0000 (11:41 +0300)]
sbcdepay: Add property to ignore input timestamps

This then just counts samples and calculates the output timestamps based
on that and the very first observed timestamp. The timestamps on the
buffers are continued to be used to detect discontinuities that are too
big and reset the counter at that point.

When receiving data via Bluetooth, many devices put completely wrong
values into the RTP timestamp field. For example iOS seems to put a
timestamp in milliseconds in there, instead of something based on the
current sample offset (RTP clock-rate == sample rate).

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

7 years agortph265depay: Fix Memory leak in error case
Ponnam Srinivas [Thu, 21 Sep 2017 08:29:00 +0000 (13:59 +0530)]
rtph265depay: Fix Memory leak in error case

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

7 years agodeinterlace: Fixed memory leak in error code path
Deepak Srivastava [Fri, 22 Sep 2017 11:25:21 +0000 (16:55 +0530)]
deinterlace: Fixed memory leak in error code path

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

7 years agopngenc: fix memory leak in error code path
Ponnam Srinivas [Wed, 20 Sep 2017 04:07:59 +0000 (09:37 +0530)]
pngenc: fix memory leak in error code path

Don't leak row_pointers if frame can't be mapped.

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

7 years agov4l2videodec: Don't leak codec name
Nicolas Dufresne [Tue, 19 Sep 2017 21:55:58 +0000 (17:55 -0400)]
v4l2videodec: Don't leak codec name

7 years agov4l2bufferpool: Don't stop streaming when pool is flushing
Nicolas Dufresne [Sat, 5 Aug 2017 16:23:30 +0000 (12:23 -0400)]
v4l2bufferpool: Don't stop streaming when pool is flushing

The purpose of being able to flush the buffer pool is only to
unlock any blocked operation. Doing streamoff/streamon had the
side effect of turning off and on the camera. As we do a flush_start
/ flush_stop sequence when shutting down, that would cause a really
quick sequence of streamoff/streamon/streamoff/close which was
causing some cameras to stop working.

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

7 years agortpjitterbuffer: implement basic chain_list function
Tim-Philipp Müller [Sun, 17 Sep 2017 15:18:48 +0000 (16:18 +0100)]
rtpjitterbuffer: implement basic chain_list function

Doesn't do anything fancy yet, but still avoids lots of
unnecessary locking/unlocking that would happen if the
default chain_list fallback function in GstPad got invoked.

7 years agomultifilesink: use new gst_buffer_list_calculate_size()
Tim-Philipp Müller [Sun, 17 Sep 2017 11:50:30 +0000 (12:50 +0100)]
multifilesink: use new gst_buffer_list_calculate_size()

7 years agortpbin: add option for sanity checking timestamp offset
Patrick Radizi [Thu, 14 Sep 2017 11:00:56 +0000 (13:00 +0200)]
rtpbin: add option for sanity checking timestamp offset

Timestamp offsets needs to be checked to detect unrealistic values
caused for example by NTP clocks not in sync. The new parameter
max-ts-offset lets the user decide an upper offset limit. There
are two different cases for checking the offset based on if
ntp-sync is used or not:
1) ntp-sync enabled
   Only negative offsest are allowed since a positive offset would
   mean that the sender and receiver clocks are not in sync.
   Default vaule of max-ts-offset = 0 (disabled)
2) ntp-sync disabled
   Both positive and negative offsets are allowed.
   Default vaule of max-ts-offset = 3000000000
The reason for different default values is to be backwards
compatible.

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