summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2015-01-16 09:03:40 -0800
committerJingning Han <jingning@google.com>2015-01-16 12:29:58 -0800
commitdfda5cebc7f6ff667ffd749b16cd11bea5dfb105 (patch)
tree71788cc8ae30c92af719c7cee79237fb8c6ad32b
parent1be4267ec21e3235027f83e7442c25e7eefbd836 (diff)
downloadlibvpx-dfda5cebc7f6ff667ffd749b16cd11bea5dfb105.tar
libvpx-dfda5cebc7f6ff667ffd749b16cd11bea5dfb105.tar.gz
libvpx-dfda5cebc7f6ff667ffd749b16cd11bea5dfb105.tar.bz2
libvpx-dfda5cebc7f6ff667ffd749b16cd11bea5dfb105.zip
Fix frame buffer swap in denoiser
This commit fixes a bug in denoiser reference frame buffer swap, which disables frame buffer update. Change-Id: I39a9427180fd18f9692602064ad821f7af4714c0
-rw-r--r--vp9/encoder/vp9_denoiser.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/vp9/encoder/vp9_denoiser.c b/vp9/encoder/vp9_denoiser.c
index ab8533703..a7aaff0cf 100644
--- a/vp9/encoder/vp9_denoiser.c
+++ b/vp9/encoder/vp9_denoiser.c
@@ -352,6 +352,7 @@ static void copy_frame(YV12_BUFFER_CONFIG dest, const YV12_BUFFER_CONFIG src) {
int r;
const uint8_t *srcbuf = src.y_buffer;
uint8_t *destbuf = dest.y_buffer;
+
assert(dest.y_width == src.y_width);
assert(dest.y_height == src.y_height);
@@ -362,13 +363,13 @@ static void copy_frame(YV12_BUFFER_CONFIG dest, const YV12_BUFFER_CONFIG src) {
}
}
-static void swap_frame_buffer(YV12_BUFFER_CONFIG dest,
- YV12_BUFFER_CONFIG src) {
- uint8_t *tmp_buf = dest.y_buffer;
- assert(dest.y_width == src.y_width);
- assert(dest.y_height == src.y_height);
- dest.y_buffer = src.y_buffer;
- src.y_buffer = tmp_buf;
+static void swap_frame_buffer(YV12_BUFFER_CONFIG *dest,
+ YV12_BUFFER_CONFIG *src) {
+ uint8_t *tmp_buf = dest->y_buffer;
+ assert(dest->y_width == src->y_width);
+ assert(dest->y_height == src->y_height);
+ dest->y_buffer = src->y_buffer;
+ src->y_buffer = tmp_buf;
}
void vp9_denoiser_update_frame_info(VP9_DENOISER *denoiser,
@@ -387,16 +388,16 @@ void vp9_denoiser_update_frame_info(VP9_DENOISER *denoiser,
/* For non key frames */
if (refresh_alt_ref_frame) {
- swap_frame_buffer(denoiser->running_avg_y[ALTREF_FRAME],
- denoiser->running_avg_y[INTRA_FRAME]);
+ swap_frame_buffer(&denoiser->running_avg_y[ALTREF_FRAME],
+ &denoiser->running_avg_y[INTRA_FRAME]);
}
if (refresh_golden_frame) {
- swap_frame_buffer(denoiser->running_avg_y[GOLDEN_FRAME],
- denoiser->running_avg_y[INTRA_FRAME]);
+ swap_frame_buffer(&denoiser->running_avg_y[GOLDEN_FRAME],
+ &denoiser->running_avg_y[INTRA_FRAME]);
}
if (refresh_last_frame) {
- swap_frame_buffer(denoiser->running_avg_y[LAST_FRAME],
- denoiser->running_avg_y[INTRA_FRAME]);
+ swap_frame_buffer(&denoiser->running_avg_y[LAST_FRAME],
+ &denoiser->running_avg_y[INTRA_FRAME]);
}
}