diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c index 5952d92463..a8e060b66e 100644 --- a/libavcodec/dsputil.c +++ b/libavcodec/dsputil.c @@ -1322,7 +1322,7 @@ void ff_block_permute(INT16 *block, UINT8 *permutation, const UINT8 *scantable, INT16 temp[64]; if(last<=0) return; - if(permutation[1]==1) return; //FIXME its ok but not clean and might fail for some perms + //if(permutation[1]==1) return; //FIXME its ok but not clean and might fail for some perms for(i=0; i<=last; i++){ const int j= scantable[i]; diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 7f21f331e2..5e67ebda3a 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -3074,7 +3074,8 @@ static int dct_quantize_c(MpegEncContext *s, *overflow= s->max_qcoeff < max; //overflow might have happend /* we need this permutation so that we correct the IDCT, we only permute the !=0 elements */ - ff_block_permute(block, s->idct_permutation, scantable, last_non_zero); + if (s->idct_permutation_type != FF_NO_IDCT_PERM) + ff_block_permute(block, s->idct_permutation, scantable, last_non_zero); return last_non_zero; }