diff options
author | Vitor Sessak <vitor1001@gmail.com> | 2007-06-27 10:40:29 +0000 |
---|---|---|
committer | Benoit Fouet <benoit.fouet@free.fr> | 2007-06-27 10:40:29 +0000 |
commit | a7ae617fbd767c850ee1b5614454b281e91a8929 (patch) | |
tree | 6a00943a5844ad5e088d929ab8a57f2e9f3d332a | |
parent | 7cbf432db1faa8b2ef2dc18e06a87bf6be293718 (diff) | |
download | ffmpeg-a7ae617fbd767c850ee1b5614454b281e91a8929.tar.gz |
use the right stride
patch by Vitor: [vitor1001 gmail com]
Originally committed as revision 9446 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/roqvideo.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libavcodec/roqvideo.c b/libavcodec/roqvideo.c index 036e2e0d28..50393b0f77 100644 --- a/libavcodec/roqvideo.c +++ b/libavcodec/roqvideo.c @@ -52,6 +52,7 @@ void ff_apply_vector_2x2(RoqContext *ri, int x, int y, roq_cell *cell) bptr[stride ] = cell->y[2]; bptr[stride+1] = cell->y[3]; + stride = ri->c_stride; bptr = ri->current_frame->data[1] + boffs; bptr[0 ] = bptr[1 ] = @@ -79,6 +80,7 @@ void ff_apply_vector_4x4(RoqContext *ri, int x, int y, roq_cell *cell) bptr[stride*2 ] = bptr[stride*2+1] = bptr[stride*3 ] = bptr[stride*3+1] = cell->y[2]; bptr[stride*2+2] = bptr[stride*2+3] = bptr[stride*3+2] = bptr[stride*3+3] = cell->y[3]; + stride = ri->c_stride; bptr = ri->current_frame->data[1] + boffs; bptr[ 0] = bptr[ 1] = bptr[stride ] = bptr[stride +1] = bptr[ 2] = bptr[ 3] = bptr[stride +2] = bptr[stride +3] = @@ -109,10 +111,13 @@ static inline void apply_motion_generic(RoqContext *ri, int x, int y, int deltax return; } - for(cp = 0; cp < 3; cp++) - block_copy(ri->current_frame->data[cp] + (y * ri->y_stride) + x, - ri->last_frame->data[cp] + (my * ri->y_stride) + mx, - ri->y_stride, ri->y_stride, sz); + for(cp = 0; cp < 3; cp++) { + int stride = ri->current_frame->linesize[cp]; + block_copy(ri->current_frame->data[cp] + (y*stride) + x, + ri->last_frame->data[cp] + (my*stride) + mx, + stride, stride, sz); + } + } |