avcodec/h264_refs: modify key frame detection heuristic to detect more cases

Fixes Ticket2968

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5ac6b6028f)

Conflicts:
	libavcodec/h264_refs.c
This commit is contained in:
Michael Niedermayer
2013-10-09 23:52:54 +02:00
committed by Carl Eugen Hoyos
parent 8ffdcd04c4
commit 6636dd551f

View File

@@ -687,7 +687,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){
print_short_term(h); print_short_term(h);
print_long_term(h); print_long_term(h);
if(err >= 0 && h->long_ref_count==0 && h->short_ref_count<=2 && h->pps.ref_count[0]<=1 + (s->picture_structure != PICT_FRAME) && s->current_picture_ptr->f.pict_type == AV_PICTURE_TYPE_I){ if(err >= 0 && h->long_ref_count==0 && h->short_ref_count<=2 && h->pps.ref_count[0]<=2 + (s->picture_structure != PICT_FRAME) && s->current_picture_ptr->f.pict_type == AV_PICTURE_TYPE_I){
s->current_picture_ptr->sync |= 1; s->current_picture_ptr->sync |= 1;
if(!h->s.avctx->has_b_frames) if(!h->s.avctx->has_b_frames)
h->sync = 2; h->sync = 2;