platform/upstream/gstreamer.git
8 years agopo: Update translations
Sebastian Dröge [Tue, 1 Nov 2016 15:41:51 +0000 (17:41 +0200)]
po: Update translations

8 years agov4l2object: fix extra-controls leak
Tobias Schneider [Thu, 27 Oct 2016 10:01:55 +0000 (12:01 +0200)]
v4l2object: fix extra-controls leak

Gst struct v4l2object->extra_controls is created if user sets appropriate
option but it is not freed on destruction of v4l2object.

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

8 years agoRevert "souphttpsrc: reduce reading latency by using non-blocking read"
Sebastian Dröge [Mon, 31 Oct 2016 16:00:07 +0000 (18:00 +0200)]
Revert "souphttpsrc: reduce reading latency by using non-blocking read"

This reverts commit 8816764112408766889c8b680a3af51115df4bf5.

It causes issues with the timeouts, and causes connections to be closed
without actual reason. Needs further investigation.

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

8 years agowavparse: Don't try to add srcpad if we don't know valid caps yet
Sebastian Dröge [Mon, 31 Oct 2016 07:00:49 +0000 (09:00 +0200)]
wavparse: Don't try to add srcpad if we don't know valid caps yet

Otherwise we'll run into an assertion on specially crafted files.

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

8 years agomeson: Remove uselessly duplicated dep checks
Nirbheek Chauhan [Thu, 27 Oct 2016 05:53:51 +0000 (11:23 +0530)]
meson: Remove uselessly duplicated dep checks

These checks are done inside the meson.build files for each plugin.

8 years agomeson: dv plugin now works on MSVC
Nirbheek Chauhan [Thu, 27 Oct 2016 05:52:59 +0000 (11:22 +0530)]
meson: dv plugin now works on MSVC

Needs a Meson patch to filter out the useless -lpthread

https://github.com/mesonbuild/meson/pull/962

8 years agomatroskamux: allow resolutions above 4096
Branko Subasic [Thu, 27 Oct 2016 12:03:48 +0000 (14:03 +0200)]
matroskamux: allow resolutions above 4096

Modify the caps string to allow width and height greater than 4096.
There is no need to restrict it since the matroska format allows the
width and height values to be up to eight bytes long.

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

8 years agoudpsrc: Check for G_PLATFORM_WIN32 for presence of ipi_spec_dest
Scott D Phillips [Mon, 24 Oct 2016 00:23:10 +0000 (17:23 -0700)]
udpsrc: Check for G_PLATFORM_WIN32 for presence of ipi_spec_dest

G_OS_WIN32 is only set when not building with cygwin, but
ipi_spec_dest is missing both with and without cygwin.

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

8 years agosouphttpsrc: reset read_position when reading fails
Michael Olbrich [Wed, 26 Oct 2016 06:51:40 +0000 (08:51 +0200)]
souphttpsrc: reset read_position when reading fails

souphttpsrc maintains two variables for the position:
 * 'request_position' is where we want to be
 * 'read_position' is where we are
During Normal operations both are updated in sync when data arrives. A seek
changes 'request_position' but not 'read_position'.
When the two positions get out of sync, then a new request is send and the
'Range' header is adjusted to the current 'request_position'.

Without this patch, if reading fails, then the source is destroyed. This
triggers a new request, but the range remains unchanged. As a result, the
old range is used and old data will be read.

Changing the 'read_position' to -1 makes it explicitly different from
'request_position' and as a result the 'Range' header is updated correctly.

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

8 years agomeson: Don't depend on gstreamer-check-1.0 on windows
Scott D Phillips [Tue, 25 Oct 2016 15:54:34 +0000 (08:54 -0700)]
meson: Don't depend on gstreamer-check-1.0 on windows

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

8 years agortspsrc: reset connection info to non-flushing when closing
Mark Nauwelaerts [Tue, 25 Oct 2016 13:24:20 +0000 (15:24 +0200)]
rtspsrc: reset connection info to non-flushing when closing

This solves a hanging mainloop in following scenario:
* connect to source
* network/server drops
* pipeline set to NULL (and connection to flushing as part)
* pipeline set to PAUSED/PLAYING (connection to non-flushing, but not recorded)
* [connecting still not possible]
* pipeline set to NULL => mainloop hangs (since no actual flushing is done)

8 years agosplitmuxsink: Only allow one video request pad
Jan Schmidt [Wed, 26 Oct 2016 03:32:48 +0000 (14:32 +1100)]
splitmuxsink: Only allow one video request pad

The pacing of the overall muxing is controlled
by the video GOPs arriving, so we can only handle
1 video stream, and the request pad is named accordingly.

Ignore a request for a 2nd video pad if there's already
an active one.

8 years agosplitmuxsink: Take ownership of floating refs
Jan Schmidt [Wed, 26 Oct 2016 00:59:32 +0000 (11:59 +1100)]
splitmuxsink: Take ownership of floating refs

sink the floating ref when handed a muxer or sink to use so
we clearly take ownership.

8 years agosplitmuxsink: Set child elements to NULL when removing.
Jan Schmidt [Tue, 25 Oct 2016 03:51:52 +0000 (14:51 +1100)]
splitmuxsink: Set child elements to NULL when removing.

Make sure that elements are in the NULL state when removing.
Fixes critical warnings when errors occur early on in starting up.

8 years agosplitmuxsink: Set pad template on request sink pads
Jan Schmidt [Tue, 25 Oct 2016 03:50:53 +0000 (14:50 +1100)]
splitmuxsink: Set pad template on request sink pads

Ensure that the ghost pad returned as a request pad
has the template that was requested

8 years agoRevert "meson: move gstreamer-check-1.0 dependency to tests/check"
Nirbheek Chauhan [Tue, 25 Oct 2016 05:20:47 +0000 (10:50 +0530)]
Revert "meson: move gstreamer-check-1.0 dependency to tests/check"

This reverts commit 46632694662b96fddb848a1f2091a215b28a2d35.

Does not actually work. See:
https://bugzilla.gnome.org/show_bug.cgi?id=773114#c31

8 years agoflvmux: Assume PTS is DTS when PTS is missing
Nicolas Dufresne [Wed, 8 Jun 2016 15:24:37 +0000 (11:24 -0400)]
flvmux: Assume PTS is DTS when PTS is missing

This fixes issue for encoders that only sets the DTS. We assume that
there was no re-ordering when that happens.

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

8 years agomeson: fix build outside of gst-all
Tim-Philipp Müller [Sun, 23 Oct 2016 23:34:15 +0000 (00:34 +0100)]
meson: fix build outside of gst-all

8 years agomeson: directsound: Add ole32 library dependency
Scott D Phillips [Fri, 21 Oct 2016 07:42:54 +0000 (00:42 -0700)]
meson: directsound: Add ole32 library dependency

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

8 years agomeson: move gstreamer-check-1.0 dependency to tests/check
Scott D Phillips [Fri, 21 Oct 2016 07:42:18 +0000 (00:42 -0700)]
meson: move gstreamer-check-1.0 dependency to tests/check

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

8 years agotests: videomixer: disable racy flush_start_flush_stop test
Tim-Philipp Müller [Thu, 20 Oct 2016 21:08:14 +0000 (22:08 +0100)]
tests: videomixer: disable racy flush_start_flush_stop test

It's been broken for years, and it's unlikely it will ever
be fixed for collectpads/videomixer now that there's compositor
which works fine. So let's disable it, since all it does
is that it creates noise that distracts from other failures.

Also see the corresponding adder bug as it failed in the same way:
 https://bugzilla.gnome.org/show_bug.cgi?id=708891

8 years agotests: Fix souphttpsrc tests without CK_FORK=no
Jan Alexander Steffens (heftig) [Sun, 9 Oct 2016 14:56:10 +0000 (16:56 +0200)]
tests: Fix souphttpsrc tests without CK_FORK=no

It seems that the forked processes all attempt to handle the listening
socket from the server, and only one has to shutdown the socket to break
the server completely.

Create a new server inside each test to avoid this.

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

8 years agotests: Fix level test in CK_FORK=no mode
Jan Alexander Steffens (heftig) [Sun, 9 Oct 2016 13:23:51 +0000 (15:23 +0200)]
tests: Fix level test in CK_FORK=no mode

The tests accumulate buffers in GstCheck's buffers list, and the list is
not (consistently) reset between tests. Do that and remove the now
conflicting unrefs for outbuffers.

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

8 years agowaveformsink: Fix Memory leak using GST_PTR_FORMAT
Gaurav Gupta [Fri, 7 Oct 2016 07:34:27 +0000 (13:04 +0530)]
waveformsink: Fix Memory leak using GST_PTR_FORMAT

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

8 years agomeson: Add missing gstaudio dep to monoscope
Nirbheek Chauhan [Tue, 18 Oct 2016 06:53:42 +0000 (12:23 +0530)]
meson: Add missing gstaudio dep to monoscope

In file included from ../subprojects/gst-plugins-good/gst/monoscope/gstmonoscope.c:42:0:
../subprojects/gst-plugins-base/gst-libs/gst/audio/audio.h:26:39: fatal error: gst/audio/audio-enumtypes.h: No such file or directory
 #include <gst/audio/audio-enumtypes.h>
                                       ^
compilation terminated.

https://ci.gstreamer.net/job/GStreamer-master-meson/271/console

8 years agomeson: Add missing pbutils dependency to multifile
Nirbheek Chauhan [Sat, 15 Oct 2016 20:48:22 +0000 (02:18 +0530)]
meson: Add missing pbutils dependency to multifile

Found via the Jenkins CI:

FAILED: subprojects/gst-plugins-good/gst/multifile/gstmultifile@sha/gstsplitmuxsink.c.o
[...]
In file included from ../subprojects/gst-plugins-good/gst/multifile/gstsplitmuxsink.h:24:0,
                 from ../subprojects/gst-plugins-good/gst/multifile/gstsplitmuxsink.c:59:
../subprojects/gst-plugins-base/gst-libs/gst/pbutils/pbutils.h:30:43: fatal error: gst/pbutils/pbutils-enumtypes.h: No such file or directory
 #include <gst/pbutils/pbutils-enumtypes.h>
                                           ^
compilation terminated.

https://ci.gstreamer.net/job/GStreamer-master-meson/263/console

8 years agomeson: Don't set c_std to gnu99
Nirbheek Chauhan [Sat, 15 Oct 2016 16:41:08 +0000 (22:11 +0530)]
meson: Don't set c_std to gnu99

Use the default for each compiler on every platform instead. This
improves our compatibility with compilers that don't have gnu99 as
a c_std.

8 years agomeson: Make use of new environment object and set plugin path to builddir
Thibault Saunier [Tue, 4 Oct 2016 21:04:11 +0000 (18:04 -0300)]
meson: Make use of new environment object and set plugin path to builddir

Workaround source_root being the root directory of all projects in the subproject
case and remove now unneeded getpluginsdir

Bump meson requirement to 0.35

8 years agotests: Fix memory leak in test rtpaux test
Gaurav Gupta [Thu, 6 Oct 2016 05:45:54 +0000 (11:15 +0530)]
tests: Fix memory leak in test rtpaux test

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

8 years agoimagefreeze: Forward latency queries to upstream
Nirbheek Chauhan [Mon, 3 Oct 2016 05:57:54 +0000 (11:27 +0530)]
imagefreeze: Forward latency queries to upstream

Without this, latency queries to imagefreeze will fail.

8 years agomeson: Setup pre commit hook and fix getpluginsdir for standalone case
Thibault Saunier [Fri, 30 Sep 2016 14:35:39 +0000 (11:35 -0300)]
meson: Setup pre commit hook and fix getpluginsdir for standalone case

8 years agosplitmuxsrc: Handle stop point from segment
Jan Schmidt [Wed, 28 Sep 2016 18:55:14 +0000 (04:55 +1000)]
splitmuxsrc: Handle stop point from segment

If the seek stop point (or start, during reverse play)
was within the segment we just finished, go EOS immediately
instead of proceeding through all other parts and sending
0 length seeks to them.

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

8 years agosplitmuxsrc: Drop lock shutting down pads
Jan Schmidt [Wed, 28 Sep 2016 17:21:26 +0000 (03:21 +1000)]
splitmuxsrc: Drop lock shutting down pads

Avoid a sporadic deadlock on shutdown by dropping
the splitmux lock around pad shutdown

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

8 years agosplitmuxsrc: Fix extra unref handling queries
Jan Schmidt [Wed, 28 Sep 2016 16:47:36 +0000 (02:47 +1000)]
splitmuxsrc: Fix extra unref handling queries

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

8 years agosplitmuxsrc: Avoid stall when parts get out of sync
Jan Schmidt [Wed, 28 Sep 2016 18:50:25 +0000 (04:50 +1000)]
splitmuxsrc: Avoid stall when parts get out of sync

When one part moves ahead of the others - due to excessive
downstream queueing, or really small input files - then
we can end up activating parts more than once. That can lead to
effects like shutting down pad tasks prematurely.

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

8 years agomeson: update version
Tim-Philipp Müller [Fri, 30 Sep 2016 10:41:19 +0000 (11:41 +0100)]
meson: update version

8 years agoRelease 1.9.90
Sebastian Dröge [Fri, 30 Sep 2016 10:02:19 +0000 (13:02 +0300)]
Release 1.9.90

8 years agoUpdate .po files
Sebastian Dröge [Fri, 30 Sep 2016 09:17:26 +0000 (12:17 +0300)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Fri, 30 Sep 2016 08:43:54 +0000 (11:43 +0300)]
po: Update translations

8 years agotests: Fix tagschecking failure due to missing PTS
Arun Raghavan [Fri, 30 Sep 2016 07:52:32 +0000 (13:22 +0530)]
tests: Fix tagschecking failure due to missing PTS

qtmux now needs the PTS (commit a993883b7), so let's make sure we
produce one with our buffers.

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

8 years agoqtmux: Don't calculate PTS offset and DTS with GST_CLOCK_TIME_NONE
Sebastian Dröge [Wed, 28 Sep 2016 20:03:58 +0000 (23:03 +0300)]
qtmux: Don't calculate PTS offset and DTS with GST_CLOCK_TIME_NONE

Just error out if there is no valid PTS.

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

8 years agoqtdemux: Add JPEG2000 ihdr atom to the list of known ones
Sebastian Dröge [Thu, 29 Sep 2016 14:37:28 +0000 (17:37 +0300)]
qtdemux: Add JPEG2000 ihdr atom to the list of known ones

Otherwise qtdemux is always going to complain about it being unknown.

8 years agomatroskamux: Always write the default frame duration for VP8/9 too
Sebastian Dröge [Thu, 29 Sep 2016 07:19:56 +0000 (10:19 +0300)]
matroskamux: Always write the default frame duration for VP8/9 too

The WebM spec allows this now, and it allows us to guess a framerate.

See https://bugzilla.gnome.org/show_bug.cgi?id=772141 and
also https://bugzilla.gnome.org/show_bug.cgi?id=654379

8 years agortph26[45]depay: Don't handle NALs inside STAP units twice
Olivier Crête [Tue, 27 Sep 2016 19:26:19 +0000 (15:26 -0400)]
rtph26[45]depay: Don't handle NALs inside STAP units twice

They've already been handled before pushing them into the adapter.

8 years agomeson: tests: fix vp8 availability checks
Tim-Philipp Müller [Tue, 27 Sep 2016 11:39:12 +0000 (12:39 +0100)]
meson: tests: fix vp8 availability checks

Those variables are not defined if vp8 was not found.

8 years agoRevert "multifilesink: streamline the file-switch code a bit"
Tim-Philipp Müller [Tue, 27 Sep 2016 09:23:38 +0000 (10:23 +0100)]
Revert "multifilesink: streamline the file-switch code a bit"

This reverts commit f1ceaab02f3f557e23b77b14771a575788f92bb4.

This broke atomic file writes in "buffer" mode. It did make
sure that any streamheaders are prepended to each file in
buffer mode as well, but that's not really needed in practice,
whereas atomic file writes are, so let's restore the status
quo ante for now since this was primarily a code cleanup anyway,
and if anyone needs to streamheaders in buffer mode too they
can make a patch to implement that differently. Re-implementing
the atomic writes in the element also seems way too much work.

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

8 years agoRevert "multifilesink: close file on write error with next-file mode is set to buffer"
Tim-Philipp Müller [Tue, 27 Sep 2016 09:22:57 +0000 (10:22 +0100)]
Revert "multifilesink: close file on write error with next-file mode is set to buffer"

This reverts commit 84e441d2685cf223d348a95be0c5ba693bbf6624.

This will no longer be needed once we revert f1ceaab02.

8 years agomeson: Add gst-plugins-base plugins directories to be used by tests
Thibault Saunier [Mon, 26 Sep 2016 16:22:29 +0000 (13:22 -0300)]
meson: Add gst-plugins-base plugins directories to be used by tests

8 years agomeson: add unit tests
Tim-Philipp Müller [Mon, 26 Sep 2016 13:30:00 +0000 (14:30 +0100)]
meson: add unit tests

Only works properly in an installed setup currently, most
likely won't work with a subprojects setup yet.

8 years agomeson: hook up translations
Tim-Philipp Müller [Sat, 24 Sep 2016 08:36:24 +0000 (09:36 +0100)]
meson: hook up translations

8 years agopulsesrc: Don't negotiate to less than two segments
Arun Raghavan [Thu, 8 Sep 2016 12:00:41 +0000 (17:30 +0530)]
pulsesrc: Don't negotiate to less than two segments

GstAudioRingBuffer doesn't needs us to have at least 2 segments. We make
sure that if our buffer parameters are such that the maxlength is not at
least 2x fragsize, we still request the ringbuffer to keep that much
space so it continues to work.

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

8 years agortpsbcpay: Fix timestamping
Arun Raghavan [Sat, 24 Sep 2016 17:52:01 +0000 (23:22 +0530)]
rtpsbcpay: Fix timestamping

We were just picking the timestamp of the last buffer pushed into our
adapter before we had enough data to push out.

This fixes things to figure out how large each frame is and what
duration it covers, so we can set both the timestamp and duration
correctly.

Also adds some DISCONT handling.

8 years agoqtmux: Fix fourcc for ProRes Proxy
Georg Lippitsch [Tue, 12 Jul 2016 16:14:52 +0000 (18:14 +0200)]
qtmux: Fix fourcc for ProRes Proxy

This is apco, according to
https://wiki.multimedia.cx/index.php?title=Apple_ProRes

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

8 years agomeson: fix build with vpx 1.3.x
Tim-Philipp Müller [Sun, 18 Sep 2016 19:55:31 +0000 (20:55 +0100)]
meson: fix build with vpx 1.3.x

vpx >= 1.4.0 is optional

8 years agortspsrc: Use new bin suppressed flags API for managing the element flags
Sebastian Dröge [Thu, 15 Sep 2016 16:19:35 +0000 (18:19 +0200)]
rtspsrc: Use new bin suppressed flags API for managing the element flags

8 years agoext, gst: fix indentation
Tim-Philipp Müller [Thu, 15 Sep 2016 08:52:31 +0000 (09:52 +0100)]
ext, gst: fix indentation

8 years agotests: fix indentation
Tim-Philipp Müller [Thu, 15 Sep 2016 08:52:17 +0000 (09:52 +0100)]
tests: fix indentation

8 years agortpjitterbuffer: Fix calculating next_seqnum when dropping old buffers from a full...
Thomas Bluemel [Thu, 11 Aug 2016 17:04:22 +0000 (11:04 -0600)]
rtpjitterbuffer: Fix calculating next_seqnum when dropping old buffers from a full queue.

Fixes calculating the next sequence number when a ITEM_TYPE_LOST with more than one
definitely lost packets is encountered.

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

8 years agortpjitterbuffer: improved rtx-rtt averaging
Havard Graff [Thu, 11 Aug 2016 21:07:44 +0000 (23:07 +0200)]
rtpjitterbuffer: improved rtx-rtt averaging

The basic idea is this:
1. For *larger* rtx-rtt, weigh a new measurement as before
2. For *smaller* rtx-rtt, be a bit more conservative and weigh a bit less
3. For very large measurements, consider them "outliers"
   and count them a lot less

The idea being that reducing the rtx-rtt is much more harmful then
increasing it, since we don't want to be underestimating the rtt of the
network, and when using this number to estimate the latency you need for
you jitterbuffer, you would rather want it to be a bit larger then a bit
smaller, potentially losing rtx-packets. The "outlier-detector" is there
to prevent a single skewed measurement to affect the outcome too much.
On wireless networks, these are surprisingly common.

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

8 years agortpjitterbuffer: Detect whether to assume equidistant spacing when loss
Stian Selnes [Fri, 5 Aug 2016 10:51:59 +0000 (12:51 +0200)]
rtpjitterbuffer: Detect whether to assume equidistant spacing when loss

Assuming equidistant packet spacing when that's not true leads to more
loss than necessary in the case of reordering and jitter. Typically this
is true for video where one frame often consists of multiple packets
with the same rtp timestamp. In this case it's better to assume that the
missing packets have the same timestamp as the last received packet, so
that the scheduled lost timer does not time out too early causing the
packets to be considered lost even though they may arrive in time.

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

8 years agortpjitterbuffer: Don't request rtx if 'now' is past retry period
Stian Selnes [Wed, 27 Jul 2016 08:39:50 +0000 (10:39 +0200)]
rtpjitterbuffer: Don't request rtx if 'now' is past retry period

There is no need to schedule another EXPECTED timer if we're already
past the retry period. Under normal operation this won't happen, but if
there are more timers than the jitterbuffer is able to process in
real-time, scheduling more timers will just make the situation worse.
Instead, consider this packet as lost and move on. This scenario can
occur with high loss rate, low rtt and high configured latency.

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

8 years agortpjitterbuffer: Fix lost duration when gap after lost timer
Stian Selnes [Tue, 26 Jul 2016 16:01:48 +0000 (18:01 +0200)]
rtpjitterbuffer: Fix lost duration when gap after lost timer

This patch fixes an issue with the estimated gap duration when there is
a gap immediately after a lost timer has been processed. Previously
there was a discrepancy beteen the gap in seqnum and gap in dts which
would cause wrong calculated duration. The issue would only be seen with
retranmission enabled since when it's disabled lost timers are only
created when a packet is received and the actual gap length and last dts
is known.

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

8 years agortpjitterbuffer: Expose rtx-deadline as a property
Havard Graff [Mon, 18 Jul 2016 23:11:58 +0000 (01:11 +0200)]
rtpjitterbuffer: Expose rtx-deadline as a property

The default -1 gives the old behavior.

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

8 years agortpjitterbuffer: Improved expected-timer handling when gap > 0
Havard Graff [Thu, 11 Aug 2016 10:02:19 +0000 (12:02 +0200)]
rtpjitterbuffer: Improved expected-timer handling when gap > 0

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

8 years agortpjitterbuffer: Major improvements for RTX stats
Stian Selnes [Thu, 11 Aug 2016 09:51:50 +0000 (11:51 +0200)]
rtpjitterbuffer: Major improvements for RTX stats

Stats should also be collected for unsuccessful packets.

rtx-rtt is very important for determining the necessary configured
latency on the jitterbuffer. It's especially important to be able to
increase the latency when retransmitted packets arrive too late and are
considered lost. This patch includes these late packets in the
calculation of the various rtx stats, making them more correct and
useful.

Also in the case where the original packet arrives after a NACK is sent,
the received RTX packet should update the stats since it provides useful
information about RTT.

The RTT is only updated if and only if all requested retranmissions are
received. That way the RTT is guaranteed to make sense. If not we don't
know which request the packet is a response to and the RTT may be bogus.
A consequence of this patch is that RTT is not updated for a request
when one of the RTX packets for that seqnum is lost, but that since
measured RTT will be more accurate.

The implementation store the RTX information from the timed out timers
and use this when the retransmitted packet arrives. For performance
these timers are stored separately from the "normal" timers in order to
not impact performance (see attached performance test).

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

8 years agortpjitterbuffer: Add and expose more stats and increase testing of it
Havard Graff [Thu, 11 Aug 2016 09:02:44 +0000 (11:02 +0200)]
rtpjitterbuffer: Add and expose more stats and increase testing of it

Add num-pushed and num-lost.
Expose num-late, num-duplicates and avg-jitter.

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

8 years agortxreceive: Set buffer flag for retransmitted packets
Stian Selnes [Thu, 7 Jul 2016 08:20:02 +0000 (10:20 +0200)]
rtxreceive: Set buffer flag for retransmitted packets

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

8 years agortpjitterbuffer: Option to disable rtx-delay-reorder
Havard Graff [Sat, 9 Jul 2016 21:47:41 +0000 (23:47 +0200)]
rtpjitterbuffer: Option to disable rtx-delay-reorder

When disabled we can save some iterations over timers.

There is probably an argument for rtx-delay-reorder to exist, but
for normal operations, handling jitter (reordering) is something a
jitterbuffer should do, and this variable feels like functionality that
is not "in-sync" with what the jitterbuffer is trying to achieve.

Example: You have 50ms jitter on your network, and are receiving
audio packets with 10ms durations. An audio packet should not be
considered late until its rtx-timeout has expired (and hence a rtx-event
is sent), but with rtx-delay-reorder, events will be sent pretty much
all the time due to the jitter on the network.

Point being: The jitterbuffer should adapt its size to the measured network
jitter, and then rtx-delay-reorder needs to adapt as well, or simply
get out of the way and let the other (better) rtx-mechanisms do their job.

Also change find_timer to only use seqnum as an argument, since there
will only ever be one timer per seqnum at any given time. In the
one case where the type matters, the caller simply checks the type.

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

8 years agortph263pay: Fix double free from coverity
Olivier Crête [Wed, 14 Sep 2016 13:58:41 +0000 (09:58 -0400)]
rtph263pay: Fix double free from coverity

CID #1372887

8 years agortph263pay: Indent as per gst-indent
Olivier Crête [Wed, 14 Sep 2016 13:58:37 +0000 (09:58 -0400)]
rtph263pay: Indent as per gst-indent

8 years agoconfigure: Depend on gstreamer 1.9.2.1
Sebastian Dröge [Wed, 14 Sep 2016 09:30:41 +0000 (11:30 +0200)]
configure: Depend on gstreamer 1.9.2.1

8 years agoautodetect: Use gst_bin_set_suppressed_flags() API
Wonchul Lee [Wed, 14 Sep 2016 01:17:02 +0000 (10:17 +0900)]
autodetect: Use gst_bin_set_suppressed_flags() API

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

8 years agojack: Fix pipeline hang when jack changes sample rate or buffer size
Thomas Scheuermann [Fri, 9 Sep 2016 13:36:12 +0000 (15:36 +0200)]
jack: Fix pipeline hang when jack changes sample rate or buffer size

If jackd changes the buffer size or sample rate, jackaudiosink hangs
and can't be stopped. This also happens if jack is configured as slave
and a gstreamer pipeline is started on the slave machine while the jack
master isn't running yet. If the the jack master is started it changes
the buffer size / sample rate and jackaudiosink can't be stopped.

This fix calls jack_shutdown_cb when jack_sample_rate_cb or
jack_buffer_size_cb is called.

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

8 years agodeinterlace: Fix field ordering for reverse playback
Sebastian Dröge [Mon, 12 Sep 2016 18:08:36 +0000 (20:08 +0200)]
deinterlace: Fix field ordering for reverse playback

And actually calculate the field duration instead of a frame duration so
that we can properly timestamp output frames in fields=all mode.

This is probably still broken for reverse playback in telecine mode.

8 years agoudpsrc: Fix compilation on NetBSD
Thomas Klausner [Mon, 12 Sep 2016 09:02:00 +0000 (09:02 +0000)]
udpsrc: Fix compilation on NetBSD

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

8 years agoAutomatic update of common submodule
Jan Schmidt [Sat, 10 Sep 2016 10:51:10 +0000 (20:51 +1000)]
Automatic update of common submodule

From b18d820 to f980fd9

8 years agoqtdemux: offset is irrelevant when no crypto info
Xabier Rodriguez Calvar [Fri, 9 Sep 2016 12:02:25 +0000 (14:02 +0200)]
qtdemux: offset is irrelevant when no crypto info

Cause later it will try to use the crypto info array to get an index and
attach on of the positions as buffer's crypto info.

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

8 years agoAutomatic update of common submodule
Jan Schmidt [Fri, 9 Sep 2016 23:53:57 +0000 (09:53 +1000)]
Automatic update of common submodule

From f49c55e to b18d820

8 years agoosxaudio: Distribute device provider files
Nicolas Dufresne [Wed, 7 Sep 2016 19:33:30 +0000 (15:33 -0400)]
osxaudio: Distribute device provider files

Those where missing the the dev release tarballs for 1.9.2 which
prevented building from tarball on OSX platform

8 years agoqtdemux: Fix crash with no cenc aux offset
Xabier Rodriguez Calvar [Tue, 6 Sep 2016 07:49:39 +0000 (09:49 +0200)]
qtdemux: Fix crash with no cenc aux offset

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

8 years agoaacparse: parse a bit more of the humongous LOAS data
Vincent Penquerc'h [Mon, 5 Sep 2016 08:39:33 +0000 (09:39 +0100)]
aacparse: parse a bit more of the humongous LOAS data

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

8 years agoaacparse: make it clear when a potential LOAS frame is not one
Vincent Penquerc'h [Mon, 5 Sep 2016 08:39:08 +0000 (09:39 +0100)]
aacparse: make it clear when a potential LOAS frame is not one

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

8 years agoaacparse: add a few comments to anchor parsing to the spec
Vincent Penquerc'h [Mon, 5 Sep 2016 08:38:26 +0000 (09:38 +0100)]
aacparse: add a few comments to anchor parsing to the spec

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

8 years agoaacparse: improve channel/rate handling
Vincent Penquerc'h [Mon, 5 Sep 2016 08:37:02 +0000 (09:37 +0100)]
aacparse: improve channel/rate handling

Keep track of the last parsed channels/rate fields so they can be
used even if the element was not yet configured.

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

8 years agoaacparse: fix varlength number reading as per spec
Vincent Penquerc'h [Mon, 5 Sep 2016 08:35:53 +0000 (09:35 +0100)]
aacparse: fix varlength number reading as per spec

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

8 years agoaacparse: strip uneeded static arrays slack
Vincent Penquerc'h [Mon, 5 Sep 2016 08:35:02 +0000 (09:35 +0100)]
aacparse: strip uneeded static arrays slack

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

8 years agortpmp4adepay: Only declare a stream to be framed once a marker bit has been seen
Olivier Crête [Mon, 18 Jul 2016 23:18:58 +0000 (19:18 -0400)]
rtpmp4adepay: Only declare a stream to be framed once a marker bit has been seen

This may cause a few packets to be processed by the parser, but it's
better than never pushing out buffers from a slightly broken stream
where no marker bits are set.

8 years agodvdemux: Fix timestamping in reverse playback mode
Sebastian Dröge [Tue, 6 Sep 2016 11:25:42 +0000 (14:25 +0300)]
dvdemux: Fix timestamping in reverse playback mode

This is only supported right now if after a demuxer that supports reverse
playback, e.g. with DV container inside AVI container.

8 years agomeson: Bump version to 1.9.2
Thibault Saunier [Mon, 5 Sep 2016 15:23:54 +0000 (12:23 -0300)]
meson: Bump version to 1.9.2

8 years agoqtmux: Implement the preset interface.
Mathieu Duponchelle [Fri, 26 Jun 2015 18:13:17 +0000 (20:13 +0200)]
qtmux: Implement the preset interface.

+ And provide a "youtube" preset, which based on
https://support.google.com/youtube/answer/1722171 sets
faststart to True.

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

8 years agoBack to development
Sebastian Dröge [Thu, 1 Sep 2016 09:27:35 +0000 (12:27 +0300)]
Back to development

8 years agoRelease 1.9.2
Sebastian Dröge [Thu, 1 Sep 2016 09:27:15 +0000 (12:27 +0300)]
Release 1.9.2

8 years agopo: Update translations
Sebastian Dröge [Thu, 1 Sep 2016 08:23:33 +0000 (11:23 +0300)]
po: Update translations

8 years agotests/examples: #define GDK_DISABLE_DEPRECATION_WARNINGS
Sebastian Dröge [Thu, 1 Sep 2016 07:59:51 +0000 (10:59 +0300)]
tests/examples: #define GDK_DISABLE_DEPRECATION_WARNINGS

We use gdk_cairo_create() which is deprecated since 3.22.

8 years agoosxvideo: Remove QuickTime references.
Jan Schmidt [Tue, 30 Aug 2016 19:50:44 +0000 (05:50 +1000)]
osxvideo: Remove QuickTime references.

QuickTime.h is no longer available on OS X 10.12 (Sierra),
and both the header and the framework seem unnecessary
for compilation - at least as of 10.11 (El Capitan).

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

8 years agoUse the new API to post flow ERROR messages on the bus
Thibault Saunier [Fri, 19 Aug 2016 18:11:03 +0000 (11:11 -0700)]
Use the new API to post flow ERROR messages on the bus

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

8 years agogitignore: ignore qtdemux, rtph261 and rtpvp9 tests
Josep Torra [Fri, 26 Aug 2016 19:32:07 +0000 (21:32 +0200)]
gitignore: ignore qtdemux, rtph261 and rtpvp9 tests

8 years agotests: use GST_NET_LIBS instead of hardcoded -lgstnet
Josep Torra [Fri, 26 Aug 2016 19:22:16 +0000 (21:22 +0200)]
tests: use GST_NET_LIBS instead of hardcoded -lgstnet

Fixes build in OSX when running 'make check' in gst-uninstalled.

8 years agotests: remove a wrong 'const' specifier
Josep Torra [Fri, 26 Aug 2016 19:14:47 +0000 (21:14 +0200)]
tests: remove a wrong 'const' specifier

Fixes "error: duplicate 'const' declaration specifier"

8 years agobuild: silence error about pthread for 'make check' in osx
Josep Torra [Fri, 26 Aug 2016 19:11:59 +0000 (21:11 +0200)]
build: silence error about pthread for 'make check' in osx

Fixes "clang: error: argument unused during compilation: '-pthread'"