On Fri, 5 Oct 2007, Andreas ?man wrote:
Michael Niedermayer wrote: [...]
@@ -6666,7 +6673,7 @@ s->mb_x = 0; ff_draw_horiz_band(s, 16*s->mb_y, 16); ++s->mb_y; - if(FRAME_MBAFF) { + if(FRAME_MBAFF || FIELD_PICTURE) {
this really should be FRAME_MBAFF_OR_FIELD or something like that
Michael, correct me if i'm wrong here, but isn't this already in place?
h264.h: #define MB_FIELD h->mb_field_decoding_flag
And h->mb_field_decoding_flag is already correctly computed, both for MBAFF and PAFF, in the beginning of decode_mb_cabac() and decode_mb_cavlc().
Not exactly. MB_FIELD == MB_MBAFF || FIELD_PICTURE (or, in english, the current macroblock is a field macroblock when its in an MBAFF frame and marked as an MBAFF macroblock or is part of a field picture). This is where we said prior it might be nice to replace the several occurances of MB_MBAFF || FIELD_PICTURE with MB_FIELD, and rightfully so. Contrast with the above, which simply says the current frame has some field macroblocks (FIELD_PICTURE || FRAME_MBAFF). -Jeff