[FFmpeg-cvslog] hevc_mvs: set candidate availabilities

Christophe Gisquet git at videolan.org
Sun Aug 10 17:30:10 CEST 2014


ffmpeg | branch: master | Christophe Gisquet <christophe.gisquet at gmail.com> | Sun Aug 10 15:02:36 2014 +0200| [84bc45880ae14277cb804569401ddd34274f4764] | committer: Michael Niedermayer

hevc_mvs: set candidate availabilities

They might be left uninitialized otherwise since 3ad04608.

Fixes ticket #3840.

Found-by: Carl Eugen Hoyos <ce at hoyos.ws>
Reported-by: Piotr Bandurski <ami_stuff at o2.pl>

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=84bc45880ae14277cb804569401ddd34274f4764
---

 libavcodec/hevc_mvs.c |   20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/libavcodec/hevc_mvs.c b/libavcodec/hevc_mvs.c
index 1d4c002..3d8276f 100644
--- a/libavcodec/hevc_mvs.c
+++ b/libavcodec/hevc_mvs.c
@@ -677,6 +677,17 @@ b_candidates:
                        xB0 < s->sps->width &&
                        PRED_BLOCK_AVAILABLE(B0);
 
+    // above spatial merge candidate
+    xB1    = x0 + nPbW - 1;
+    yB1    = y0 - 1;
+    is_available_b1 = AVAILABLE(cand_up, B1);
+
+    // above left spatial merge candidate
+    xB2 = x0 - 1;
+    yB2 = y0 - 1;
+    is_available_b2 = AVAILABLE(cand_up_left, B2);
+
+    // above right spatial merge candidate
     if (is_available_b0) {
         if (MP_MX(B0, pred_flag_index_l0, mxB)) {
             goto scalef;
@@ -687,11 +698,6 @@ b_candidates:
     }
 
     // above spatial merge candidate
-    xB1    = x0 + nPbW - 1;
-    yB1    = y0 - 1;
-
-    is_available_b1 = AVAILABLE(cand_up, B1);
-
     if (is_available_b1) {
         if (MP_MX(B1, pred_flag_index_l0, mxB)) {
             goto scalef;
@@ -702,10 +708,6 @@ b_candidates:
     }
 
     // above left spatial merge candidate
-    xB2 = x0 - 1;
-    yB2 = y0 - 1;
-    is_available_b2 = AVAILABLE(cand_up_left, B2);
-
     if (is_available_b2) {
         if (MP_MX(B2, pred_flag_index_l0, mxB)) {
             goto scalef;



More information about the ffmpeg-cvslog mailing list