[FFmpeg-cvslog] hevc: Conceal zero td
Luca Barbato
git at videolan.org
Mon Feb 10 04:11:40 CET 2014
ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Sat Feb 8 06:10:27 2014 +0100| [246d3bf0ec93dd21069f9352ed4909aec334cd4d] | committer: Luca Barbato
hevc: Conceal zero td
It was done only in check_mvset(), while mv_scale() is called also by
dist_scale().
Sample-Id: 00001579-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable at libav.org
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=246d3bf0ec93dd21069f9352ed4909aec334cd4d
---
libavcodec/hevc_mvs.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavcodec/hevc_mvs.c b/libavcodec/hevc_mvs.c
index 49d5ff2..2fe4dbb 100644
--- a/libavcodec/hevc_mvs.c
+++ b/libavcodec/hevc_mvs.c
@@ -568,8 +568,12 @@ static av_always_inline void dist_scale(HEVCContext *s, Mv *mv,
int ref_pic_elist = refPicList[elist].list[TAB_MVF(x, y).ref_idx[elist]];
int ref_pic_curr = refPicList[ref_idx_curr].list[ref_idx];
- if (ref_pic_elist != ref_pic_curr)
- mv_scale(mv, mv, s->poc - ref_pic_elist, s->poc - ref_pic_curr);
+ if (ref_pic_elist != ref_pic_curr) {
+ int poc_diff = s->poc - ref_pic_elist;
+ if (!poc_diff)
+ poc_diff = 1;
+ mv_scale(mv, mv, poc_diff, s->poc - ref_pic_curr);
+ }
}
static int mv_mp_mode_mx(HEVCContext *s, int x, int y, int pred_flag_index,
More information about the ffmpeg-cvslog
mailing list