On Thu, Sep 20, 2007 at 03:04:50PM -0400, Jeff Downs wrote: [...]
+ if(h0->current_slice == 0){ + /* figure out if we have a complementary field pair */ + if (s->first_field) { + assert(s->current_picture_ptr && s->current_picture_ptr->data[0]); + + if (s->picture_structure == PICT_FRAME || + s->picture_structure == last_pic_structure) { + /* + * Unmatched field pair. Don't display it, but use + * for reference if so marked + */ + if (s->current_picture_ptr->reference == 1) + s->current_picture_ptr->reference = 0; + s->current_picture_ptr = NULL; + + s->first_field = FIELD_PICTURE; + + } else { + if (s->current_picture.reference && + s->current_picture_ptr->reference == 3 && + s->current_picture_ptr->frame_num != h->frame_num) { + /* + * This and previous field were reference, but had + * different frame_nums. Dump first field (keep in + * reference list) and consider this as first field. + */ + s->first_field = 1; + s->current_picture_ptr = NULL; + + } else { + /* Second field in complementary pair */ + if (s->current_picture.reference) + s->current_picture_ptr->reference = 3; + s->first_field = 0; + } + } + + } else { + /* Frame or first field in a potentially complementary pair */
+ assert(!s->current_picture_ptr);
This assert is false for FM1_BT_B.h264 and FM2_SVA_C.264, please fix this! [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB I have never wished to cater to the crowd; for what I know they do not approve, and what they approve I do not know. -- Epicurus