platform/upstream/gst-plugins-good.git
10 years agortpjitterbuffer: fix crash when do-retransmission=true and a lot of buffers are lost
George Kiagiadakis [Tue, 5 Nov 2013 08:48:33 +0000 (10:48 +0200)]
rtpjitterbuffer: fix crash when do-retransmission=true and a lot of buffers are lost

The problem here was that the jitterbuffer lock was unlocked to push
the event, but that caused another thread to remove the timer currently
being processed, probably because the amount of rtx events
(and therefore timers) was getting too high. The solution is to
unlock and push the event only after timer processing has finished.

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

10 years agomatroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos
Per x Johansson [Thu, 24 Oct 2013 11:16:42 +0000 (13:16 +0200)]
matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos

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

10 years agowavenc: generate a non-empty data header
Philippe Normand [Fri, 8 Nov 2013 16:59:24 +0000 (17:59 +0100)]
wavenc: generate a non-empty data header

Restore the behavior of the element to the state before commit
db29522a430e44450415ca3676abd1b77ee923d9. A non-empty header is
generated and when the EOS event is received the header is generated
again, this time with the correct size.

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

10 years agortpsource: update receiver stats for sender
Wim Taymans [Thu, 7 Nov 2013 15:17:16 +0000 (16:17 +0100)]
rtpsource: update receiver stats for sender

An internal sender in a session is also a receiver of its own packets so update
the receiver stats. Other senders in the session will use this info to generate
correct RB blocks in their SR reports.

10 years agortpsource: refactor receiver stats update
Wim Taymans [Thu, 7 Nov 2013 15:13:16 +0000 (16:13 +0100)]
rtpsource: refactor receiver stats update

10 years agoqtdemux: handle fragmented files with mdat before moofs
Thiago Santos [Fri, 25 Oct 2013 21:22:00 +0000 (18:22 -0300)]
qtdemux: handle fragmented files with mdat before moofs

Assume a file with atoms in the following order: moov, mdat, moof,
mdat, moof ...

The first moov usually doesn't contain any sample entries atoms (or
they are all set to 0 length), because the real samples are signaled
at the moofs. In push mode, qtdemux parses the moov and then finds the mdat,
but then it has 0 entries and assumes it is EOS.

This patch makes it continue parsing in case it is a fragmented file so that
it might find the moofs and play the media.

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

10 years agoqtdemux: When using a buffered mdat, store all received data for later use
Thiago Santos [Fri, 25 Oct 2013 14:42:37 +0000 (11:42 -0300)]
qtdemux: When using a buffered mdat, store all received data for later use

In push mode, when qtdemux can't use a seek to skip the mdat buffer it has
to buffer it for later use.

The issue is that after parsing the next moov/moof, there might be some
trailing bytes from the next atom in the file. This data was being discarded
along with the already parsed moov/moof and playback would fail to continue
after the contents of this moov/moof are played.

This is particularly bad on fragmented files that have the mdat before the
corresponding moof. So you'd get:

mdat|moof|mdat|moof ...

When a moof was received, it usually came with some extra bytes that would
belong to the next mdat (because upstream doesn't care about atoms alignment).
So those bytes were being discarded and playback would fail.

This patch makes qtdemux store those extra bytes to reuse them later after the
mdat is emptied.

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

10 years agomultiudpsink: Also use the bind-port property if no bind-address was given
Sebastian Dröge [Thu, 7 Nov 2013 08:49:55 +0000 (09:49 +0100)]
multiudpsink: Also use the bind-port property if no bind-address was given

10 years agoosxaudiosink: fix segfault when we can't get the channels layout
Andoni Morales Alastruey [Wed, 6 Nov 2013 23:51:12 +0000 (00:51 +0100)]
osxaudiosink: fix segfault when we can't get the channels layout

10 years agortpvp8pay: Make Picture ID mode configurable and default to no picture ID
Sebastian Dröge [Tue, 5 Nov 2013 16:26:49 +0000 (17:26 +0100)]
rtpvp8pay: Make Picture ID mode configurable and default to no picture ID

Some implementations (linphone) only support no picture at all in the
stream and will fail if one is provided.

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

10 years agoAutomatic update of common submodule
Tim-Philipp Müller [Tue, 5 Nov 2013 11:18:34 +0000 (11:18 +0000)]
Automatic update of common submodule

From 865aa20 to dbedaa0

10 years agoAdd call to gst_rtp_h264_pay_clear_sps_pps() when receiving a STREAM_START event
Paul HENRYS [Tue, 29 Jan 2013 09:51:07 +0000 (10:51 +0100)]
Add call to gst_rtp_h264_pay_clear_sps_pps() when receiving a STREAM_START event

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

10 years agortsp: Add missing gio-2.0 deps and includes
Rico Tzschichholz [Sat, 2 Nov 2013 21:50:47 +0000 (22:50 +0100)]
rtsp: Add missing gio-2.0 deps and includes

10 years agoaudioiirfilter: Fix initialization coefficient handling
Sebastian Dröge [Fri, 1 Nov 2013 17:31:36 +0000 (18:31 +0100)]
audioiirfilter: Fix initialization coefficient handling

Broke unit test.

10 years agortspsrc: allow setting tls certificate validation flags
Aleix Conchillo Flaque [Thu, 31 Oct 2013 21:05:43 +0000 (14:05 -0700)]
rtspsrc: allow setting tls certificate validation flags

Added a new property "tls-validation-flags". If the url transport is
TLS, the validation flags will be set to the rtsp connection.

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

10 years agoaudioiirfilter: Don't crash if no filter coefficients are provided
Sebastian Dröge [Thu, 31 Oct 2013 21:43:49 +0000 (22:43 +0100)]
audioiirfilter: Don't crash if no filter coefficients are provided

...and by default use a identity filter.

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

10 years agowavpackenc: Fix writing of MD5 sums and other metadata blocks
Sebastian Dröge [Thu, 31 Oct 2013 18:15:12 +0000 (19:15 +0100)]
wavpackenc: Fix writing of MD5 sums and other metadata blocks

These don't have the FINAL_BLOCK flag set.

10 years agohdv1394src: Make it possible to select a camera by its GUID
Djalma Lúcio Soares da Silva [Thu, 31 Oct 2013 15:02:11 +0000 (13:02 -0200)]
hdv1394src: Make it possible to select a camera by its GUID

The source hdv1394src has the guid property that permits select a camera
connected from its GUID number.
However when this property is setted the selected camera is not changed.
The source continues using the default camera.

This problem was solved using the function iec61883_cmp_connect.
The reference for the function could be found here:
http://www.dennedy.org/libiec61883/API-iec61883-cmp-connect.html

The solution came from dvgrab source code.

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

10 years agotests: souphttpsrc: add explicit cast to silence warning
Thiago Santos [Thu, 31 Oct 2013 16:20:41 +0000 (13:20 -0300)]
tests: souphttpsrc: add explicit cast to silence warning

Silencing this warning:

elements/souphttpsrc.c:533:14: error: comparison between ‘SoupKnownStatusCode’ and ‘enum <anonymous>’ [-Werror=enum-compare]
   if (status != SOUP_STATUS_OK && !send_error_doc)

With gcc 4.8.2 (debian)

10 years agortspsrc: proxy new buffer mode
Wim Taymans [Thu, 31 Oct 2013 09:38:35 +0000 (10:38 +0100)]
rtspsrc: proxy new buffer mode

10 years agojitterbuffer: add new timestamp mode
Wim Taymans [Wed, 30 Oct 2013 15:49:36 +0000 (16:49 +0100)]
jitterbuffer: add new timestamp mode

Add a new timestamp mode that assumes the local and remote clock are
synchronized. It takes the first timestamp as a base time and then uses the RTP
timestamps for the output PTS.

10 years agomatroska-demux: Fix compiler warning
Sebastian Dröge [Wed, 30 Oct 2013 21:12:45 +0000 (22:12 +0100)]
matroska-demux: Fix compiler warning

matroska-demux.c: In function 'gst_matroska_demux_add_stream':
matroska-demux.c:1379:7: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'guint64' [-Werror=format=]
       "%03u", context->uid);
       ^

10 years agovideomixer: remove unneeded guint comparaison
Matthieu Bouron [Mon, 28 Oct 2013 13:21:15 +0000 (13:21 +0000)]
videomixer: remove unneeded guint comparaison

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

10 years agoosxvideosink: fix missing selector name warnings
Matthieu Bouron [Mon, 28 Oct 2013 14:13:12 +0000 (14:13 +0000)]
osxvideosink: fix missing selector name warnings

The spaces matter in ObjC

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

10 years agoy4menc: fix uninitialized variable warning
Matthieu Bouron [Mon, 28 Oct 2013 13:31:34 +0000 (13:31 +0000)]
y4menc: fix uninitialized variable warning

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

10 years agoqtdemux: check if the end_time is defined before using it
Thiago Santos [Fri, 25 Oct 2013 14:30:36 +0000 (11:30 -0300)]
qtdemux: check if the end_time is defined before using it

Avoids sending EOS too soon because of overflow. Can happen on
fragmented mp4 playback.

10 years agoqtdemux: use correct unref function
Thiago Santos [Wed, 23 Oct 2013 16:38:20 +0000 (13:38 -0300)]
qtdemux: use correct unref function

Events aren't GstObjects, but GstMiniObjects

10 years agoqtdemux: rename chunks_are_chunks to chunks_are_samples and flip the logic
Stefan Sauer [Tue, 15 Oct 2013 06:16:20 +0000 (08:16 +0200)]
qtdemux: rename chunks_are_chunks to chunks_are_samples and flip the logic

As the variable name suggests, sometimes chunks are chunks. Rename the variable
to tell what they are when they are not chunks.

10 years agoqtdemux: fix typos and add more logging for unhandled parts
Stefan Sauer [Wed, 9 Oct 2013 06:04:20 +0000 (08:04 +0200)]
qtdemux: fix typos and add more logging for unhandled parts

10 years agomultiudpsink: Fix memory leak
Ognyan Tonchev [Mon, 14 Oct 2013 14:23:25 +0000 (16:23 +0200)]
multiudpsink: Fix memory leak

Unmap all GstMemory of the current buffer when flushing.

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

10 years agoflvmux: fix broken sample pipeline
Tim-Philipp Müller [Sat, 12 Oct 2013 19:44:31 +0000 (20:44 +0100)]
flvmux: fix broken sample pipeline

which was muxing raw audio and video into flvmux, which won't work,
even if there were converters.

10 years agoflvmux: require stream-format=raw for mpeg-2 too, but don't require framed field
Tim-Philipp Müller [Sat, 12 Oct 2013 19:37:41 +0000 (20:37 +0100)]
flvmux: require stream-format=raw for mpeg-2 too, but don't require framed field

raw implies that it's framed already. Fixes .. ! faac ! flvmux

10 years agosouphttpsrc: do not emit EOS when connection drops
Thiago Santos [Mon, 7 Oct 2013 17:27:21 +0000 (14:27 -0300)]
souphttpsrc: do not emit EOS when connection drops

If the pipeline is stalled for too long, souphttpsrc will block and
stop fetching data from the network. This can cause the connection to
drop and souphttpsrc would handle it as an EOS. This patch makes it
persist and try to fetch more data until the end of the content length
or until receiving an error that it is beyong limits in case the content
is unknown.

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

10 years agodvdec: Don't send segment event before caps
Sebastian Dröge [Thu, 10 Oct 2013 11:52:35 +0000 (13:52 +0200)]
dvdec: Don't send segment event before caps

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

10 years agodvdemux: Send stream-start, caps and segment events in the right order
Sebastian Dröge [Wed, 9 Oct 2013 15:46:33 +0000 (17:46 +0200)]
dvdemux: Send stream-start, caps and segment events in the right order

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

10 years agowavenc: A-Law and Mu-Law don't have width/depth/signed caps fields
Sebastian Dröge [Tue, 8 Oct 2013 09:28:04 +0000 (11:28 +0200)]
wavenc: A-Law and Mu-Law don't have width/depth/signed caps fields

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

10 years agodeinterlace: Fix handling of planar video formats in greedyh method
Sebastian Dröge [Mon, 7 Oct 2013 10:54:11 +0000 (12:54 +0200)]
deinterlace: Fix handling of planar video formats in greedyh method

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

10 years agomatroska: Trivial grammar fix on debug msg
Reynaldo H. Verdejo Pinochet [Sun, 6 Oct 2013 17:01:26 +0000 (10:01 -0700)]
matroska: Trivial grammar fix on debug msg

10 years agomatroskamux: Add context flag for WebM
Reynaldo H. Verdejo Pinochet [Sun, 6 Oct 2013 16:17:00 +0000 (09:17 -0700)]
matroskamux: Add context flag for WebM

WebM has a couple of specific requirements we need to handle.
Idea is to set this flag once and just rely on mux->is_webm
at run time instead of repeatedly figuring this out from
GST_MATROSKA_DOCTYPE_WEBM (which requires a strcmp()).

10 years agomatroska: Do not write SegmentUID for WebM mux
Reynaldo H. Verdejo Pinochet [Fri, 4 Oct 2013 21:42:59 +0000 (14:42 -0700)]
matroska: Do not write SegmentUID for WebM mux

WebM spec states SegmentUID is Unsupported. Files produced
with gstreamer without this change will spit an error like
this when passed to mkvalidator:

ERR201: Invalid 'SegmentUID' for profile 'webm' in Info at 192

10 years agomatroskademux: make dvd palette change event sticky
Matej Knopp [Fri, 4 Oct 2013 22:00:03 +0000 (00:00 +0200)]
matroskademux: make dvd palette change event sticky

So they don't get lost.

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

10 years agovideoflip: Add automatic flip mode driven by image-orientation tag
Nicolas Dufresne [Thu, 3 Oct 2013 20:39:26 +0000 (16:39 -0400)]
videoflip: Add automatic flip mode driven by image-orientation tag

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

10 years agov4l2bufferpool: O_CLOEXEC needs _GNU_SOURCE
Peter Korsgaard [Fri, 4 Oct 2013 11:34:09 +0000 (13:34 +0200)]
v4l2bufferpool: O_CLOEXEC needs _GNU_SOURCE

On some systems (E.G. uClibc and older Glibc versions), O_CLOEXEC is only
defined when _GNU_SOURCE is specified, so do so.

_GNU_SOURCE needs to be defined before any system headers are included,
so move the fcntl.h section up.

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

10 years agojitterbuffer: fix race in flush-start/flush-stop
Wim Taymans [Fri, 4 Oct 2013 10:11:56 +0000 (12:11 +0200)]
jitterbuffer: fix race in flush-start/flush-stop

When flush-stop arrives before we process the result of the _push() in the
loop function, we might pause even though we are not flushing anymore. Fix this
race by waiting for the srcpad loop function to completely pause after doing the
flush-start.

10 years agovideomixer: Update videoconvert copy
Mathieu Duponchelle [Thu, 3 Oct 2013 20:38:43 +0000 (22:38 +0200)]
videomixer: Update videoconvert copy

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

10 years agovideomixer: Check if the pad needs reconfiguration in collected
Mathieu Duponchelle [Thu, 3 Oct 2013 19:36:34 +0000 (21:36 +0200)]
videomixer: Check if the pad needs reconfiguration in collected

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

10 years agojpegdec: Relax sink caps
Matthieu Bouron [Thu, 3 Oct 2013 13:39:35 +0000 (14:39 +0100)]
jpegdec: Relax sink caps

Since jpegdec already parse the jpeg stream, the sink caps could be
relaxed. This will allow jpegdec to be selected in more case and in
particular when the jpeg typefinder does not find the width and height.

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

10 years agov4l2src: print probed caps as caps again in debug log
Tim-Philipp Müller [Thu, 3 Oct 2013 17:33:01 +0000 (18:33 +0100)]
v4l2src: print probed caps as caps again in debug log

This got lost during refactoring.

10 years agoqtdemux: Add support for the mp2v fourcc for MPEG-2 video
Sebastian Dröge [Thu, 3 Oct 2013 09:59:25 +0000 (11:59 +0200)]
qtdemux: Add support for the mp2v fourcc for MPEG-2 video

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

10 years agomatroskademux: Fix memory leak
Ognyan Tonchev [Wed, 2 Oct 2013 13:56:53 +0000 (15:56 +0200)]
matroskademux: Fix memory leak

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

10 years agoqtdemux: Add HEVC support
Sreerenj Balachandran [Mon, 30 Sep 2013 09:31:42 +0000 (12:31 +0300)]
qtdemux: Add HEVC support

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

10 years agortpgstpay: Fix memory leak
Ognyan Tonchev [Mon, 30 Sep 2013 10:24:32 +0000 (12:24 +0200)]
rtpgstpay: Fix memory leak

We were leaking the GList nodes of the pending buffers.

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

10 years agortpjitterbuffer: fix race when updating the next_seqnum
Wim Taymans [Mon, 30 Sep 2013 10:31:00 +0000 (12:31 +0200)]
rtpjitterbuffer: fix race when updating the next_seqnum

If we were not waiting for the missing seqnum when we insert the lost packet
event in the jitterbuffer, we end up not updating the next_seqnum and wait
forever for the lost packets to arrive. Instead, keep track of the amount of
packets contained by the jitterbuffer item and update the next expected
seqnum only after pushing the buffer/event. This makes sure we correctly handle
GAPS in the sequence numbers.

10 years agortpjitterbuffer: small debug improvement
Wim Taymans [Mon, 30 Sep 2013 10:30:23 +0000 (12:30 +0200)]
rtpjitterbuffer: small debug improvement

10 years agortpjitterbuffer: reset skew does not reset clock-rate
Wim Taymans [Mon, 30 Sep 2013 09:53:08 +0000 (11:53 +0200)]
rtpjitterbuffer: reset skew does not reset clock-rate

Don't reset the clock-rate when we reset the skew correction algorithm.
Reset the skew correction algorithm when we change the clock-rate.

10 years agortpjitterbuffer: pause timer when PAUSED
Wim Taymans [Mon, 30 Sep 2013 09:16:32 +0000 (11:16 +0200)]
rtpjitterbuffer: pause timer when PAUSED

Also pause the timer when we go to the PAUSED state. It is possible that we
don't have a clock or base-time in PAUSED to perform the timeouts.

10 years agortpjitterbuffer: improve debug
Wim Taymans [Mon, 30 Sep 2013 09:15:25 +0000 (11:15 +0200)]
rtpjitterbuffer: improve debug

10 years agomp4mux: Do not require framerate in peer video caps
Hans Månsson [Thu, 26 Sep 2013 18:41:26 +0000 (20:41 +0200)]
mp4mux: Do not require framerate in peer video caps

Remove the framerate restriction on the caps.

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

10 years agortspsrc: also go into the loop function after connect
Wim Taymans [Fri, 27 Sep 2013 13:05:04 +0000 (15:05 +0200)]
rtspsrc: also go into the loop function after connect

When we have opened the stream, go into the loop function so that we can
receive messages from the server.

10 years agomatroskademux: move the check for subtitle buffer being null terminated before valida...
Matej Knopp [Fri, 27 Sep 2013 10:53:06 +0000 (12:53 +0200)]
matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8

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

10 years agortpjitterbuffer: don't calculate skew without rtptime
Wim Taymans [Thu, 26 Sep 2013 14:20:04 +0000 (16:20 +0200)]
rtpjitterbuffer: don't calculate skew without rtptime

Skip trying to calculate the skew when we don't have an rtptime.
It causes problems when lost packet events are placed in the jitterbuffer.

10 years agoconfigure: get rid of AS_SCRUB_INCLUDE
Tim-Philipp Müller [Wed, 25 Sep 2013 22:46:14 +0000 (23:46 +0100)]
configure: get rid of AS_SCRUB_INCLUDE

Should not be needed any more.

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

10 years agortspsrc: disable checks when linking pads
Wim Taymans [Wed, 25 Sep 2013 15:42:02 +0000 (17:42 +0200)]
rtspsrc: disable checks when linking pads

We know the pad links will work (and we don't check the return value
anyway).

10 years agortpbin: avoid some pad link checks
Wim Taymans [Wed, 25 Sep 2013 15:36:15 +0000 (17:36 +0200)]
rtpbin: avoid some pad link checks

Link pads without checks, we know it will work.

10 years agoqtmux: Don't error out if downstream is not seekable for non-fragmented variants
Sebastian Dröge [Wed, 25 Sep 2013 10:55:21 +0000 (12:55 +0200)]
qtmux: Don't error out if downstream is not seekable for non-fragmented variants

Doing so would be a regression over 1.0 and breaks the unit test.
However the result will be most likely unusable, so let's post
a warning message on the bus.

10 years agortpjitterbuffer: calculate some stats
Wim Taymans [Tue, 24 Sep 2013 02:02:09 +0000 (04:02 +0200)]
rtpjitterbuffer: calculate some stats

10 years agortpjitterbuffer: move send_lost_event function
Wim Taymans [Mon, 23 Sep 2013 15:05:44 +0000 (17:05 +0200)]
rtpjitterbuffer: move send_lost_event function

Move the send_lost_event function to the do_lost_event handling, there is no
need to have a separate function.

10 years agoqtdemux: add code to parse creation time earlier than 1970
Thiago Santos [Mon, 16 Sep 2013 14:20:51 +0000 (11:20 -0300)]
qtdemux: add code to parse creation time earlier than 1970

Use g_date_time seconds manipulation to allow to cover the quicktime
spec for creation_time. It uses seconds since 1904.

Both paths could be done using the generic approach of seconds since
1904 with GDateTime handling, but the first path using seconds from
1970 should be more commonly found and avoids a few objects creation and
ref/unref, so keep it there for performance.

Additionally, the code for handling seconds since 1970 changed from >
to >= because having 0 seconds since 1970 is also a valid case for that
path to handle.

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

10 years agomatroskademux: update stream->pos when sending buffers so that gap events are not...
Matej Knopp [Fri, 20 Sep 2013 22:55:26 +0000 (00:55 +0200)]
matroskademux: update stream->pos when sending buffers so that gap events are not sent unnecessarily

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

10 years agoAutomatic update of common submodule
Tim-Philipp Müller [Tue, 24 Sep 2013 17:30:04 +0000 (18:30 +0100)]
Automatic update of common submodule

From 6b03ba7 to 865aa20

10 years agoconfigure: Actually use 1.3.0.1 as version to make configure happy
Sebastian Dröge [Tue, 24 Sep 2013 13:05:24 +0000 (15:05 +0200)]
configure: Actually use 1.3.0.1 as version to make configure happy

10 years agoBack to development
Sebastian Dröge [Tue, 24 Sep 2013 13:00:24 +0000 (15:00 +0200)]
Back to development

10 years agoRelease 1.2.0 1.2.0
Sebastian Dröge [Tue, 24 Sep 2013 12:21:08 +0000 (14:21 +0200)]
Release 1.2.0

10 years agoUpdate .po files
Sebastian Dröge [Tue, 24 Sep 2013 12:20:51 +0000 (14:20 +0200)]
Update .po files

10 years agoosxvideosink: fix segfault releasing the sink
Andoni Morales Alastruey [Fri, 20 Sep 2013 17:43:21 +0000 (19:43 +0200)]
osxvideosink: fix segfault releasing the sink

show_frame is deferred to the main thread and can be called
when the sink has been released, so we need to keep an extra ref
on ObjectiveC object helper.

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

10 years agov4l2bufferpool: Restore original GstMemory in buffer if it has been changed
Robert Krakora [Thu, 19 Sep 2013 21:11:34 +0000 (17:11 -0400)]
v4l2bufferpool: Restore original GstMemory in buffer if it has been changed

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

10 years agortpmanager: update docs
Wim Taymans [Mon, 23 Sep 2013 14:34:15 +0000 (16:34 +0200)]
rtpmanager: update docs

10 years agodocs: update docs with 1.0 element names
Wim Taymans [Mon, 23 Sep 2013 13:36:32 +0000 (15:36 +0200)]
docs: update docs with 1.0 element names

10 years agotests: add test for retransmission because of reordering
Wim Taymans [Mon, 23 Sep 2013 12:13:30 +0000 (14:13 +0200)]
tests: add test for retransmission because of reordering

10 years agortpjitterbuffer: always store lost event in jitterbuffer
Wim Taymans [Mon, 23 Sep 2013 12:12:03 +0000 (14:12 +0200)]
rtpjitterbuffer: always store lost event in jitterbuffer

Always prepare a lost event in the jitterbuffer, it is to wake up and make the
pushing thread continue. We drop the event when we are not supposed to push lost
events downstream.

10 years agortpjitterbuffer: schedule lost event differently
Wim Taymans [Mon, 23 Sep 2013 09:18:46 +0000 (11:18 +0200)]
rtpjitterbuffer: schedule lost event differently

Schedule the lost event by placing it inside the jitterbuffer with the seqnum
that was lost so that the pushing thread can interleave and push it properly.

10 years agotests: remove timeouts from check
Wim Taymans [Mon, 23 Sep 2013 09:17:34 +0000 (11:17 +0200)]
tests: remove timeouts from check

Timeouts make the test unreliable and are not needed.

10 years agortpjitterbuffer: remove list debug
Wim Taymans [Mon, 23 Sep 2013 09:15:30 +0000 (11:15 +0200)]
rtpjitterbuffer: remove list debug

10 years agortpjitterbuffer: add type to the item
Wim Taymans [Mon, 23 Sep 2013 09:14:01 +0000 (11:14 +0200)]
rtpjitterbuffer: add type to the item

So that the upper layer can know what data is contained in the item.

10 years agortpjitterbuffer: fix flush
Wim Taymans [Mon, 23 Sep 2013 07:58:32 +0000 (09:58 +0200)]
rtpjitterbuffer: fix flush

Pass function to flush to properly free the queue items.

10 years agortpjitterbuffer: append seqnum -1 packets
Wim Taymans [Fri, 20 Sep 2013 22:08:20 +0000 (00:08 +0200)]
rtpjitterbuffer: append seqnum -1 packets

10 years agortpjitterbuffer: use structure to hold packet information
Wim Taymans [Fri, 20 Sep 2013 21:48:20 +0000 (23:48 +0200)]
rtpjitterbuffer: use structure to hold packet information

Make the jitterbuffer operate on a structure containing all the packet
information. This avoids mapping the buffer multiple times just to get the RTP
information. It will also make it possible to store other miniobjects such as
events later.

10 years agortpjitterbuffer: update expected timer when possible
Wim Taymans [Fri, 20 Sep 2013 15:48:52 +0000 (17:48 +0200)]
rtpjitterbuffer: update expected timer when possible

When we receive a packet and we have some missing packets, we can update their
estimated arrival times based on the timestamp difference.

10 years agortpjitterbuffer: fix order of timeout events
Wim Taymans [Fri, 20 Sep 2013 15:18:27 +0000 (17:18 +0200)]
rtpjitterbuffer: fix order of timeout events

Improve the order of the timeout events, if there are timers with the same
timeout, we want to trigger the lowest seqnum first. For this we need to loop
over the complete array of timers to find the best one before triggering the
timeout.

10 years agortpjitterbuffer: send lost event before signaling next buffer
Wim Taymans [Fri, 20 Sep 2013 14:58:38 +0000 (16:58 +0200)]
rtpjitterbuffer: send lost event before signaling next buffer

First send the lost event, then update the next_seqnum counter and then
send the signal to the pushing thread that it can retry to push a buffer. This
avoids pushing out buffers before the lost event is pushed.

10 years agojitterbuffer: configure clock-rate on jitterbuffer
Wim Taymans [Fri, 20 Sep 2013 13:35:25 +0000 (15:35 +0200)]
jitterbuffer: configure clock-rate on jitterbuffer

Add a get and setter to configure the clock-rate in the jitterbuffer instead of
passing it as an argument to the insert method.

10 years agotests: add test for packet delay and retransmission
Wim Taymans [Fri, 20 Sep 2013 10:29:39 +0000 (12:29 +0200)]
tests: add test for packet delay and retransmission

10 years agortpjitterbuffer: add option to reset retransmission timers
Wim Taymans [Fri, 20 Sep 2013 10:27:26 +0000 (12:27 +0200)]
rtpjitterbuffer: add option to reset retransmission timers

10 years agortpjitterbuffer: stop the timer thread
Wim Taymans [Fri, 20 Sep 2013 10:25:43 +0000 (12:25 +0200)]
rtpjitterbuffer: stop the timer thread

The timeout code could release the lock so we need to check if we are allowed to
wait for the clock some more.

10 years agortpjitterbuffer: unlock only once
Wim Taymans [Fri, 20 Sep 2013 10:25:12 +0000 (12:25 +0200)]
rtpjitterbuffer: unlock only once

10 years agotests: check both PTS and DTS
Wim Taymans [Fri, 20 Sep 2013 09:30:04 +0000 (11:30 +0200)]
tests: check both PTS and DTS

10 years agotests: add unit-test for multiple missing packets
Wim Taymans [Fri, 20 Sep 2013 08:55:03 +0000 (10:55 +0200)]
tests: add unit-test for multiple missing packets

Check if multiple missing packets generate retransmission events and that the
retranmission requests are canceled when the missing packet arrives.

10 years agortpjitterbuffer: improve flush and shutdown
Wim Taymans [Fri, 20 Sep 2013 08:53:29 +0000 (10:53 +0200)]
rtpjitterbuffer: improve flush and shutdown

There is no need to unschedule the timer in flush-start, flush-stop will remove
the timers and unschedule.
Unschedule the current timer before attempting to join the timer thread.

10 years agotests: improve debug
Wim Taymans [Fri, 20 Sep 2013 08:43:53 +0000 (10:43 +0200)]
tests: improve debug

10 years agortpjitterbuffer: set correct expected time
Wim Taymans [Fri, 20 Sep 2013 08:42:27 +0000 (10:42 +0200)]
rtpjitterbuffer: set correct expected time

When we already have a timer for a packet, skip it but don't forget to adjust
the dts to the expected dts of the next packet.