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:
parent
108cd24793
commit
e3b7216b9b
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user