Hello,
Changelog:
2026-06-09 v1.17.0 "Yellowbilled Duck"
This release includes a new encoder control to validate high bitdepth input,
additional Neon and AVX2/AVX512 optimizations, support for the C11 standard,
and numerous bug fixes.
- Upgrading:
This release is ABI compatible with the previous release.
ISO C11 standard is now enforced for C files.
SVC is now strictly disallowed for 2-pass encoding; enabling it will return
VPX_CODEC_INVALID_PARAM.
VP9 High Bitdepth (HBD) input validation is now enabled by default. If the
input contains values outside the valid range, the encoder will return
VPX_CODEC_INVALID_PARAM. Use the new VP9E_SET_VALIDATE_HBD_INPUT control
(or vpxenc --validate-hbd-input=0) to disable this validation.
VP9 now sets the returned image width (w) and height (h) to the actual
width and height, rather than the stride and aligned height. This is a
behavior change that may affect applications relying on w being equal to the
stride or h being the aligned height.
Strict validation has been added to some APIs:
- Encoders (VP8/VP9) now reject input images with unequal U and V strides.
- vpx_img_alloc() and vpx_img_wrap() now strictly validate the image format.
- External rate control (RTC) API now validates configuration inputs.
- VP9 SVC now validates spatial layer ID input.
- Enhancement:
Added Arm Neon DotProd subpel variance paths.
Optimized Neon HBD sadx4d and sad_skipx4d functions.
Added AVX2/AVX512 implementations for various vpx_highbd predictor functions.
Added support for MSVC v145 (Visual Studio 2026).
Added configure option --disable-x86-asm.
- Bug fixes:
Fix to heap buffer overflow / out-of-bounds write in vp9_postproc,
vp8-multi-res-encoding, vpx_setup_noise, set_mb_ssim_rdmult_scaling,
vp9_change_config (resolution change), vp9_dec_alloc_row_mt_mem (decode
coeffs), and vp8_sixtap_predict (LoongArch).
Fix to integer overflow in vp9-svc (layer resolution, duration),
set_mb_ssim_rdmult_scaling, vp8_encode_frame, calc_pframe_target_size,
y4minput buffer size calculations, and get_token_alloc.
Fix to VP8 decoder crash on flush with no fragments.
Fix to VP8 decoder potential hang/slowdown with corrupt partition 0 size.
Fix to VP9 decoder crash with invalid reference frame index.
Fix to VP9 highbitdepth encoder format mismatch.
Fix to VP9 float-to-int overflow in validate_config (EOS count) and with
zero bitrate.
Fix to crash/undefined behavior in vpx_img_flip with formats without alpha.