On Wed, Jul 23, 2008 at 10:36:49PM +0200, Michael Niedermayer wrote:
On Wed, Jul 23, 2008 at 02:28:46PM -0400, Jeff Downs wrote:
On Mon, 21 Jul 2008, Michael Niedermayer wrote:
[...]
+ /* 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!
This assert was to indicate if we would be allocating a new picture (frame_start) without cleaning up the old one. This was important until recently because all pictures were marked reference when created, and not cleared unless they got to frame_end (where current_picture_ptr is cleared).
Your recent change (sensibly!) sets references off unless marked as such.
For at least FM1_BT_B.h264, the assert is tripped because processing of a frame is aborted (QP 4294967295 out of range) and the next frame processing begins w/out cleaning up current_picture_ptr.
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. [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB If a bugfix only changes things apparently unrelated to the bug with no further explanation, that is a good sign that the bugfix is wrong.