Minimal size for PUs is 4x4, so 2 CTB lines represent at most 32 lines. is_pcm is used for simplicity in the inloop filter, so it can't be modified equivalently. --- libavcodec/hevc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index bed2f5f..2b37f53 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -105,7 +105,7 @@ static int pic_arrays_init(HEVCContext *s, const HEVCSPS *sps) goto fail; s->cbf_luma = av_malloc_array(sps->min_tb_width, sps->min_tb_height); - s->tab_ipm = av_mallocz(min_pu_size); + s->tab_ipm = av_mallocz(32*sps->min_pu_width); s->is_pcm = av_malloc(min_pu_size); if (!s->tab_ipm || !s->cbf_luma || !s->is_pcm) goto fail; @@ -1605,9 +1605,9 @@ static int luma_intra_pred_mode(HEVCContext *s, int x0, int y0, int pu_size, int y0b = y0 & ((1 << s->sps->log2_ctb_size) - 1); int cand_up = (lc->ctb_up_flag || y0b) ? - s->tab_ipm[(y_pu - 1) * min_pu_width + x_pu] : INTRA_DC; + s->tab_ipm[((y_pu - 1)&31) * min_pu_width + x_pu] : INTRA_DC; int cand_left = (lc->ctb_left_flag || x0b) ? - s->tab_ipm[y_pu * min_pu_width + x_pu - 1] : INTRA_DC; + s->tab_ipm[(y_pu&31) * min_pu_width + x_pu - 1] : INTRA_DC; int y_ctb = (y0 >> (s->sps->log2_ctb_size)) << (s->sps->log2_ctb_size); @@ -1662,7 +1662,7 @@ static int luma_intra_pred_mode(HEVCContext *s, int x0, int y0, int pu_size, if (!size_in_pus) size_in_pus = 1; for (i = 0; i < size_in_pus; i++) { - memset(&s->tab_ipm[(y_pu + i) * min_pu_width + x_pu], + memset(&s->tab_ipm[((y_pu + i)&31) * min_pu_width + x_pu], intra_pred_mode, size_in_pus); for (j = 0; j < size_in_pus; j++) { @@ -1742,7 +1742,7 @@ static void intra_prediction_unit_default_value(HEVCContext *s, if (size_in_pus == 0) size_in_pus = 1; for (j = 0; j < size_in_pus; j++) - memset(&s->tab_ipm[(y_pu + j) * min_pu_width + x_pu], INTRA_DC, size_in_pus); + memset(&s->tab_ipm[((y_pu + j)&31) * min_pu_width + x_pu], INTRA_DC, size_in_pus); if (lc->cu.pred_mode == MODE_INTRA) for (j = 0; j < size_in_pus; j++) for (k = 0; k < size_in_pus; k++) -- 1.9.2.msysgit.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel