[FFmpeg-cvslog] r15836 - trunk/libavformat/rdt.c
rbultje
subversion
Sat Nov 15 21:45:26 CET 2008
Author: rbultje
Date: Sat Nov 15 21:45:26 2008
New Revision: 15836
Log:
Change status packet skipping to be more spec-compliant. See discussion in
"[PATCH] RDT/Realmedia patches #2" thread on ML.
Modified:
trunk/libavformat/rdt.c
Modified: trunk/libavformat/rdt.c
==============================================================================
--- trunk/libavformat/rdt.c (original)
+++ trunk/libavformat/rdt.c Sat Nov 15 21:45:26 2008
@@ -178,10 +178,17 @@ ff_rdt_parse_header(const uint8_t *buf,
{
int consumed = 10;
- if (len > 0 && (buf[0] < 0x40 || buf[0] > 0x42)) {
- buf += 9;
- len -= 9;
- consumed += 9;
+ /* skip status packets */
+ while (len >= 5 && buf[1] == 0xFF /* status packet */) {
+ int pkt_len;
+
+ 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)
return -1;
More information about the ffmpeg-cvslog
mailing list