1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

Change status packet skipping to be more spec-compliant. See discussion in

"[PATCH] RDT/Realmedia patches #2" thread on ML.

Originally committed as revision 15836 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Ronald S. Bultje 2008-11-15 20:45:26 +00:00
parent 108cd24793
commit e3b7216b9b

View File

@ -178,10 +178,17 @@ ff_rdt_parse_header(const uint8_t *buf, int len,
{ {
int consumed = 10; int consumed = 10;
if (len > 0 && (buf[0] < 0x40 || buf[0] > 0x42)) { /* skip status packets */
buf += 9; while (len >= 5 && buf[1] == 0xFF /* status packet */) {
len -= 9; int pkt_len;
consumed += 9;
if (!(buf[0] & 0x80))
return -1; /* not followed by a data packet */
pkt_len = AV_RB16(buf+3);
buf += pkt_len;
len -= pkt_len;
consumed += pkt_len;
} }
if (len < 10) if (len < 10)
return -1; return -1;