diff options
author | Marco <marpan@google.com> | 2016-02-10 11:39:04 -0800 |
---|---|---|
committer | Marco <marpan@google.com> | 2016-02-12 15:06:48 -0800 |
commit | 3cbc26f31b82a045d44ba2fde1ce54a3d8e39cd6 (patch) | |
tree | 686e7578100de393aa72a0fd5acd65725dfac596 /vp9/encoder/vp9_encoder.c | |
parent | 34d12d116051e4e9c877b601f9add06ad725f6e3 (diff) | |
download | libvpx-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.c | 4 |
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) && |