Crashes around 1m19s in decode.c due to NULL in mpeg2dec->fbuf[1]. The following hack makes libmpeg2 skip the naughty frame. Index: decode.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpeg2/decode.c,v retrieving revision 1.25 diff -u -b -B -r1.25 decode.c --- decode.c 6 Apr 2003 16:42:15 -0000 1.25 +++ decode.c 24 Jan 2004 10:30:15 -0000 @@ -380,7 +380,7 @@ fbuf->buf[2] = buf[2]; fbuf->id = id; // HACK! FIXME! At first I frame, copy pointers to prediction frame too! - if (mpeg2dec->custom_fbuf && !mpeg2dec->fbuf[1]->buf[0]){ + if (mpeg2dec->custom_fbuf && mpeg2dec->fbuf[1] && !mpeg2dec->fbuf[1]->buf[0]){ mpeg2dec->fbuf[1]->buf[0]=buf[0]; mpeg2dec->fbuf[1]->buf[1]=buf[1]; mpeg2dec->fbuf[1]->buf[2]=buf[2]; Index: header.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpeg2/header.c,v retrieving revision 1.13 diff -u -b -B -r1.13 header.c --- header.c 3 Aug 2003 12:04:57 -0000 1.13 +++ header.c 24 Jan 2004 10:30:16 -0000 @@ -658,9 +658,15 @@ //mpeg2dec->decoder.convert = NULL; b_type = (mpeg2dec->decoder.coding_type == B_TYPE); + if (mpeg2dec->fbuf[0] && mpeg2dec->fbuf[b_type + 1] && mpeg2dec->fbuf[b_type]) { mpeg2_init_fbuf (&(mpeg2dec->decoder), mpeg2dec->fbuf[0]->buf, mpeg2dec->fbuf[b_type + 1]->buf, mpeg2dec->fbuf[b_type]->buf); + } else { + mpeg2dec->picture->flags |= PIC_FLAG_SKIP; + } + + } mpeg2dec->action = NULL; return 0;