[MPlayer-dev-eng] Intel H.263 (I.263) broken?
Juergen Keil
jk at tools.de
Sat Oct 26 20:27:50 CEST 2002
It seems Intel H.263 decoding is currently broken in ffmpeg.
Here's a site with several samples in this format:
http://www.sugarlandtravel.com/video.html
http://www.sugarlandtravel.com/video/holamerb.avi
Using mplayer, they (all?) crash with a null pointer access:
(gdb) run /tmp/holamerb.avi
....
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffi263] vfm:ffmpeg (FFmpeg I263 decoder)
....
Program received signal SIGSEGV, Segmentation fault.
decode_slice (s=0x851b800) at h263dec.c:147
147 s->y_dc_scale= s->y_dc_scale_table[ s->qscale ];
(gdb) p s->y_dc_scale_table
$1 = (UINT8 *) 0x0
The problem seems to be in intel_h263_decode_picture_header(), this
slightly changed copy of h263_decode_picture_header() does not set
up 'y_dc_scale_table' and 'c_dc_scale_table'.
The following (partial) patch for libavcodec fixes the crash. (partial
because ffmpeg now complains about 'PB frame mode no supported')
Index: h263.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/h263.c,v
retrieving revision 1.118
diff -u -B -r1.118 h263.c
--- h263.c 25 Oct 2002 00:08:32 -0000 1.118
+++ h263.c 26 Oct 2002 18:18:04 -0000
@@ -4644,6 +4644,10 @@
skip_bits(&s->gb, 8);
}
s->f_code = 1;
+
+ s->y_dc_scale_table=
+ s->c_dc_scale_table= ff_mpeg1_dc_scale_table;
+
return 0;
}
More information about the MPlayer-dev-eng
mailing list