summaryrefslogtreecommitdiff
path: root/libavformat/rtpdec_h263.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2012-02-17 10:27:41 +0200
committerMartin Storsjö <martin@martin.st>2012-02-18 17:31:55 +0200
commitc7e8639c70ec25be2c0afdcea61d992de5f1928e (patch)
treeda775477a4893a730b9da3a361840b5d20f78eb1 /libavformat/rtpdec_h263.c
parentb1af4e9c27e2cd4a7deab26b88feae8490d673ba (diff)
downloadffmpeg-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.c14
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,
};