summaryrefslogtreecommitdiff
path: root/libavcodec/h264.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-12-10 23:26:38 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-12-10 23:26:38 +0100
commit3dea28cc2ef22861347918b6740c4c05c46a6614 (patch)
treeabf84fe9e55630f243154e312b831379219d4007 /libavcodec/h264.c
parent874340096120a219cdc456baa2de56bfa243d331 (diff)
h264: Fix concealment regression introduced by babf4fe01a808327d53977ba319c113a930180b1
Limit the new case to when the decoder is flushed instead of at each idr frame Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r--libavcodec/h264.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 2d6047009b..7daca10c02 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2371,7 +2371,7 @@ static void implicit_weight_table(H264Context *h, int field){
static void idr(H264Context *h){
int i;
ff_h264_remove_all_refs(h);
- h->prev_frame_num= -1;
+ h->prev_frame_num= 0;
h->prev_frame_num_offset= 0;
h->prev_poc_msb= 1<<16;
h->prev_poc_lsb= 0;
@@ -2391,6 +2391,7 @@ static void flush_dpb(AVCodecContext *avctx){
h->outputed_poc=h->next_outputed_poc= INT_MIN;
h->prev_interlaced_frame = 1;
idr(h);
+ h->prev_frame_num= -1;
if(h->s.current_picture_ptr)
h->s.current_picture_ptr->f.reference = 0;
h->s.first_field= 0;