# HG changeset patch # User henry # Date 1168940968 0 # Node ID 1658f7d97b276203b86af9da2d2f4dc21622061d # Parent 277f0943aa4e3e28cd5cd2e078d9f7f833870b99 fix crash with http://sam.zoy.org/zzuf/lol-mplayer.m2v diff -r 277f0943aa4e -r 1658f7d97b27 libmpeg2/libmpeg-0.4.1.diff --- a/libmpeg2/libmpeg-0.4.1.diff Tue Jan 16 07:12:32 2007 +0000 +++ b/libmpeg2/libmpeg-0.4.1.diff Tue Jan 16 09:49:28 2007 +0000 @@ -400,6 +400,29 @@ decoder->offset += 16; \ if (decoder->offset == decoder->width) { \ do { /* just so we can use the break statement */ \ +@@ -1604,6 +1604,12 @@ + } \ + } while (0) + ++static void motion_dummy (mpeg2_decoder_t * const decoder, ++ motion_t * const motion, ++ mpeg2_mc_fct * const * const table) ++{ ++} ++ + void mpeg2_init_fbuf (mpeg2_decoder_t * decoder, uint8_t * current_fbuf[3], + uint8_t * forward_fbuf[3], uint8_t * backward_fbuf[3]) + { +@@ -1661,7 +1667,9 @@ + + if (decoder->mpeg1) { + decoder->motion_parser[0] = motion_zero_420; ++ decoder->motion_parser[MC_FIELD] = motion_dummy; + decoder->motion_parser[MC_FRAME] = motion_mp1; ++ decoder->motion_parser[MC_DMV] = motion_dummy; + decoder->motion_parser[4] = motion_reuse_420; + } else if (decoder->picture_structure == FRAME_PICTURE) { + if (decoder->chroma_format == 0) { --- libmpeg2/idct.c 2006-06-16 20:12:26.000000000 +0200 +++ libmpeg2/idct.c 2006-06-16 20:12:50.000000000 +0200 @@ -253,7 +253,7 @@ diff -r 277f0943aa4e -r 1658f7d97b27 libmpeg2/slice.c --- a/libmpeg2/slice.c Tue Jan 16 07:12:32 2007 +0000 +++ b/libmpeg2/slice.c Tue Jan 16 09:49:28 2007 +0000 @@ -1604,6 +1604,12 @@ } \ } while (0) +static void motion_dummy (mpeg2_decoder_t * const decoder, + motion_t * const motion, + mpeg2_mc_fct * const * const table) +{ +} + void mpeg2_init_fbuf (mpeg2_decoder_t * decoder, uint8_t * current_fbuf[3], uint8_t * forward_fbuf[3], uint8_t * backward_fbuf[3]) { @@ -1661,7 +1667,9 @@ if (decoder->mpeg1) { decoder->motion_parser[0] = motion_zero_420; + decoder->motion_parser[MC_FIELD] = motion_dummy; decoder->motion_parser[MC_FRAME] = motion_mp1; + decoder->motion_parser[MC_DMV] = motion_dummy; decoder->motion_parser[4] = motion_reuse_420; } else if (decoder->picture_structure == FRAME_PICTURE) { if (decoder->chroma_format == 0) {