Wim Taymans
f1106cde66
session: only update next check time when reconsidering
...
Don't update the next RTCP check time in all cases but only when we
reconsidered. This avoids delaying sending a full RTCP packet when we
are doing early feedback.
2013-08-27 09:55:52 +02:00
Wim Taymans
47065db0b6
session: add more debug
2013-08-27 09:55:52 +02:00
Wim Taymans
454d75951e
jitterbuffer: fix types of the retransmission event
2013-08-27 09:55:52 +02:00
Wim Taymans
dd4af0d11c
jitterbuffer: only timeout EXPECTED timers on gap
...
Only timeout the EXPECTED timers when we detect a large seqnum gap.
2013-08-27 09:44:18 +02:00
Wim Taymans
4b7bcc2ec1
rtsession: fix locking
...
We need to take the session lock when getting and manipulating the
source.
2013-08-26 11:50:27 +02:00
Wim Taymans
3f46527f75
rtpsession: add some more debug
2013-08-26 11:50:13 +02:00
Mathieu Duponchelle
5d21f8f2e3
videomixer: don't send flush_stop twice.
...
If we get flush start and a seek we need to only send flush_stop once.
More info at #706441
2013-08-23 20:17:11 -04:00
Tim-Philipp Müller
9b0bcc01a0
multipartdemux: propagate discont
2013-08-23 15:57:46 +01:00
Tim-Philipp Müller
c3af414cbf
multipartdemux: remove dynamic sourcpads when going from PAUSED to READY
2013-08-23 15:57:46 +01:00
Tim-Philipp Müller
7d78a68c8d
multipartdemux: timestamp output buffers based on first input buffer that provided bytes not last
...
https://bugzilla.gnome.org/show_bug.cgi?id=637754
2013-08-23 15:57:46 +01:00
Wim Taymans
54e7e7547a
rtxqueue: add property to configure queue size
2013-08-23 15:47:25 +02:00
Wim Taymans
84833bed11
rtpbin: proxy jitterbuffer do-retransmission property
2013-08-23 12:10:19 +02:00
Michael Olbrich
23d4044e2c
avimux: unmap the correct buffer
...
The audio buffer was mapped so unmap it and not the video buffer
https://bugzilla.gnome.org/show_bug.cgi?id=706642
2013-08-23 11:32:52 +02:00
Wim Taymans
89b9019e3e
rtx: various improvements
...
Use locking
Don't push from the event handler, collected packets in a queue and push from
the chain function.
Clear queues on shutdown.
2013-08-21 17:02:27 +02:00
Wim Taymans
ee15bc9284
session: generate events correctly
...
Do correct shifting of the bitmask for lost packets.
2013-08-21 17:02:27 +02:00
Wim Taymans
67523d3ecb
rtp: register rtx element better
2013-08-21 17:02:26 +02:00
Wim Taymans
f626e29897
jpegdepay: add some more debug
2013-08-21 12:56:35 +02:00
Wim Taymans
77ed44a88a
rtpgstdepay: only push events when they changed
...
Keep track of the STREAM_START and TAG events and only push them
when they changed.
2013-08-21 12:10:00 +02:00
Wim Taymans
b144809b7c
rtpgstpay: taglists should not be merged in 1.0
2013-08-21 10:52:59 +02:00
Wim Taymans
69b0dcd7df
rtpgstdepay: flush on FLUSH_STOP event
2013-08-21 10:28:50 +02:00
Wim Taymans
5ff9093843
rtpgstpay: reset on state change
...
Do full reset on state change to READY
2013-08-21 10:03:52 +02:00
Wim Taymans
ae9239aac7
rtpgstpay: reset on FLUSH_STOP
...
Clear the adapter and pending buffer list on FLUSH_STOP.
2013-08-21 09:55:20 +02:00
Wim Taymans
2e8955df39
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.
2013-08-21 09:39:30 +02:00
Wim Taymans
182f96ff79
rtpgstay: don't use // comments
2013-08-21 09:33:04 +02:00
Youness Alaoui
e22f7e91c4
rtspsrc: Fix response argument in handle-request signal
2013-08-21 09:06:02 +02:00
Youness Alaoui
6636efd31a
rtspsrc: Add sdes property and proxy it to rtpbin
2013-08-21 09:06:02 +02:00
Youness Alaoui
62a6f58697
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
2013-08-21 09:06:01 +02:00
Youness Alaoui
05bcfee5a3
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.
2013-08-21 09:06:01 +02:00
Youness Alaoui
1f4ca28868
rtpgstpay: Refactor the setcaps and use new method to send arbitrary caps at any time
2013-08-21 09:06:01 +02:00
Youness Alaoui
9257409613
rtpgstpay: Do not flush events for stream-start and avoid conflict between event and pending inline caps
2013-08-21 09:06:01 +02:00
Youness Alaoui
2d53289b6b
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.
2013-08-21 09:06:01 +02:00
Youness Alaoui
0070ba76f2
rtpgstpay: Add etype=4 for payloading GST_EVENT_STREAM_START
2013-08-21 09:06:01 +02:00
Youness Alaoui
6155b27971
rtpgstpay: Fix typo, GST_EVENT_CUSTOM_BOTH has etype of 3
2013-08-21 09:06:01 +02:00
Wim Taymans
587dc055e9
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
2013-08-20 14:36:59 +02:00
Wim Taymans
533f26fc99
jitterbuffer: update docs
2013-08-20 10:26:15 +02:00
Wim Taymans
c7f9ef8012
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.
2013-08-20 10:25:17 +02:00
Wim Taymans
5debda9ca1
jitterbuffer: remove unused variables
2013-08-20 08:55:50 +02:00
Wim Taymans
a88db5fa2c
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.
2013-08-19 22:04:51 +02:00
Wim Taymans
d9d6eac4bb
jitterbuffer: refactor packet spacing calculation
2013-08-19 22:04:50 +02:00
Wim Taymans
c4dc159656
jitterbuffer: keep track of last seqnum and dts
2013-08-19 22:04:50 +02:00
Wim Taymans
652ce95ca6
jitterbuffer: small cleanups
2013-08-19 22:04:50 +02:00
Wim Taymans
b4a35bbe82
jitterbuffer: reset retransmission timers in add/reschedule
...
Reset the retransmission timers when adding and rescheduling a timer.
2013-08-19 22:04:50 +02:00
Wim Taymans
cf8a0652f3
jitterbuffer: rename variables for packet spacing
2013-08-19 22:04:50 +02:00
Wim Taymans
ec82e4ab7c
jitterbuffer: remove lost timer when we get the packet
...
When we receive a packet, also remove the LOST timer for it.
2013-08-19 22:04:50 +02:00
Wim Taymans
2f03b43b21
jitterbuffer: expected seqnum must increase
...
Only update the expected seqnum when it is bigger than the previous expected
seqnum.
2013-08-19 22:04:50 +02:00
Wim Taymans
c5bf376bb5
jitterbuffer: add more debug
2013-08-19 22:04:50 +02:00
Wim Taymans
ff825a2919
rtxqueue: add retransmission queue element
2013-08-19 22:04:50 +02:00
Wim Taymans
5fe18ee432
session: add some docs
2013-08-19 22:04:49 +02:00
Wim Taymans
482dacfb54
session: handle NACK feedback and generate events
...
Handle and parse the feedback NACK packets and generate a Retransmission
event for each NACKed packet
2013-08-19 22:04:49 +02:00
Thibault Saunier
e47ffb203b
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.
2013-08-17 11:40:27 +02:00