2018-04-21 21:05 GMT+02:00, Jerome Borsboom <jerome.borsb...@carpalis.nl>: >> Fixes #2557. >> >> Signed-off-by: Paul B Mahol <onemda at gmail.com> >> --- >> libavcodec/vc1_pred.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libavcodec/vc1_pred.c b/libavcodec/vc1_pred.c >> index 54712f6b7a..9f42a930fe 100644 >> --- a/libavcodec/vc1_pred.c >> +++ b/libavcodec/vc1_pred.c >> @@ -98,9 +98,9 @@ static av_always_inline int scaleforsame_y(VC1Context >> *v, int i, int n /* MV */, >> } >> >> if (v->cur_field_type && !v->ref_field_type[dir]) >> - return av_clip(scaledvalue, -v->range_y / 2 + 1, v->range_y / 2); >> + return av_clip(scaledvalue, -v->range_y / 2 - 1, v->range_y / 2); >> else >> - return av_clip(scaledvalue, -v->range_y / 2, v->range_y / 2 - 1); >> + return av_clip(scaledvalue, -v->range_y / 2, v->range_y / 2 + 1); >> } >> >> static av_always_inline int scaleforopp_x(VC1Context *v, int n /* MV */) >> -- >> 2.11.0 > > scaleforsame_y references ref_field_type. Therefore, it needs to be set > before scaleforsame is called.
Please mention ticket #2557 in the commit message. > Signed-off-by: Jerome Borsboom <jerome.borsb...@carpalis.nl> > --- > I am not sure your patch is correct. The existing implementation agrees with > VC-1 spec. > See Figure 119 in 10.3.5.4.3.4.2 in particular. Please have a look if the > patch below solves > the issue. ref_field_type is referenced in scaleforsame_y and needs to be > set earlier in > ff_vc1_pred_mv to have the desired effect. This patch also fixes the issue for the given sample Carl Eugen _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel