Commit graph

7070 commits

Author SHA1 Message Date
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
Wim Taymans
db90f6e68d 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.
2013-08-16 17:12:19 +02:00
Chris Bass
3e9dea3f8c 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
2013-08-16 10:14:30 +02:00
Wim Taymans
f11c2c9b3b jitterbuffer: forward flush before stopping dataflow
First forward the flush event and then stop our loop function.
2013-08-14 16:19:32 +02:00
Olivier Crête
4c6e636720 rtph264pay: Use the SPS/PPS handling function from the depayloader
Remove duplicated copies

https://bugzilla.gnome.org/show_bug.cgi?id=705553
2013-08-13 10:38:23 -04:00
Olivier Crête
742b90747d 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
2013-08-13 10:38:23 -04:00
Chris Bass
b40bf67526 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
2013-08-13 15:58:23 +02:00
Sebastian Dröge
282afae244 rtspsrc: Only free GCheckSum after its last usage
https://bugzilla.gnome.org/show_bug.cgi?id=705760
2013-08-13 12:44:11 +02:00
Matej Knopp
2269ac8f28 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
2013-08-12 13:48:04 +02:00
Thibault Saunier
6c349d6ec3 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.
2013-08-11 19:05:18 +02:00
Matej Knopp
96afba915a avidemux: send proper stream_start event
https://bugzilla.gnome.org//show_bug.cgi?id=705449
2013-08-08 11:57:32 +02:00
Sebastian Dröge
9863e08839 matroskademux: Don't print warnings during flushing and stop as soon as possible
https://bugzilla.gnome.org//show_bug.cgi?id=705442
2013-08-08 11:53:15 +02:00
Tim-Philipp Müller
957c8e3e61 rtpvp8depay: mark key frames and delta frames properly
https://bugzilla.gnome.org/show_bug.cgi?id=705550
2013-08-07 11:14:38 +01:00
Wim Taymans
48174164eb session: add NACK feedback in RTCP 2013-08-06 15:50:19 +02:00
Wim Taymans
4379ed1dee 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.
2013-08-06 15:50:19 +02:00
Wim Taymans
50638b8106 session: handle Retransmission event and schedule NACK
Handle the retransmission event from downstream and use it to schedule a NACK
request.
2013-08-06 15:50:19 +02:00
Wim Taymans
0bddbd682d 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.
2013-08-06 15:50:19 +02:00
Thibault Saunier
38946bd9f4 qtdemux: Fix compilation 2013-08-06 15:31:38 +02:00
Thibault Saunier
593a31f2b4 qtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE 2013-08-06 15:17:44 +02:00
Thibault Saunier
c5fa4666b7 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.
2013-08-06 12:21:33 +02:00
Sjoerd Simons
d14d4c436c 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
2013-08-05 15:33:39 +02:00
Wim Taymans
3c82de59f9 session: use common send_rtcp method
Reuse the send_rtcp method that already asks for the current time when
requesting a keyframe.
2013-08-05 15:02:59 +02:00
Wim Taymans
3c14c6021c session: Don't use ClockTimeDiff for unsigned delays 2013-08-05 15:02:59 +02:00
Edward Hervey
4f4f6432cc qtmux: Use buffer PTS if DTS is not set
Avoids ending up with completely bogus scaled duration/pts when new
buffers have invalid DTS.
2013-08-04 17:15:38 +02:00
Tim-Philipp Müller
7272dec5fe rtpdec: use generic marshaller 2013-08-04 11:20:41 +01:00
Tim-Philipp Müller
fe098e3aff udp: remove unused marshal and enumtypes files 2013-08-04 11:03:07 +01:00
Tim-Philipp Müller
7469cd3a4c rtpmanager: use generic marshaller 2013-08-04 11:03:07 +01:00
Wim Taymans
7584f91f31 jitterbuffer: send event in right direction 2013-08-04 00:24:36 +02:00
Wim Taymans
9613e481ad 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.
2013-08-03 00:33:24 +02:00
Wim Taymans
743e1b1191 jitterbuffer: fix property ranges 2013-08-02 17:22:55 +02:00
Wim Taymans
cd0164f4cc jitterbuffer: push retransmission events 2013-08-02 16:43:59 +02:00
Wim Taymans
9a13267e85 jitterbuffer: add support for retransmission retry
When we didn't receive a packet after requesting retransmission, retry
asking for retransmission for a certain period.
2013-08-02 14:54:56 +02:00
Wim Taymans
e9ad5126db jitterbuffer: add properties
Add properties to control retransmission parameters
2013-08-02 14:47:56 +02:00
Wim Taymans
a8c7ff7489 jitterbuffer: use corrected timeout when rescheduling
When we recalculate the timeout, use the corrected timeout value depending on
the timer type.
2013-08-02 12:44:58 +02:00
Wim Taymans
9c7e3e3455 jitterbuffer: update timers after queueing
Else we might update the timer needlessly for duplicates.
2013-08-02 12:43:00 +02:00
Wim Taymans
ebd6b8f8ab jitterbuffer: move method up 2013-08-02 12:42:08 +02:00
Wim Taymans
f6b6797874 jitterbuffer: small cleanup 2013-08-02 06:28:32 +02:00
Wim Taymans
0e41414926 jitterbuffer: unschedule old expected packets
When we receive a new packet, unschedule old outstanding packets when their
seqnum is too far away.
2013-08-01 23:36:07 +02:00
Wim Taymans
70695466ed jitterbuffer: refactor timer update 2013-08-01 23:32:00 +02:00
Wim Taymans
4ab3f5d3da 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.
2013-08-01 23:24:29 +02:00