[FFmpeg-devel] [PATCH] avcodec/vc1: fix B predictor validity for 4-MV MBs

Jerome Borsboom jerome.borsboom at carpalis.nl
Mon Jan 14 10:05:24 EET 2019


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;
     }
 
     if (v->field_mode) {
-- 
2.13.6




More information about the ffmpeg-devel mailing list