gstreamer/gst
Julien Isorce 5a1aa75961 rtpmanager: add new rtprtxsend / rtprtxreceive elements
The purpose of the sender RTX object is to keep a history
of RTP packets up to a configurable limit (in time). It will
listen for custom retransmission events from downstream. When
it receives a request for retransmission, it will look up the
requested seqnum in its list of stored packets. If the packet
is available, it will create a RTX packet according to RFC 4588
and send this as an auxiliary stream.

The receiver will listen to the custom retransmission events
from the downstream jitterbuffer and will remember the SSRC1
of the stream and seqnum that was requested. When it sees a
packet with one of the stored seqnum, it associates the SSRC2
of the stream with the SSRC1 of the master stream. From then
on it knows that SSRC2 is the retransmission stream of SSRC1.
This algorithm is stated in RFC 4588. For this algorithm to
work, RFC4588 also states that no two pending retransmission
requests can exist for the same seqnum and different SSRCs or
else it would be impossible to associate the retransmission with
the original requester SSRC.
When the RTX receiver has associated the retransmission packets,
it can depayload and forward them to the source pad of the element.

RTX is SSRC-multiplexed

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711084
2014-01-03 20:47:59 +01:00
..
alpha alpha: use POFFSET instead of OFFSET 2013-09-23 14:45:23 +02:00
apetag g_memmove() is deprecated 2013-11-21 15:30:34 +00:00
audiofx docs: get rid of 'Since: 0.10.x' markers 2013-11-18 14:47:35 +00:00
audioparsers wavpackparse: Post AUDIO_CODEC tag 2013-12-16 10:03:06 +01:00
auparse gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
autodetect g_memmove() is deprecated 2013-11-21 15:30:34 +00:00
avi avimux: Add missing break 2013-12-30 17:23:22 +01:00
cutter gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
debugutils rndbuffersize: Proxy CAPS, ALLOCATION, SCHEDULING and srcpad events properly 2013-12-24 14:40:25 +01:00
deinterlace deinterlace: support any video formats and any caps features if deinterlace mode allows it 2014-01-03 11:22:01 +01:00
dtmf g_memmove() is deprecated 2013-11-21 15:30:34 +00:00
effectv gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
equalizer gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
flv docs: get rid of 'Since: 0.10.x' markers 2013-11-18 14:47:35 +00:00
flx flxdec: Properly skip non-frame chunks 2013-05-24 19:34:05 +02:00
goom goom: Fix MMX assembly compilation with clang 2013-09-21 18:48:19 +02:00
goom2k1 goom2k1: Fix event handling and negotiate as soon as possible 2013-07-17 14:30:16 +02:00
icydemux icydemux: Fix sticky event handling 2013-05-13 15:19:25 +02:00
id3demux gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
imagefreeze gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
interleave deinterleave: Don't hold object lock while sending events downstream 2013-07-01 11:37:00 +02:00
isomp4 qtdemux: improve mss_mode/fragmented special handling 2013-12-27 12:04:49 -03:00
law mulawdec: Require caps to be set before accepting any data 2013-12-05 12:15:29 +01:00
level level: remove unused variables in instance struct 2013-06-01 21:34:37 +02:00
matroska matroskamux: adpcm max block align is 8192 2013-12-24 10:00:16 +01:00
monoscope monoscope: Fix debug statement 2013-04-26 12:16:49 +02:00
multifile multifilesrc: Implement seeking in case of multiple images 2013-11-22 18:52:54 -03:00
multipart docs: get rid of 'Since: 0.10.x' markers 2013-11-18 14:47:35 +00:00
replaygain replaygain: fix taglist leak in rganalysis 2013-09-02 23:00:29 +01:00
rtp rtpvrawpay: Add missing break 2013-12-30 17:20:37 +01:00
rtpmanager rtpmanager: add new rtprtxsend / rtprtxreceive elements 2014-01-03 20:47:59 +01:00
rtsp rtspsrc: use aggregate control for PLAY/PAUSE/TEARDOWN 2013-12-26 11:27:30 +01:00
shapewipe shapewipe: Can't map twice the same buffer for writing 2013-05-10 09:27:02 +02:00
smpte docs: get rid of 'Since: 0.10.x' markers 2013-11-18 14:47:35 +00:00
spectrum gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
udp udpsrc: on receive error only unmap and unref buffer if one was alloced and mapped 2013-12-19 20:35:03 +00:00
videobox docs: get rid of 'Since: 0.10.x' markers 2013-11-18 14:47:35 +00:00
videocrop videocrop: Add support for GRAY16_LE/GRAY16_BE 2013-05-15 09:29:30 +02:00
videofilter videoflip: don't crash on tag events without orientation tag 2013-11-28 16:09:04 +00:00
videomixer videomixer: Simplify NV12/21 blending code macros 2013-11-29 19:57:46 +01:00
wavenc wavenc: generate a non-empty data header 2013-11-09 11:22:12 +01:00
wavparse wavparse: Skip id3 tag 2013-12-31 10:39:21 +01:00
y4m y4mencode: Remove dead code 2013-12-30 13:50:35 +01:00
Makefile.am build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00