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

11 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

11 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

11 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

11 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

11 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

11 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

11 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.

11 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

11 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

11 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.

11 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

11 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)

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

11 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.

11 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);
       ^

11 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

11 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

11 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

11 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.

11 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

11 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.

11 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

11 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

11 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.

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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()).

11 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

11 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

11 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

11 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

11 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.

11 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

11 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

11 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

11 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.

11 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

11 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

11 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

11 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

11 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.

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

11 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.

11 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.

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

11 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

11 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.

11 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

11 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.

11 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

11 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).

11 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.

11 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.

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

11 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.

11 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

11 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

11 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

11 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

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

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

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

11 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

11 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

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

11 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

11 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

11 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.

11 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.

11 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.

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

11 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.

11 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.

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

11 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.

11 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.

11 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.

11 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.

11 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.

11 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

11 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

11 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.

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

11 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

11 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.

11 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.

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

11 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.

11 years agojitterbuffer: improve debug
Wim Taymans [Fri, 20 Sep 2013 08:41:59 +0000 (10:41 +0200)]
jitterbuffer: improve debug

11 years agoalpha: use POFFSET instead of OFFSET
Wim Taymans [Thu, 19 Sep 2013 14:55:25 +0000 (16:55 +0200)]
alpha: use POFFSET instead of OFFSET

Use the more correct POFFSET macro to get the offset of a component in its
plane. The offset macro gives the offset of the component relative to the start
of the frame.

11 years agogoom: Fix MMX assembly compilation with clang
Sebastian Dröge [Sat, 21 Sep 2013 16:46:29 +0000 (18:46 +0200)]
goom: Fix MMX assembly compilation with clang

clang does not want or need a clobber list for emms:
error: clobbers must be last on the x87 stack

Patch taken from the FreeBSD ports, provided by
Dan McGregor <dan.mcgregor@usask.ca>

11 years agoAutomatic update of common submodule
Edward Hervey [Fri, 20 Sep 2013 14:16:57 +0000 (16:16 +0200)]
Automatic update of common submodule

From b613661 to 6b03ba7

11 years agomatroska-demux: Make sure that subtitle buffers are \0-terminated
Sebastian Dröge [Fri, 20 Sep 2013 08:19:22 +0000 (10:19 +0200)]
matroska-demux: Make sure that subtitle buffers are \0-terminated

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

11 years agoqtmux: handle issues correctly when downstream is not seekable
Andoni Morales Alastruey [Tue, 17 Sep 2013 10:17:54 +0000 (12:17 +0200)]
qtmux: handle issues correctly when downstream is not seekable

The streamable property only make sense for fragmented formats.
For regular MP4, when downstream is not seekable we can't rewrite
the headers, so qtmux can only work with fast-start=TRUE, where
the headers are written finishing the file.
For fragmented MP4, when streamable is not seekable and the streamable
property is FALSE, we must enforce streamable=TRUE warning the user
about this change

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