# HG changeset patch # User michael # Date 1216470069 0 # Node ID cd231f79c52be61d81ea6bc672afa4ceb7ee951f # Parent c010b69e12eba9f4d12800913b4509af2821ed2c Try to fix my latest 100l fate SVQ3 breakage. diff -r c010b69e12eb -r cd231f79c52b h264.c --- a/h264.c Sat Jul 19 11:57:29 2008 +0000 +++ b/h264.c Sat Jul 19 12:21:09 2008 +0000 @@ -2259,7 +2259,15 @@ memset(h->slice_table, -1, (s->mb_height*s->mb_stride-1) * sizeof(uint8_t)); // s->decode= (s->flags&CODEC_FLAG_PSNR) || !s->encoding || s->current_picture.reference /*|| h->contains_intra*/ || 1; - s->current_picture_ptr->reference= 0; + + // We mark the current picture as non reference after allocating it, so + // that if we break out due to an error it can be released automatically + // in the next MPV_frame_start(). + // SVQ3 as well as most other codecs have only last/next/current and thus + // get released even with set reference, besides SVQ3 and others do not + // mark frames as reference later "naturally". + if(s->codec_id != CODEC_ID_SVQ3) + s->current_picture_ptr->reference= 0; return 0; }