From: Tim Kopp Date: Wed, 11 Jun 2014 23:12:21 +0000 (-0700) Subject: Implemented vp9_denoiser_{alloc,free}() X-Git-Tag: v1.4.0~1383^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2a72067301dd5e95e815a3d9789708315039a3b6;p=libvpx Implemented vp9_denoiser_{alloc,free}() Change-Id: I79eba79f7c52eec19ef2356278597e06620d5e27 --- diff --git a/vp9/encoder/vp9_denoiser.c b/vp9/encoder/vp9_denoiser.c index 687b4c2b2..7e0a0924f 100644 --- a/vp9/encoder/vp9_denoiser.c +++ b/vp9/encoder/vp9_denoiser.c @@ -40,10 +40,36 @@ void vp9_denoiser_update_frame_stats() { int vp9_denoiser_alloc(VP9_DENOISER *denoiser, int width, int height, int border) { + assert(denoiser); + + denoiser->running_avg_y.stride = width + 2 * border; + + denoiser->running_avg_y.buf = calloc( + ((2 * border) + width) * ((2 * border) + height), sizeof(uint8_t)); + if (denoiser->running_avg_y.buf == NULL) { + vp9_denoiser_free(denoiser); + return 1; + } + + denoiser->mc_running_avg_y.stride = width + 2 * border; + + denoiser->mc_running_avg_y.buf = calloc( + ((2 * border) + width) * ((2 * border) + height), sizeof(uint8_t)); + if (denoiser->mc_running_avg_y.buf == NULL) { + vp9_denoiser_free(denoiser); + return 1; + } + return 0; } void vp9_denoiser_free(VP9_DENOISER *denoiser) { + if (denoiser->running_avg_y.buf != NULL) { + free(denoiser->running_avg_y.buf); + } + if (denoiser->mc_running_avg_y.buf != NULL) { + free(denoiser->mc_running_avg_y.buf); + } return; }