[Ffmpeg-devel] [PATCH] two little wmadec improvements
Reimar Döffinger
Reimar.Doeffinger
Mon Jun 26 23:57:43 CEST 2006
Hello,
the attached patch features two improvements:
the first make RLE decode overrun non-fatal, which seems to fix
http://www.missouri.edu/~bah347/gprime/nintendothemesacappellax.wmv
though I didn't compare directly to the binary decoder, so I guess it
only hides the real bug. Still an improvement though.
The second one is just a guess, since current code does not make sense
IMHO, doesn't make a difference for any of my samples.
Greetings,
Reimar D?ffinger
-------------- next part --------------
Index: libavcodec/wmadec.c
===================================================================
--- libavcodec/wmadec.c (revision 5528)
+++ libavcodec/wmadec.c (working copy)
@@ -908,7 +908,10 @@
level = -level;
ptr += run;
if (ptr >= eptr)
- return -1;
+ {
+ av_log(NULL, AV_LOG_ERROR, "overflow in spectral RLE, ignoring\n");
+ break;
+ }
*ptr++ = level;
/* NOTE: EOB can be omitted */
if (ptr >= eptr)
@@ -1236,7 +1239,7 @@
goto fail;
q = s->last_superframe + s->last_superframe_len;
len = bit_offset;
- while (len > 0) {
+ while (len > 7) {
*q++ = (get_bits)(&s->gb, 8);
len -= 8;
}
More information about the ffmpeg-devel
mailing list