|
|
|
@@ -566,11 +566,13 @@ static int h263_skip_b_part(MpegEncContext *s, int cbp) |
|
|
|
{ |
|
|
|
LOCAL_ALIGNED_16(DCTELEM, dblock, [64]); |
|
|
|
int i, mbi; |
|
|
|
int bli[6]; |
|
|
|
|
|
|
|
/* we have to set s->mb_intra to zero to decode B-part of PB-frame correctly |
|
|
|
* but real value should be restored in order to be used later (in OBMC condition) |
|
|
|
*/ |
|
|
|
mbi = s->mb_intra; |
|
|
|
memcpy(bli, s->block_last_index, sizeof(bli)); |
|
|
|
s->mb_intra = 0; |
|
|
|
for (i = 0; i < 6; i++) { |
|
|
|
if (h263_decode_block(s, dblock, i, cbp&32) < 0) |
|
|
|
@@ -578,6 +580,7 @@ static int h263_skip_b_part(MpegEncContext *s, int cbp) |
|
|
|
cbp+=cbp; |
|
|
|
} |
|
|
|
s->mb_intra = mbi; |
|
|
|
memcpy(s->block_last_index, bli, sizeof(bli)); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
|