[FFmpeg-cvslog] r15794 - trunk/libavcodec/rv34.c
kostya
subversion
Sat Nov 8 19:15:14 CET 2008
Author: kostya
Date: Sat Nov 8 19:15:13 2008
New Revision: 15794
Log:
Split RV3/4 deblock pattern into horizontal and vertical parts
during calculating.
Modified:
trunk/libavcodec/rv34.c
Modified: trunk/libavcodec/rv34.c
==============================================================================
--- trunk/libavcodec/rv34.c (original)
+++ trunk/libavcodec/rv34.c Sat Nov 8 19:15:13 2008
@@ -1082,19 +1082,23 @@ static int is_mv_diff_gt_3(int16_t (*mot
static int rv34_set_deblock_coef(RV34DecContext *r)
{
MpegEncContext *s = &r->s;
- int mvmask = 0, i, j;
+ int hmvmask = 0, vmvmask = 0, i, j;
int midx = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride;
int16_t (*motion_val)[2] = s->current_picture_ptr->motion_val[0][midx];
for(j = 0; j < 16; j += 8){
for(i = 0; i < 2; i++){
if(is_mv_diff_gt_3(motion_val + i, 1))
- mvmask |= 0x11 << (j + i*2);
+ vmvmask |= 0x11 << (j + i*2);
if(is_mv_diff_gt_3(motion_val + i, s->b8_stride))
- mvmask |= 0x03 << (j + i*2);
+ hmvmask |= 0x03 << (j + i*2);
}
motion_val += s->b8_stride;
}
- return mvmask;
+ if(s->first_slice_line)
+ hmvmask &= ~0x000F;
+ if(!s->mb_x)
+ vmvmask &= ~0x1111;
+ return hmvmask | vmvmask; //XXX: should be stored separately for RV3
}
static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types)
More information about the ffmpeg-cvslog
mailing list