You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
bugfix
Originally committed as revision 636 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -431,8 +431,26 @@ static int rv10_decode_frame(AVCodecContext *avctx,
|
|||||||
s->rv10_first_dc_coded[1] = 0;
|
s->rv10_first_dc_coded[1] = 0;
|
||||||
s->rv10_first_dc_coded[2] = 0;
|
s->rv10_first_dc_coded[2] = 0;
|
||||||
|
|
||||||
|
s->block_wrap[0]=
|
||||||
|
s->block_wrap[1]=
|
||||||
|
s->block_wrap[2]=
|
||||||
|
s->block_wrap[3]= s->mb_width*2 + 2;
|
||||||
|
s->block_wrap[4]=
|
||||||
|
s->block_wrap[5]= s->mb_width + 2;
|
||||||
|
s->block_index[0]= s->block_wrap[0]*(s->mb_y*2 + 1) - 1 + s->mb_x*2;
|
||||||
|
s->block_index[1]= s->block_wrap[0]*(s->mb_y*2 + 1) + s->mb_x*2;
|
||||||
|
s->block_index[2]= s->block_wrap[0]*(s->mb_y*2 + 2) - 1 + s->mb_x*2;
|
||||||
|
s->block_index[3]= s->block_wrap[0]*(s->mb_y*2 + 2) + s->mb_x*2;
|
||||||
|
s->block_index[4]= s->block_wrap[4]*(s->mb_y + 1) + s->block_wrap[0]*(s->mb_height*2 + 2) + s->mb_x;
|
||||||
|
s->block_index[5]= s->block_wrap[4]*(s->mb_y + 1 + s->mb_height + 2) + s->block_wrap[0]*(s->mb_height*2 + 2) + s->mb_x;
|
||||||
/* decode each macroblock */
|
/* decode each macroblock */
|
||||||
for(i=0;i<mb_count;i++) {
|
for(i=0;i<mb_count;i++) {
|
||||||
|
s->block_index[0]+=2;
|
||||||
|
s->block_index[1]+=2;
|
||||||
|
s->block_index[2]+=2;
|
||||||
|
s->block_index[3]+=2;
|
||||||
|
s->block_index[4]++;
|
||||||
|
s->block_index[5]++;
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf("**mb x=%d y=%d\n", s->mb_x, s->mb_y);
|
printf("**mb x=%d y=%d\n", s->mb_x, s->mb_y);
|
||||||
#endif
|
#endif
|
||||||
@@ -450,6 +468,12 @@ static int rv10_decode_frame(AVCodecContext *avctx,
|
|||||||
if (++s->mb_x == s->mb_width) {
|
if (++s->mb_x == s->mb_width) {
|
||||||
s->mb_x = 0;
|
s->mb_x = 0;
|
||||||
s->mb_y++;
|
s->mb_y++;
|
||||||
|
s->block_index[0]= s->block_wrap[0]*(s->mb_y*2 + 1) - 1;
|
||||||
|
s->block_index[1]= s->block_wrap[0]*(s->mb_y*2 + 1);
|
||||||
|
s->block_index[2]= s->block_wrap[0]*(s->mb_y*2 + 2) - 1;
|
||||||
|
s->block_index[3]= s->block_wrap[0]*(s->mb_y*2 + 2);
|
||||||
|
s->block_index[4]= s->block_wrap[4]*(s->mb_y + 1) + s->block_wrap[0]*(s->mb_height*2 + 2);
|
||||||
|
s->block_index[5]= s->block_wrap[4]*(s->mb_y + 1 + s->mb_height + 2) + s->block_wrap[0]*(s->mb_height*2 + 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user