diff mpegvideo.c @ 2792:0a8c847ad5e7 libavcodec

skip_idct skip_frame skip_loop_filter
author michael
date Thu, 14 Jul 2005 21:39:36 +0000
parents 2b37bcabe608
children 3137aae854c9
line wrap: on
line diff
--- a/mpegvideo.c	Thu Jul 14 15:30:39 2005 +0000
+++ b/mpegvideo.c	Thu Jul 14 21:39:36 2005 +0000
@@ -3777,7 +3777,13 @@
             }
 
             /* skip dequant / idct if we are really late ;) */
-            if(s->hurry_up>1) return;
+            if(s->hurry_up>1) goto skip_idct;
+            if(s->avctx->skip_idct){
+                if(  (s->avctx->skip_idct >= AVDISCARD_NONREF && s->pict_type == B_TYPE)
+                   ||(s->avctx->skip_idct >= AVDISCARD_NONKEY && s->pict_type != I_TYPE)
+                   || s->avctx->skip_idct >= AVDISCARD_ALL)
+                    goto skip_idct;
+            }
 
             /* add dct residue */
             if(s->encoding || !(   s->h263_msmpeg4 || s->codec_id==CODEC_ID_MPEG1VIDEO || s->codec_id==CODEC_ID_MPEG2VIDEO
@@ -3863,6 +3869,7 @@
                 }//gray
             }
         }
+skip_idct:
         if(!readable){
             s->dsp.put_pixels_tab[0][0](s->dest[0], dest_y ,   linesize,16);
             s->dsp.put_pixels_tab[s->chroma_x_shift][0](s->dest[1], dest_cb, uvlinesize,16 >> s->chroma_y_shift);