From 8450b41d4bde88da54b9d29ab096f3ce8ae6791b Mon Sep 17 00:00:00 2001 From: Marco Paniconi Date: Wed, 6 Aug 2014 11:14:51 -0700 Subject: [PATCH] vp8 bugfix: Reallocate denoiser when spatially resizing. This is needed to update the width/height and stride parameters for the reference buffers that the denoiser uses. Change-Id: Id51b3bdcb56bbbc8187865544ccd3d872a0d51fe --- vp8/encoder/onyx_if.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 298f50f..91b9138 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -2762,6 +2762,19 @@ static int resize_key_frame(VP8_COMP *cpi) cm->Height = new_height; vp8_alloc_compressor_data(cpi); scale_and_extend_source(cpi->un_scaled_source, cpi); +#if CONFIG_TEMPORAL_DENOISING + // TODO(marpan): denoiser_allocate() is not called in + // vp8_alloc_compressor_data() (currently denoiser_allocate is + // only called in change_config()). Check if we can move this call + // of denoiser_free/allocate into vp8_alloc_compressor_data(). + if (cpi->oxcf.noise_sensitivity > 0) { + vp8_denoiser_free(&cpi->denoiser); + vp8_denoiser_allocate(&cpi->denoiser, new_width, new_height, + cm->mb_rows, cm->mb_cols, + ((cpi->oxcf.noise_sensitivity == 3) ? + 1 : 0)); + } +#endif return 1; } } -- 2.7.4