output delayed frames

fixes:
CANL4_SVA_B.264
NL3_SVA_C.264
NL3_SVA_E.264

Originally committed as revision 8055 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2007-02-21 21:16:07 +00:00
parent 57177f648d
commit 97bbb8851b
1 changed files with 20 additions and 0 deletions

View File

@ -8244,6 +8244,26 @@ static int decode_frame(AVCodecContext *avctx,
/* no supplementary picture */
if (buf_size == 0) {
Picture *out;
int i, out_idx;
//FIXME factorize this with the output code below
out = h->delayed_pic[0];
out_idx = 0;
for(i=1; h->delayed_pic[i] && !h->delayed_pic[i]->key_frame; i++)
if(h->delayed_pic[i]->poc < out->poc){
out = h->delayed_pic[i];
out_idx = i;
}
for(i=out_idx; h->delayed_pic[i]; i++)
h->delayed_pic[i] = h->delayed_pic[i+1];
if(out){
*data_size = sizeof(AVFrame);
*pict= *(AVFrame*)out;
}
return 0;
}