summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.c
diff options
context:
space:
mode:
authorMarco <marpan@google.com>2016-02-10 11:39:04 -0800
committerMarco <marpan@google.com>2016-02-12 15:06:48 -0800
commit3cbc26f31b82a045d44ba2fde1ce54a3d8e39cd6 (patch)
tree686e7578100de393aa72a0fd5acd65725dfac596 /vp9/encoder/vp9_encoder.c
parent34d12d116051e4e9c877b601f9add06ad725f6e3 (diff)
downloadlibvpx-3cbc26f31b82a045d44ba2fde1ce54a3d8e39cd6.tar
libvpx-3cbc26f31b82a045d44ba2fde1ce54a3d8e39cd6.tar.gz
libvpx-3cbc26f31b82a045d44ba2fde1ce54a3d8e39cd6.tar.bz2
libvpx-3cbc26f31b82a045d44ba2fde1ce54a3d8e39cd6.zip
vp9-resize: Fix an issue with external dynamic resize.
External dynamic resize with swapping width and height was not handled properly. Fix is to re-init loop-filter under certain condtions. Modify unittest to test this case. Without this change test will fail. Relates to: https://bugs.chromium.org/p/webm/issues/detail?id=1140 Change-Id: I7d81ca7fe0783b3bc103a52a7b7cf073a96be26e
Diffstat (limited to 'vp9/encoder/vp9_encoder.c')
-rw-r--r--vp9/encoder/vp9_encoder.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index ff176fb93..429a9cecd 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -1538,8 +1538,12 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
realloc_segmentation_maps(cpi);
cpi->initial_width = cpi->initial_height = 0;
cpi->external_resize = 0;
+ } else if (cm->mi_alloc_size == new_mi_size &&
+ (cpi->oxcf.width > last_w || cpi->oxcf.height > last_h)) {
+ vp9_alloc_loop_filter(cm);
}
}
+
update_frame_size(cpi);
if ((last_w != cpi->oxcf.width || last_h != cpi->oxcf.height) &&