Commit 3eaa6d0e authored by Michael Niedermayer's avatar Michael Niedermayer

Simplify picture output code.

Originally committed as revision 14298 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 6b476f05
...@@ -7863,28 +7863,21 @@ static int decode_frame(AVCodecContext *avctx, ...@@ -7863,28 +7863,21 @@ static int decode_frame(AVCodecContext *avctx,
s->avctx->has_b_frames++; s->avctx->has_b_frames++;
} }
if(out_of_order || pics > s->avctx->has_b_frames)
out->reference &= ~DELAYED_PIC_REF;
if(pics <= s->avctx->has_b_frames || out_of_order)
out = NULL;
if(out_of_order || pics > s->avctx->has_b_frames){ if(out_of_order || pics > s->avctx->has_b_frames){
out->reference &= ~DELAYED_PIC_REF;
for(i=out_idx; h->delayed_pic[i]; i++) for(i=out_idx; h->delayed_pic[i]; i++)
h->delayed_pic[i] = h->delayed_pic[i+1]; h->delayed_pic[i] = h->delayed_pic[i+1];
} }
if(!out_of_order && pics > s->avctx->has_b_frames){
if(out){
*data_size = sizeof(AVFrame); *data_size = sizeof(AVFrame);
h->outputed_poc = out->poc; h->outputed_poc = out->poc;
}
if(out)
*pict= *(AVFrame*)out; *pict= *(AVFrame*)out;
else }else{
av_log(avctx, AV_LOG_DEBUG, "no picture\n"); av_log(avctx, AV_LOG_DEBUG, "no picture\n");
} }
} }
}
assert(pict->data[0] || !*data_size); assert(pict->data[0] || !*data_size);
ff_print_debug_info(s, pict); ff_print_debug_info(s, pict);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment