> 2019-01-14 9:05 GMT+01:00, Jerome Borsboom <jerome.borsboom at carpalis.nl>: >> The B predictor for 4-MV MBs in interlace field pictures is not used >> for blocks 0 and 2 when the picture is 1 MB wide. >> >> Signed-off-by: Jerome Borsboom <jerome.borsboom at carpalis.nl> >> --- >> My 'shuffle calculation of MV predictor candidates' patch overlooked the >> corner case of 1 MB wide field interlace pictures. According to VC-1 spec >> and the reference decoder, the B predictor is not used for for block 0 and >> block 2 when the picture is 1 MB wide. This patch corrects this. >> >> libavcodec/vc1_pred.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/libavcodec/vc1_pred.c b/libavcodec/vc1_pred.c >> index e1758a3817..77dda86cd0 100644 >> --- a/libavcodec/vc1_pred.c >> +++ b/libavcodec/vc1_pred.c >> @@ -289,6 +289,8 @@ void ff_vc1_pred_mv(VC1Context *v, int n, int dmv_x, int >> dmv_y, >> case 3: >> off = -1; >> } >> + if (v->field_mode && s->mb_width == 1) >> + b_valid = b_valid && c_valid; > > I will push this if you don't request commit rights > but shouldn't this be "b_valid &= c_valid;"? > > Carl Eugen
Please push. As b_valid and c_valid both expressions would give the same result. I really meant logical comparison, so 'b_valid = b_valid && c_valid' is correct and will short-circuit where &= would not. Regards, Jerome _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel