rtpenc: Allow packetizing H263 according to the old RFC 2190
authorMartin Storsjö <martin@martin.st>
Tue, 7 Feb 2012 14:39:14 +0000 (16:39 +0200)
committerMartin Storsjö <martin@martin.st>
Thu, 23 Feb 2012 13:27:52 +0000 (15:27 +0200)
commitc4584f3c1ff3997fd98c3cc992fe82cb99f6b248
tree27ab1cbe0c48ac4f703782ede6039ba46b6924a4
parentc2ff63e3ac82d5ee501e480d4714e982fc45cf8b
rtpenc: Allow packetizing H263 according to the old RFC 2190

According to newer RFCs, this packetization scheme should only
be used for interfacing with legacy systems.

Implementing this packetization mode properly requires parsing
the full H263 bitstream to find macroblock boundaries (and knowing
their macroblock and gob numbers and motion vector predictors).

This implementation tries to look for GOB headers (which
can be inserted by using -ps <small number>), but if the GOBs
aren't small enough to fit into the MTU, the packetizer blindly
splits packets at any offset and claims it to be a GOB boundary
(by using Mode A from the RFC). While not correct, this seems
to work with some receivers.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/Makefile
libavformat/rtp.c
libavformat/rtpenc.c
libavformat/rtpenc.h
libavformat/rtpenc_h263.c
libavformat/rtpenc_h263_rfc2190.c [new file with mode: 0644]
libavformat/sdp.c