From: Ronald S. Bultje Date: Mon, 12 Dec 2011 20:02:58 +0000 (-0800) Subject: h264: don't drop B-frames after next keyframe on POC reset. X-Git-Tag: v0.8b1~159 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0b4c323213343bf514626ee89a7ad91bfd428322;p=platform%2Fupstream%2Flibav.git h264: don't drop B-frames after next keyframe on POC reset. The keyframe after a POC reset may not be the first to be returned to the user. Therefore, don't reset the expected next POC once we return a keyframe to the user, but once we know that the next frame in the return-queue is a keyframe. --- diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 109a109..77acd71 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1530,7 +1530,11 @@ static void decode_postinit(H264Context *h, int setup_finished){ h->next_outputed_poc = INT_MIN; } } else { - h->next_outputed_poc = out->poc; + if (out_idx == 0 && pics > 1 && h->delayed_pic[0]->f.key_frame) { + h->next_outputed_poc = INT_MIN; + } else { + h->next_outputed_poc = out->poc; + } } h->mmco_reset = 0; }else{