]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Fix passing of unaligned addresses to dsputil diff_bytes() by
authorheydowns <heydowns@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 23 May 2009 19:37:01 +0000 (19:37 +0000)
committerheydowns <heydowns@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 23 May 2009 19:37:01 +0000 (19:37 +0000)
changeing calls to sub_left_prediction such that
the source frame data pointers are no longer offset to skip the initial
elements. This keeps them properly aligned for the subsequent call to diff_bytes.
Changes encoding offset to compensate.

Mailing list thread:
https://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-May/069952.html

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18919 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/huffyuv.c

index 5ecb138045d41457320f9f63c849e9ccafef5633..092a1096b62e46eb1d9e49692d22bcf696fdec51 100644 (file)
@@ -1257,11 +1257,11 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size,
         put_bits(&s->pb, 8, leftu= p->data[1][0]);
         put_bits(&s->pb, 8,        p->data[0][0]);
 
-        lefty= sub_left_prediction(s, s->temp[0], p->data[0]+2, width-2 , lefty);
-        leftu= sub_left_prediction(s, s->temp[1], p->data[1]+1, width2-1, leftu);
-        leftv= sub_left_prediction(s, s->temp[2], p->data[2]+1, width2-1, leftv);
+        lefty= sub_left_prediction(s, s->temp[0], p->data[0], width , 0);
+        leftu= sub_left_prediction(s, s->temp[1], p->data[1], width2, 0);
+        leftv= sub_left_prediction(s, s->temp[2], p->data[2], width2, 0);
 
-        encode_422_bitstream(s, 0, width-2);
+        encode_422_bitstream(s, 2, width-2);
 
         if(s->predictor==MEDIAN){
             int lefttopy, lefttopu, lefttopv;