1121 |
// the last P_VOP is skip macroblock ? |
// the last P_VOP is skip macroblock ? |
1122 |
if (last_mb->mode == MODE_NOT_CODED) { |
if (last_mb->mode == MODE_NOT_CODED) { |
1123 |
//DEBUG2("Skip MB in B-frame at (X,Y)=!",x,y); |
//DEBUG2("Skip MB in B-frame at (X,Y)=!",x,y); |
|
mb->mb_type = MODE_NOT_CODED; |
|
1124 |
mb->cbp = 0; |
mb->cbp = 0; |
1125 |
#ifdef BFRAMES_DEC_DEBUG |
#ifdef BFRAMES_DEC_DEBUG |
1126 |
|
mb->mb_type = MODE_NOT_CODED; |
1127 |
BFRAME_DEBUG |
BFRAME_DEBUG |
1128 |
#endif |
#endif |
1129 |
mb->mb_type = MODE_FORWARD; |
mb->mb_type = MODE_FORWARD; |
1130 |
mb->mvs[1].x = mb->mvs[2].x = mb->mvs[3].x = mb->mvs[0].x; |
mb->mvs[1].x = mb->mvs[2].x = mb->mvs[3].x = mb->mvs[0].x; |
1131 |
mb->mvs[1].y = mb->mvs[2].y = mb->mvs[3].y = mb->mvs[0].y; |
mb->mvs[1].y = mb->mvs[2].y = mb->mvs[3].y = mb->mvs[0].y; |
|
mb->quant = 8; |
|
1132 |
|
|
1133 |
decoder_bf_mbinter(dec, mb, x, y, mb->cbp, bs, quant, 1); |
decoder_bf_mbinter(dec, mb, x, y, mb->cbp, bs, quant, 1); |
1134 |
continue; |
continue; |
1338 |
return XVID_ERR_FAIL; |
return XVID_ERR_FAIL; |
1339 |
} |
} |
1340 |
|
|
1341 |
|
#ifdef BFRAMES_DEC_DEBUG |
1342 |
if (frame->length != BitstreamPos(&bs) / 8){ |
if (frame->length != BitstreamPos(&bs) / 8){ |
1343 |
DEBUG2("InLen/UseLen",frame->length, BitstreamPos(&bs) / 8); |
DEBUG2("InLen/UseLen",frame->length, BitstreamPos(&bs) / 8); |
1344 |
} |
} |
1345 |
|
#endif |
1346 |
frame->length = BitstreamPos(&bs) / 8; |
frame->length = BitstreamPos(&bs) / 8; |
1347 |
|
|
1348 |
|
|