|
|
|
@ -821,17 +821,17 @@ static void vc1_mc_1mv(VC1Context *v, int dir) |
|
|
|
|
uvsrc_x = s->mb_x * 8 + (uvmx >> 2); |
|
|
|
|
uvsrc_y = s->mb_y * 8 + (uvmy >> 2); |
|
|
|
|
|
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
src_x = av_clip( src_x, -16, s->mb_width * 16); |
|
|
|
|
src_y = av_clip( src_y, -16, s->mb_height * 16); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); |
|
|
|
|
}else{ |
|
|
|
|
src_x = av_clip( src_x, -17, s->avctx->coded_width); |
|
|
|
|
src_y = av_clip( src_y, -18, s->avctx->coded_height + 1); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); |
|
|
|
|
} |
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
src_x = av_clip( src_x, -16, s->mb_width * 16); |
|
|
|
|
src_y = av_clip( src_y, -16, s->mb_height * 16); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); |
|
|
|
|
}else{ |
|
|
|
|
src_x = av_clip( src_x, -17, s->avctx->coded_width); |
|
|
|
|
src_y = av_clip( src_y, -18, s->avctx->coded_height + 1); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
srcY += src_y * s->linesize + src_x; |
|
|
|
|
srcU += uvsrc_y * s->uvlinesize + uvsrc_x; |
|
|
|
@ -951,13 +951,13 @@ static void vc1_mc_4mv_luma(VC1Context *v, int n) |
|
|
|
|
src_x = s->mb_x * 16 + (n&1) * 8 + (mx >> 2); |
|
|
|
|
src_y = s->mb_y * 16 + (n&2) * 4 + (my >> 2); |
|
|
|
|
|
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
src_x = av_clip( src_x, -16, s->mb_width * 16); |
|
|
|
|
src_y = av_clip( src_y, -16, s->mb_height * 16); |
|
|
|
|
}else{ |
|
|
|
|
src_x = av_clip( src_x, -17, s->avctx->coded_width); |
|
|
|
|
src_y = av_clip( src_y, -18, s->avctx->coded_height + 1); |
|
|
|
|
} |
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
src_x = av_clip( src_x, -16, s->mb_width * 16); |
|
|
|
|
src_y = av_clip( src_y, -16, s->mb_height * 16); |
|
|
|
|
}else{ |
|
|
|
|
src_x = av_clip( src_x, -17, s->avctx->coded_width); |
|
|
|
|
src_y = av_clip( src_y, -18, s->avctx->coded_height + 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
srcY += src_y * s->linesize + src_x; |
|
|
|
|
|
|
|
|
@ -1083,13 +1083,13 @@ static void vc1_mc_4mv_chroma(VC1Context *v) |
|
|
|
|
uvsrc_x = s->mb_x * 8 + (uvmx >> 2); |
|
|
|
|
uvsrc_y = s->mb_y * 8 + (uvmy >> 2); |
|
|
|
|
|
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); |
|
|
|
|
}else{ |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); |
|
|
|
|
} |
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); |
|
|
|
|
}else{ |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
srcU = s->last_picture.data[1] + uvsrc_y * s->uvlinesize + uvsrc_x; |
|
|
|
|
srcV = s->last_picture.data[2] + uvsrc_y * s->uvlinesize + uvsrc_x; |
|
|
|
@ -2139,17 +2139,17 @@ static void vc1_interp_mc(VC1Context *v) |
|
|
|
|
uvsrc_x = s->mb_x * 8 + (uvmx >> 2); |
|
|
|
|
uvsrc_y = s->mb_y * 8 + (uvmy >> 2); |
|
|
|
|
|
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
src_x = av_clip( src_x, -16, s->mb_width * 16); |
|
|
|
|
src_y = av_clip( src_y, -16, s->mb_height * 16); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); |
|
|
|
|
}else{ |
|
|
|
|
src_x = av_clip( src_x, -17, s->avctx->coded_width); |
|
|
|
|
src_y = av_clip( src_y, -18, s->avctx->coded_height + 1); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); |
|
|
|
|
} |
|
|
|
|
if(v->profile != PROFILE_ADVANCED){ |
|
|
|
|
src_x = av_clip( src_x, -16, s->mb_width * 16); |
|
|
|
|
src_y = av_clip( src_y, -16, s->mb_height * 16); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); |
|
|
|
|
}else{ |
|
|
|
|
src_x = av_clip( src_x, -17, s->avctx->coded_width); |
|
|
|
|
src_y = av_clip( src_y, -18, s->avctx->coded_height + 1); |
|
|
|
|
uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); |
|
|
|
|
uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
srcY += src_y * s->linesize + src_x; |
|
|
|
|
srcU += uvsrc_y * s->uvlinesize + uvsrc_x; |
|
|
|
|