ref: 1580a88c5d5ed6151696ab5ede0163a6cc7cf4e6
parent: 19125ae121b53c9298a85f4a080d54c11d6c7015
parent: 2a72067301dd5e95e815a3d9789708315039a3b6
author: Tim Kopp <tkopp@google.com>
date: Thu Jun 19 04:38:41 EDT 2014
Merge "Implemented vp9_denoiser_{alloc,free}()"
--- a/vp9/encoder/vp9_denoiser.c
+++ b/vp9/encoder/vp9_denoiser.c
@@ -40,10 +40,36 @@
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;
}
--
⑨