[SCM] libav/experimental: ppc chroma mess workaround (real bug is that the motion compensation code assumes that 2*uvlinesize == linesize and fixing this would mean a slowdown)

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:39:11 UTC 2013


The following commit has been merged in the experimental branch:
commit 7984082a08cf2119da3433c245b72a91020b879d
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Thu Feb 12 16:21:21 2004 +0000

    ppc chroma mess workaround (real bug is that the motion compensation code assumes that 2*uvlinesize == linesize and fixing this would mean a slowdown)
    
    Originally committed as revision 2771 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 0f123b7..d04c2fa 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -238,7 +238,8 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){
             const int h_shift= i==0 ? 0 : h_chroma_shift;
             const int v_shift= i==0 ? 0 : v_chroma_shift;
 
-            buf->linesize[i]= ALIGN(pixel_size*w>>h_shift, s_align);
+            //FIXME next ensures that linesize= 2^x uvlinesize, thats needed because some MC code assumes it
+            buf->linesize[i]= ALIGN(pixel_size*w>>h_shift, s_align<<(h_chroma_shift-h_shift)); 
 
             buf->base[i]= av_mallocz((buf->linesize[i]*h>>v_shift)+16); //FIXME 16
             if(buf->base[i]==NULL) return -1;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list