# HG changeset patch # User michael # Date 1121378242 0 # Node ID ae85da6c5c2fb82d66c0ac4d465afaef2a5f3c63 # Parent 0a8c847ad5e734d46abaceaf59d691a801e0fa19 more fine grained skip_frame diff -r 0a8c847ad5e7 -r ae85da6c5c2f h264.c --- a/h264.c Thu Jul 14 21:39:36 2005 +0000 +++ b/h264.c Thu Jul 14 21:57:22 2005 +0000 @@ -7267,7 +7267,11 @@ av_log(h->s.avctx, AV_LOG_ERROR, "decode_slice_header error\n"); break; } - if(h->redundant_pic_count==0 && s->hurry_up < 5 && avctx->skip_frame < AVDISCARD_ALL) + if(h->redundant_pic_count==0 && s->hurry_up < 5 + && (avctx->skip_frame < AVDISCARD_NONREF || h->nal_ref_idc) + && (avctx->skip_frame < AVDISCARD_BIDIR || h->slice_type!=B_TYPE) + && (avctx->skip_frame < AVDISCARD_NONKEY || h->slice_type==I_TYPE) + && avctx->skip_frame < AVDISCARD_ALL) decode_slice(h); break; case NAL_DPA: @@ -7289,7 +7293,11 @@ h->inter_gb_ptr= &h->inter_gb; if(h->redundant_pic_count==0 && h->intra_gb_ptr && s->data_partitioning - && s->hurry_up < 5 && avctx->skip_frame < AVDISCARD_ALL) + && s->hurry_up < 5 + && (avctx->skip_frame < AVDISCARD_NONREF || h->nal_ref_idc) + && (avctx->skip_frame < AVDISCARD_BIDIR || h->slice_type!=B_TYPE) + && (avctx->skip_frame < AVDISCARD_NONKEY || h->slice_type==I_TYPE) + && avctx->skip_frame < AVDISCARD_ALL) decode_slice(h); break; case NAL_SEI: