platform/upstream/gst-plugins-good.git
11 years agortpgstpay: reset on state change
Wim Taymans [Wed, 21 Aug 2013 08:03:52 +0000 (10:03 +0200)]
rtpgstpay: reset on state change

Do full reset on state change to READY

11 years agortpgstpay: reset on FLUSH_STOP
Wim Taymans [Wed, 21 Aug 2013 07:55:20 +0000 (09:55 +0200)]
rtpgstpay: reset on FLUSH_STOP

Clear the adapter and pending buffer list on FLUSH_STOP.

11 years agortpgstpay: don't use clock for config interval
Wim Taymans [Wed, 21 Aug 2013 07:39:30 +0000 (09:39 +0200)]
rtpgstpay: don't use clock for config interval

We can't use the clock to time our config-interval because we are not
live (or there might not be a clock or the clock might not be running).
Instead just simply take the timestamp diff.

11 years agortpgstay: don't use // comments
Wim Taymans [Wed, 21 Aug 2013 07:33:04 +0000 (09:33 +0200)]
rtpgstay: don't use // comments

11 years agortspsrc: Fix response argument in handle-request signal
Youness Alaoui [Thu, 8 Aug 2013 15:55:22 +0000 (11:55 -0400)]
rtspsrc: Fix response argument in handle-request signal

11 years agortspsrc: Add sdes property and proxy it to rtpbin
Youness Alaoui [Thu, 8 Aug 2013 15:54:41 +0000 (11:54 -0400)]
rtspsrc: Add sdes property and proxy it to rtpbin

11 years agoSend a stream-start whenever we send tags
Youness Alaoui [Wed, 7 Aug 2013 13:47:35 +0000 (09:47 -0400)]
Send a stream-start whenever we send tags
This is to make sure tags are cleared on the client if the
stream-start was previously lost, otherwise, the client may end
up with a merged taglist of multiple songs

11 years agortpgstpay: Add a config-interval property to resend the caps/tags at a regular interval
Youness Alaoui [Fri, 26 Jul 2013 01:12:05 +0000 (21:12 -0400)]
rtpgstpay: Add a config-interval property to resend the caps/tags at a regular interval
This is useful in case the packet containing the inlined caps was lost
or if new client joins an already running RTP stream and they missed
the previous tag events.
This also makes the payloader keep a list of merged tags so the retransmitted
tag event contains all previously received. A STREAM_START event will
flush the list of tags.

11 years agortpgstpay: Refactor the setcaps and use new method to send arbitrary caps at any...
Youness Alaoui [Fri, 26 Jul 2013 01:10:10 +0000 (21:10 -0400)]
rtpgstpay: Refactor the setcaps and use new method to send arbitrary caps at any time

11 years agortpgstpay: Do not flush events for stream-start and avoid conflict between event...
Youness Alaoui [Fri, 26 Jul 2013 01:03:34 +0000 (21:03 -0400)]
rtpgstpay: Do not flush events for stream-start and avoid conflict between event and pending inline caps

11 years agortpgstpay: Add a create_from_adapter API and use a list of GstBufferList
Youness Alaoui [Fri, 26 Jul 2013 00:54:50 +0000 (20:54 -0400)]
rtpgstpay: Add a create_from_adapter API and use a list of GstBufferList
This is necessary to fix event/caps sending. If we send a STREAM_START
packet, it will cause an error because the stream didn't receive its
caps and new-segment events, so we must wait for the first buffer before
sending the stream-start event buffer. However, the caps will be sent
at the same time and so the 'inline caps' will be set for the event.
We need to be able to payload individual packets (data, caps or events)
and only send them when we call flush.

11 years agortpgstpay: Add etype=4 for payloading GST_EVENT_STREAM_START
Youness Alaoui [Thu, 25 Jul 2013 21:56:38 +0000 (17:56 -0400)]
rtpgstpay: Add etype=4 for payloading GST_EVENT_STREAM_START

11 years agortpgstpay: Fix typo, GST_EVENT_CUSTOM_BOTH has etype of 3
Youness Alaoui [Thu, 25 Jul 2013 21:52:16 +0000 (17:52 -0400)]
rtpgstpay: Fix typo, GST_EVENT_CUSTOM_BOTH has etype of 3

11 years agojitterbuffer: handle EOS
Wim Taymans [Tue, 20 Aug 2013 12:36:59 +0000 (14:36 +0200)]
jitterbuffer: handle EOS

When the queue is empty, and we received EOS, pause and push an EOS
event downstream.

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

11 years agojitterbuffer: update docs
Wim Taymans [Tue, 20 Aug 2013 08:26:15 +0000 (10:26 +0200)]
jitterbuffer: update docs

11 years agojitterbuffer: update all timers
Wim Taymans [Tue, 20 Aug 2013 08:25:17 +0000 (10:25 +0200)]
jitterbuffer: update all timers

Keep looping over all registered timers so that we can mark them lost instead of
stopping as soon as we find the timer for the current seqnum.

11 years agojitterbuffer: remove unused variables
Wim Taymans [Tue, 20 Aug 2013 06:55:50 +0000 (08:55 +0200)]
jitterbuffer: remove unused variables

11 years agojitterbuffer: reorganize timer handling
Wim Taymans [Mon, 19 Aug 2013 19:10:00 +0000 (21:10 +0200)]
jitterbuffer: reorganize timer handling

Restructure handling of incomming packet and the gap with the expected seqnum
and register all timers from the _chain function.
Convert a timer to a LOST packet timer when the max amount of retransmission
requests has been reached.

11 years agojitterbuffer: refactor packet spacing calculation
Wim Taymans [Mon, 19 Aug 2013 19:37:44 +0000 (21:37 +0200)]
jitterbuffer: refactor packet spacing calculation

11 years agojitterbuffer: keep track of last seqnum and dts
Wim Taymans [Mon, 19 Aug 2013 19:34:38 +0000 (21:34 +0200)]
jitterbuffer: keep track of last seqnum and dts

11 years agojitterbuffer: small cleanups
Wim Taymans [Mon, 19 Aug 2013 19:29:49 +0000 (21:29 +0200)]
jitterbuffer: small cleanups

11 years agojitterbuffer: reset retransmission timers in add/reschedule
Wim Taymans [Mon, 19 Aug 2013 19:21:08 +0000 (21:21 +0200)]
jitterbuffer: reset retransmission timers in add/reschedule

Reset the retransmission timers when adding and rescheduling a timer.

11 years agojitterbuffer: rename variables for packet spacing
Wim Taymans [Mon, 19 Aug 2013 19:12:13 +0000 (21:12 +0200)]
jitterbuffer: rename variables for packet spacing

11 years agojitterbuffer: remove lost timer when we get the packet
Wim Taymans [Mon, 19 Aug 2013 12:58:01 +0000 (14:58 +0200)]
jitterbuffer: remove lost timer when we get the packet

When we receive a packet, also remove the LOST timer for it.

11 years agojitterbuffer: expected seqnum must increase
Wim Taymans [Mon, 19 Aug 2013 12:56:49 +0000 (14:56 +0200)]
jitterbuffer: expected seqnum must increase

Only update the expected seqnum when it is bigger than the previous expected
seqnum.

11 years agojitterbuffer: add more debug
Wim Taymans [Mon, 19 Aug 2013 12:55:49 +0000 (14:55 +0200)]
jitterbuffer: add more debug

11 years agortxqueue: add retransmission queue element
Wim Taymans [Mon, 12 Aug 2013 14:15:54 +0000 (16:15 +0200)]
rtxqueue: add retransmission queue element

11 years agosession: add some docs
Wim Taymans [Mon, 12 Aug 2013 12:53:33 +0000 (14:53 +0200)]
session: add some docs

11 years agosession: handle NACK feedback and generate events
Wim Taymans [Tue, 6 Aug 2013 14:29:54 +0000 (16:29 +0200)]
session: handle NACK feedback and generate events

Handle and parse the feedback NACK packets and generate a Retransmission
event for each NACKed packet

11 years agov4l2: Add forward declaration for gst_v4l2_object_get_format_list
Olivier Crête [Mon, 19 Aug 2013 17:19:42 +0000 (13:19 -0400)]
v4l2: Add forward declaration for gst_v4l2_object_get_format_list

11 years agov4l2: De-duplicate caps probing between src and sink
Olivier Crête [Mon, 22 Oct 2012 21:58:07 +0000 (17:58 -0400)]
v4l2: De-duplicate caps probing between src and sink

11 years agopulse: Remove unused GstPulseProbe
Olivier Crête [Tue, 13 Aug 2013 21:32:17 +0000 (17:32 -0400)]
pulse: Remove unused GstPulseProbe

11 years agov4l2: Use G_DEFINE_ macros for added thread safety
Olivier Crête [Mon, 19 Aug 2013 16:46:45 +0000 (12:46 -0400)]
v4l2: Use G_DEFINE_ macros for added thread safety

11 years agovideomixer: Do not send flush_stop ourself after a flush_start
Thibault Saunier [Sat, 17 Aug 2013 09:28:13 +0000 (11:28 +0200)]
videomixer: Do not send flush_stop ourself after a flush_start

When we receive a flush_start, we should wait for the next flush_stop
and foward it, not create a flush_stop ourself.

11 years agoh264depay: init debug category early
Wim Taymans [Fri, 16 Aug 2013 15:10:31 +0000 (17:10 +0200)]
h264depay: init debug category early

Init the debug variable when we register the element because it is also used by
the payloader element when it calls the add_sps_pps method.

11 years agoflacenc: Properly set headers via the base class instead of just pushing them downstream
Sebastian Dröge [Fri, 16 Aug 2013 11:26:28 +0000 (13:26 +0200)]
flacenc: Properly set headers via the base class instead of just pushing them downstream

Prevents buffers from being send before the caps and segment events.

11 years agoqtdemux: check denominator isn't zero before scaling duration.
Chris Bass [Thu, 15 Aug 2013 09:59:10 +0000 (10:59 +0100)]
qtdemux: check denominator isn't zero before scaling duration.

When gst_qtdemux_configure_stream sets fps_d, check that n_samples is
non-zero before using it as a denominator to scale the stream duration.

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

11 years agoext: Use new flush vfunc of video codec base classes and remove reset implementations
Sebastian Dröge [Thu, 15 Aug 2013 13:08:05 +0000 (15:08 +0200)]
ext: Use new flush vfunc of video codec base classes and remove reset implementations

11 years agojitterbuffer: forward flush before stopping dataflow
Wim Taymans [Wed, 14 Aug 2013 14:19:32 +0000 (16:19 +0200)]
jitterbuffer: forward flush before stopping dataflow

First forward the flush event and then stop our loop function.

11 years agoconfigure: require libsoup >= 2.38
Tim-Philipp Müller [Wed, 14 Aug 2013 12:10:32 +0000 (13:10 +0100)]
configure: require libsoup >= 2.38

Bump libsoup requirement for newer API used, like headers_get_one().
2.38 is from early 2012 and is in linen with our GLib requirement.

11 years agosoup: don't use deprecated soup_message_headers_get() API
Tim-Philipp Müller [Wed, 14 Aug 2013 10:54:19 +0000 (11:54 +0100)]
soup: don't use deprecated soup_message_headers_get() API

11 years ago.gitignore: Ignore files from automake test-driver
Edward Hervey [Tue, 13 Aug 2013 15:44:50 +0000 (17:44 +0200)]
.gitignore: Ignore files from automake test-driver

11 years agortph264pay: Use the SPS/PPS handling function from the depayloader
Olivier Crête [Mon, 12 Aug 2013 19:28:34 +0000 (15:28 -0400)]
rtph264pay: Use the SPS/PPS handling function from the depayloader

Remove duplicated copies

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

11 years agortph264depay: Make the SPS/PPS deduplication function generic
Olivier Crête [Mon, 12 Aug 2013 19:26:08 +0000 (15:26 -0400)]
rtph264depay: Make the SPS/PPS deduplication function generic

Make it not touch any internals of the depayloader

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

11 years agoaacparse: allow conversion from raw AAC to ADTS
Chris Bass [Tue, 13 Aug 2013 13:09:20 +0000 (14:09 +0100)]
aacparse: allow conversion from raw AAC to ADTS

This patch will prepend ADTS headers to raw AAC audio frames, allowing
upstream elements to link to decoders that only support AAC in ADTS format.

Note that no error correction bits are added to ADTS frames in this code.

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

11 years agortspsrc: Only free GCheckSum after its last usage
Sebastian Dröge [Tue, 13 Aug 2013 10:44:11 +0000 (12:44 +0200)]
rtspsrc: Only free GCheckSum after its last usage

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

11 years agosouphttpsrc: fix critical setting a NULL uri redirection
Andoni Morales Alastruey [Tue, 13 Aug 2013 10:02:29 +0000 (12:02 +0200)]
souphttpsrc: fix critical setting a NULL uri redirection

11 years agosouphttpsrc: add redirection to the URI query
Andoni Morales Alastruey [Fri, 12 Jul 2013 23:50:56 +0000 (01:50 +0200)]
souphttpsrc: add redirection to the URI query

11 years agoqtdemux: elst should offset samples instead of buffers
Matej Knopp [Wed, 31 Jul 2013 08:42:07 +0000 (10:42 +0200)]
qtdemux: elst should offset samples instead of buffers

The current approach where buffers are offset is not ideal, as during seek
and loop current time is compared to sample times.

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

11 years agovideomixer: Send EOS if buf_end >= segment.stop
Thibault Saunier [Wed, 7 Aug 2013 17:32:07 +0000 (19:32 +0200)]
videomixer: Send EOS if buf_end >= segment.stop

That means the whole segment is already played, and we are sure we
are EOS at that point.

Also handle segment seeks, and do not send EOS in that case.

11 years agoavidemux: send proper stream_start event
Matej Knopp [Sun, 4 Aug 2013 12:40:38 +0000 (14:40 +0200)]
avidemux: send proper stream_start event

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

11 years agomatroskademux: Don't print warnings during flushing and stop as soon as possible
Sebastian Dröge [Thu, 8 Aug 2013 09:51:17 +0000 (11:51 +0200)]
matroskademux: Don't print warnings during flushing and stop as soon as possible

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

11 years agortpvp8depay: mark key frames and delta frames properly
Tim-Philipp Müller [Wed, 7 Aug 2013 10:14:38 +0000 (11:14 +0100)]
rtpvp8depay: mark key frames and delta frames properly

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

11 years agosession: add NACK feedback in RTCP
Wim Taymans [Mon, 5 Aug 2013 21:23:57 +0000 (23:23 +0200)]
session: add NACK feedback in RTCP

11 years agosource: add methods to register NACK
Wim Taymans [Mon, 5 Aug 2013 21:22:16 +0000 (23:22 +0200)]
source: add methods to register NACK

Add a method to register a missing packet for an ssrc along with
methods to get the missing packets and clear them.

11 years agosession: handle Retransmission event and schedule NACK
Wim Taymans [Sun, 4 Aug 2013 21:05:36 +0000 (23:05 +0200)]
session: handle Retransmission event and schedule NACK

Handle the retransmission event from downstream and use it to schedule a NACK
request.

11 years agosession: pass data to remove func
Wim Taymans [Mon, 5 Aug 2013 21:20:29 +0000 (23:20 +0200)]
session: pass data to remove func

Pass the data to the remove function because we are going to deref it when there
is pli or fir.

11 years agoqtdemux: Fix compilation
Thibault Saunier [Tue, 6 Aug 2013 13:28:50 +0000 (15:28 +0200)]
qtdemux: Fix compilation

11 years agoqtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE
Thibault Saunier [Tue, 6 Aug 2013 13:17:44 +0000 (15:17 +0200)]
qtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE

11 years agovideomixer: Make sure to send EOS if the buffer end time equals the segment end time
Thibault Saunier [Tue, 6 Aug 2013 09:58:38 +0000 (11:58 +0200)]
videomixer: Make sure to send EOS if the buffer end time equals the segment end time

Otherwize EOS never gets sent in that particular case.

11 years agogoom: Ensure src caps are writable
Sjoerd Simons [Mon, 5 Aug 2013 06:49:50 +0000 (08:49 +0200)]
goom: Ensure src caps are writable

In some cases the src caps determined by goom weren't writable, causing
a bunch of assertion failures and failed caps. Fixed by always
explicitely making the caps writable

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

11 years agosession: use common send_rtcp method
Wim Taymans [Sun, 4 Aug 2013 21:18:29 +0000 (23:18 +0200)]
session: use common send_rtcp method

Reuse the send_rtcp method that already asks for the current time when
requesting a keyframe.

11 years agosession: Don't use ClockTimeDiff for unsigned delays
Wim Taymans [Sun, 4 Aug 2013 21:12:50 +0000 (23:12 +0200)]
session: Don't use ClockTimeDiff for unsigned delays

11 years agoqtmux: Use buffer PTS if DTS is not set
Edward Hervey [Sun, 4 Aug 2013 14:52:15 +0000 (16:52 +0200)]
qtmux: Use buffer PTS if DTS is not set

Avoids ending up with completely bogus scaled duration/pts when new
buffers have invalid DTS.

11 years agotests: skip https test if there's no TLS support in soup/glib
Tim-Philipp Müller [Sun, 4 Aug 2013 13:32:47 +0000 (14:32 +0100)]
tests: skip https test if there's no TLS support in soup/glib

11 years agortpdec: use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 10:20:41 +0000 (11:20 +0100)]
rtpdec: use generic marshaller

11 years agov4l2: remove unused enumtypes and use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 09:52:33 +0000 (10:52 +0100)]
v4l2: remove unused enumtypes and use generic marshaller

11 years agoudp: remove unused marshal and enumtypes files
Tim-Philipp Müller [Sun, 4 Aug 2013 09:47:38 +0000 (10:47 +0100)]
udp: remove unused marshal and enumtypes files

11 years agortpmanager: use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 08:38:19 +0000 (09:38 +0100)]
rtpmanager: use generic marshaller

11 years agojitterbuffer: send event in right direction
Wim Taymans [Sat, 3 Aug 2013 22:13:07 +0000 (00:13 +0200)]
jitterbuffer: send event in right direction

11 years agotests: create/remove orc directory at proper time
David Schleef [Sat, 3 Aug 2013 00:38:34 +0000 (17:38 -0700)]
tests: create/remove orc directory at proper time

Before automake creates .deps directories, and during distclean.

11 years agosession: add FIR and PLI like other RTCP packets
Wim Taymans [Fri, 2 Aug 2013 22:25:44 +0000 (00:25 +0200)]
session: add FIR and PLI like other RTCP packets

Add the FIR and PLI packets like the other RTCP packet instead of from the
on-sending-rtcp default signal handler.

11 years agojitterbuffer: fix property ranges
Wim Taymans [Fri, 2 Aug 2013 15:22:55 +0000 (17:22 +0200)]
jitterbuffer: fix property ranges

11 years agojitterbuffer: push retransmission events
Wim Taymans [Fri, 2 Aug 2013 14:42:52 +0000 (16:42 +0200)]
jitterbuffer: push retransmission events

11 years agobuild: add subdir-objects to AM_INIT_AUTOMAKE
Lubosz Sarnecki [Fri, 2 Aug 2013 12:12:16 +0000 (14:12 +0200)]
build: add subdir-objects to AM_INIT_AUTOMAKE

Fixes warnings with automake 1.14

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

11 years agojitterbuffer: add support for retransmission retry
Wim Taymans [Fri, 2 Aug 2013 12:54:56 +0000 (14:54 +0200)]
jitterbuffer: add support for retransmission retry

When we didn't receive a packet after requesting retransmission, retry
asking for retransmission for a certain period.

11 years agojitterbuffer: add properties
Wim Taymans [Fri, 2 Aug 2013 12:19:54 +0000 (14:19 +0200)]
jitterbuffer: add properties

Add properties to control retransmission parameters

11 years agojitterbuffer: use corrected timeout when rescheduling
Wim Taymans [Fri, 2 Aug 2013 10:44:58 +0000 (12:44 +0200)]
jitterbuffer: use corrected timeout when rescheduling

When we recalculate the timeout, use the corrected timeout value depending on
the timer type.

11 years agojitterbuffer: update timers after queueing
Wim Taymans [Fri, 2 Aug 2013 10:43:00 +0000 (12:43 +0200)]
jitterbuffer: update timers after queueing

Else we might update the timer needlessly for duplicates.

11 years agojitterbuffer: move method up
Wim Taymans [Fri, 2 Aug 2013 10:42:08 +0000 (12:42 +0200)]
jitterbuffer: move method up

11 years agojitterbuffer: small cleanup
Wim Taymans [Fri, 2 Aug 2013 04:28:32 +0000 (06:28 +0200)]
jitterbuffer: small cleanup

11 years agojitterbuffer: unschedule old expected packets
Wim Taymans [Thu, 1 Aug 2013 21:26:06 +0000 (23:26 +0200)]
jitterbuffer: unschedule old expected packets

When we receive a new packet, unschedule old outstanding packets when their
seqnum is too far away.

11 years agojitterbuffer: refactor timer update
Wim Taymans [Thu, 1 Aug 2013 21:29:23 +0000 (23:29 +0200)]
jitterbuffer: refactor timer update

11 years agojitterbuffer: update timers when removing
Wim Taymans [Thu, 1 Aug 2013 21:24:29 +0000 (23:24 +0200)]
jitterbuffer: update timers when removing

Update the timers when we remove a timer.
Handle canceled timers, make them unschedule the current timer and
trigger the timeout code.

11 years agojitterbuffer: fix typo
Wim Taymans [Thu, 1 Aug 2013 21:22:02 +0000 (23:22 +0200)]
jitterbuffer: fix typo

11 years agojitterbuffer: improve timeout management
Wim Taymans [Thu, 1 Aug 2013 13:40:52 +0000 (15:40 +0200)]
jitterbuffer: improve timeout management

If we change the seqnum of an existing timer and we were waiting for
that timer, unschedule it. If we change the timeout of an existing timer and we
were waiting on it, only unschedule when the new time is smaller.

11 years agojitterbuffer: install timer for expected arrival
Wim Taymans [Thu, 1 Aug 2013 13:05:35 +0000 (15:05 +0200)]
jitterbuffer: install timer for expected arrival

Install a timer that is triggered when the expected arrival time of a packet
expired.

11 years agojitterbuffer: improve unschedule of timers
Wim Taymans [Thu, 1 Aug 2013 12:56:00 +0000 (14:56 +0200)]
jitterbuffer: improve unschedule of timers

Conflicts:
gst/rtpmanager/gstrtpjitterbuffer.c

11 years agojitterbuffer: move code around
Wim Taymans [Thu, 1 Aug 2013 10:21:53 +0000 (12:21 +0200)]
jitterbuffer: move code around

11 years agojitterbuffer: estimate inter packet spacing
Wim Taymans [Thu, 1 Aug 2013 10:07:11 +0000 (12:07 +0200)]
jitterbuffer: estimate inter packet spacing

When we see two packets with consecutive seqnums and a different RTP time, use
the DTS difference as the inter packet spacing estimate.

11 years agojitterbuffer: keep track of current timeout
Wim Taymans [Thu, 1 Aug 2013 10:01:15 +0000 (12:01 +0200)]
jitterbuffer: keep track of current timeout

11 years agojitterbuffer: cleanup timer handling
Wim Taymans [Thu, 1 Aug 2013 09:49:10 +0000 (11:49 +0200)]
jitterbuffer: cleanup timer handling

11 years agojitterbuffer: reset is only possible with a GAP
Wim Taymans [Thu, 1 Aug 2013 09:40:41 +0000 (11:40 +0200)]
jitterbuffer: reset is only possible with a GAP

11 years agojitterbuffer: operate on DTS
Wim Taymans [Thu, 1 Aug 2013 09:29:32 +0000 (11:29 +0200)]
jitterbuffer: operate on DTS

Make the jitterbuffer schedule the timeouts based on the DTS instead
of the PTS. This makes it all smoother with reordered frames and gives
the decoder time to reorder the frames in time.

11 years agojitterbuffer: rename timout variable
Wim Taymans [Thu, 1 Aug 2013 09:14:12 +0000 (11:14 +0200)]
jitterbuffer: rename timout variable

11 years agojitterbuffer: small cleanup
Wim Taymans [Wed, 31 Jul 2013 15:08:58 +0000 (17:08 +0200)]
jitterbuffer: small cleanup

11 years agojitterbuffer: block output in paused or buffering
Wim Taymans [Wed, 31 Jul 2013 14:59:58 +0000 (16:59 +0200)]
jitterbuffer: block output in paused or buffering

11 years agojitterbuffer: store pts in timer
Wim Taymans [Wed, 31 Jul 2013 14:59:09 +0000 (16:59 +0200)]
jitterbuffer: store pts in timer

Only store the pts in the timer so that we can both do timeouts with timings on
the input and output of the jitterbuffer.

11 years agortpjitterbuffer: refactor jitterbuffer
Wim Taymans [Tue, 30 Jul 2013 21:14:24 +0000 (23:14 +0200)]
rtpjitterbuffer: refactor jitterbuffer

Refactor the jitterbuffer code. Make separate function for peeking a buffer,
pushing the next buffer, waiting for timeouts and handling the timeouts.

The main loop now tries to push as many buffers as it can until it runs out of
buffers or when it detects a seqnum discont. Then it will wait for some event to
happen before attempting to push more buffers.

Make methods to register timeouts in an array. These timeouts are registered
when we detect a missing packet, sync for the first packet or when we find an
estimation for the end-of-stream.

This greatly simplifies and clarifies the code and also makes it possible to
register more complicated timeout schemes later.

11 years agortpjitterbuffer: use NULL to ignore percent
Wim Taymans [Tue, 30 Jul 2013 16:52:58 +0000 (18:52 +0200)]
rtpjitterbuffer: use NULL to ignore percent

If we pass NULL to pop and push we ignore the percent result.