summaryrefslogtreecommitdiff
path: root/libavcodec/h264_refs.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-10-26 14:32:01 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-10-26 14:32:01 +0200
commitc881df330d46ccc573c7239f5b704fd2eb634574 (patch)
treea7d2f322230e995c5deebeb249eb84326436768f /libavcodec/h264_refs.c
parent51bfaa21c85201ab31776a447599349a1ed6e96b (diff)
h264: Guess receovery points.
Fixes Ticket561 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264_refs.c')
-rw-r--r--libavcodec/h264_refs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index ddfacd61d4..efd65f2fce 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -654,6 +654,12 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){
print_short_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->current_picture_ptr->f.pict_type == AV_PICTURE_TYPE_I){
+ h->sync |= 1;
+ s->current_picture_ptr->sync |= h->sync;
+ }
+
return (h->s.avctx->err_recognition & AV_EF_EXPLODE) ? err : 0;
}