Mercurial > libavcodec.hg
changeset 8504:3bfb7a2ea222 libavcodec
It turned out that RV30 uses motion vectors for forward motion B-frame
macroblocks to predict motion vectors for backward motion B-frame macroblocks
and vice versa.
author | kostya |
---|---|
date | Mon, 29 Dec 2008 10:20:03 +0000 |
parents | 7c82ed8d4824 |
children | c8743c33eeef |
files | rv34.c |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/rv34.c Sun Dec 28 23:26:12 2008 +0000 +++ b/rv34.c Mon Dec 29 10:20:03 2008 +0000 @@ -564,7 +564,7 @@ MpegEncContext *s = &r->s; int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; int A[2] = {0}, B[2], C[2]; - int i, j; + int i, j, k; int mx, my; int avail_index = avail_indexes[0]; @@ -597,12 +597,12 @@ my += r->dmv[0][1]; for(j = 0; j < 2; j++){ for(i = 0; i < 2; i++){ - s->current_picture_ptr->motion_val[0][mv_pos + i + j*s->b8_stride][0] = mx; - s->current_picture_ptr->motion_val[0][mv_pos + i + j*s->b8_stride][1] = my; + for(k = 0; k < 2; k++){ + s->current_picture_ptr->motion_val[k][mv_pos + i + j*s->b8_stride][0] = mx; + s->current_picture_ptr->motion_val[k][mv_pos + i + j*s->b8_stride][1] = my; + } } } - if(block_type == RV34_MB_B_BACKWARD || block_type == RV34_MB_B_FORWARD) - fill_rectangle(s->current_picture_ptr->motion_val[!dir][mv_pos], 2, 2, s->b8_stride, 0, 4); } static const int chroma_coeffs[3] = { 0, 3, 5 };