diff options
author | Martin Storsjö <martin@martin.st> | 2012-02-17 10:27:41 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-02-18 17:31:55 +0200 |
commit | c7e8639c70ec25be2c0afdcea61d992de5f1928e (patch) | |
tree | da775477a4893a730b9da3a361840b5d20f78eb1 /libavformat/rtpdec_h263.c | |
parent | b1af4e9c27e2cd4a7deab26b88feae8490d673ba (diff) | |
download | ffmpeg-c7e8639c70ec25be2c0afdcea61d992de5f1928e.tar.gz |
rtpdec: Identify incorrectly signalled H263
H263 in RTP can be packetized in two formats (RFC 2190, RFC
2429/4629). The former normally uses the static payload type 34,
while the latter normally uses dynamic payload types with the
SDP format names H263-1998 or H263-2000.
Look for packets that don't look like proper RFC 2190 packets and
switch to depacketizing them according to the new format if they
match some heuristic criteria.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/rtpdec_h263.c')
-rw-r--r-- | libavformat/rtpdec_h263.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/libavformat/rtpdec_h263.c b/libavformat/rtpdec_h263.c index af71ed63c3..ef2418e7c6 100644 --- a/libavformat/rtpdec_h263.c +++ b/libavformat/rtpdec_h263.c @@ -23,13 +23,9 @@ #include "rtpdec_formats.h" #include "libavutil/intreadwrite.h" -static int h263_handle_packet(AVFormatContext *ctx, - PayloadContext *data, - AVStream *st, - AVPacket * pkt, - uint32_t * timestamp, - const uint8_t * buf, - int len, int flags) +int ff_h263_handle_packet(AVFormatContext *ctx, PayloadContext *data, + AVStream *st, AVPacket *pkt, uint32_t *timestamp, + const uint8_t *buf, int len, int flags) { uint8_t *ptr; uint16_t header; @@ -96,12 +92,12 @@ RTPDynamicProtocolHandler ff_h263_1998_dynamic_handler = { .enc_name = "H263-1998", .codec_type = AVMEDIA_TYPE_VIDEO, .codec_id = CODEC_ID_H263, - .parse_packet = h263_handle_packet, + .parse_packet = ff_h263_handle_packet, }; RTPDynamicProtocolHandler ff_h263_2000_dynamic_handler = { .enc_name = "H263-2000", .codec_type = AVMEDIA_TYPE_VIDEO, .codec_id = CODEC_ID_H263, - .parse_packet = h263_handle_packet, + .parse_packet = ff_h263_handle_packet, }; |