On Thu, 24 Jul 2008, Michael Niedermayer wrote: [...]
At this point, assuming you are ok with the current_picture_ptr NOT being cleared on frame processing errors, the assert could be changed to:
assert(!s0->current_picture_ptr || !s0->current_picture_ptr->reference)
ok, and thanks for the problem analysis
This change does not help at all, the assert stil triggers.
Because of the new gaps in frame num code... it doesn't clear current_picture_ptr at the end. I didn't have that when I suggested the change... You could clear current_picture_ptr after synthesizing the missing frames to be consistent with the clearing of current_picture_ptr at the end of successful decode. Otherwise, the assert would be removed, or modified to check if the reference is legitimate (managed in one of the reference lists). If kept, it probably should be moved to frame_start(). -Jeff