Mercurial > libavcodec.hg
diff mpeg12.c @ 2792:0a8c847ad5e7 libavcodec
skip_idct
skip_frame
skip_loop_filter
author | michael |
---|---|
date | Thu, 14 Jul 2005 21:39:36 +0000 |
parents | ee07e99e034f |
children | fd5d7c732c6b |
line wrap: on
line diff
--- a/mpeg12.c Thu Jul 14 15:30:39 2005 +0000 +++ b/mpeg12.c Thu Jul 14 21:39:36 2005 +0000 @@ -3086,7 +3086,7 @@ /* find start next code */ start_code = find_start_code(&buf_ptr, buf_end); if (start_code < 0){ - if(s2->pict_type != B_TYPE || avctx->hurry_up==0){ + if(s2->pict_type != B_TYPE || avctx->skip_frame <= AVDISCARD_DEFAULT){ if(avctx->thread_count > 1){ int i; @@ -3146,6 +3146,10 @@ } /* skip b frames if we are in a hurry */ if(avctx->hurry_up && s2->pict_type==B_TYPE) break; + if( (avctx->skip_frame >= AVDISCARD_NONREF && s2->pict_type==B_TYPE) + ||(avctx->skip_frame >= AVDISCARD_NONKEY && s2->pict_type!=I_TYPE) + || avctx->skip_frame >= AVDISCARD_ALL) + break; /* skip everything if we are in a hurry>=5 */ if(avctx->hurry_up>=5) break;