[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