[SCM] libav/experimental: Move idct_(dc)add closer to where it is needed.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:33:47 UTC 2013


The following commit has been merged in the experimental branch:
commit c25ac15a07440eb10c8c713b9500c58a2f3f95a1
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Thu Dec 18 18:25:11 2008 +0000

    Move idct_(dc)add closer to where it is needed.
    
    Originally committed as revision 16223 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 8db7154..de7e0be 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2561,22 +2561,22 @@ static av_always_inline void hl_decode_mb_internal(H264Context *h, int simple){
         if((simple || !ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)) && (h->cbp&0x30)){
             uint8_t *dest[2] = {dest_cb, dest_cr};
             if(transform_bypass){
-                idct_add = s->dsp.add_pixels4;
                 if(IS_INTRA(mb_type) && h->sps.profile_idc==244 && (h->chroma_pred_mode==VERT_PRED8x8 || h->chroma_pred_mode==HOR_PRED8x8)){
                     h->hpc.pred8x8_add[h->chroma_pred_mode](dest[0], block_offset + 16, h->mb + 16*16, uvlinesize);
                     h->hpc.pred8x8_add[h->chroma_pred_mode](dest[1], block_offset + 20, h->mb + 20*16, uvlinesize);
                 }else{
+                    idct_add = s->dsp.add_pixels4;
                     for(i=16; i<16+8; i++){
                         if(h->non_zero_count_cache[ scan8[i] ] || h->mb[i*16])
                             idct_add   (dest[(i&4)>>2] + block_offset[i], h->mb + i*16, uvlinesize);
                     }
                 }
             }else{
-                idct_add = s->dsp.h264_idct_add;
-                idct_dc_add = s->dsp.h264_idct_dc_add;
                 chroma_dc_dequant_idct_c(h->mb + 16*16, h->chroma_qp[0], h->dequant4_coeff[IS_INTRA(mb_type) ? 1:4][h->chroma_qp[0]][0]);
                 chroma_dc_dequant_idct_c(h->mb + 16*16+4*16, h->chroma_qp[1], h->dequant4_coeff[IS_INTRA(mb_type) ? 2:5][h->chroma_qp[1]][0]);
                 if(is_h264){
+                    idct_add = s->dsp.h264_idct_add;
+                    idct_dc_add = s->dsp.h264_idct_dc_add;
                     for(i=16; i<16+8; i++){
                         if(h->non_zero_count_cache[ scan8[i] ])
                             idct_add   (dest[(i&4)>>2] + block_offset[i], h->mb + i*16, uvlinesize);

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list