Mercurial > libavcodec.hg
diff mpegvideo.c @ 598:0c950f816d61 libavcodec
4mv + bframe decoding bugfix
author | michaelni |
---|---|
date | Mon, 05 Aug 2002 21:36:14 +0000 |
parents | 909e50c67d0e |
children | b1a191202f96 |
line wrap: on
line diff
--- a/mpegvideo.c Mon Aug 05 19:05:02 2002 +0000 +++ b/mpegvideo.c Mon Aug 05 21:36:14 2002 +0000 @@ -236,6 +236,9 @@ /* MV prediction */ size = (2 * s->mb_width + 2) * (2 * s->mb_height + 2); CHECKED_ALLOCZ(s->motion_val, size * 2 * sizeof(INT16)); + + /* 4mv direct mode decoding table */ + CHECKED_ALLOCZ(s->non_b_mv4_table, size * sizeof(UINT8)) } if (s->h263_pred || s->h263_plus) { @@ -324,7 +327,8 @@ av_freep(&s->tex_pb_buffer); av_freep(&s->pb2_buffer); av_freep(&s->edge_emu_buffer); - + av_freep(&s->non_b_mv4_table); + for(i=0;i<3;i++) { int j; if(!(s->flags&CODEC_FLAG_DR1)){ @@ -1453,6 +1457,9 @@ s->motion_val[xy + wrap][1] = motion_y; s->motion_val[xy + 1 + wrap][0] = motion_x; s->motion_val[xy + 1 + wrap][1] = motion_y; + s->non_b_mv4_table[xy]=0; + } else { /* 8X8 */ + s->non_b_mv4_table[xy]=1; } }