Encode AV1 with SVT-AV1 v4.2.0 (rtc + low delay + CBR) instead of libaom
on all 64-bit targets; 32-bit targets keep aom. Decoding is unchanged and
the wire format is still AV1, so old peers are unaffected.
- vcpkg overlay port pinned to v4.2.0: static build, LTO off (mixed
toolchain safety), MSVC >= 1950 inline workaround, no forced llvm
binutils
- low delay contract: one packet out per picture in, blocking get_packet
- bitrate and frame rate change on the fly via RATE_CHANGE_EVENT /
FRAME_RATE_CHANGE_EVENT; VideoQoS pushes its pacing rate through the
new EncoderApi::set_fps, applied only after a successful send
- fall back to aom for i444 (svt-av1 is 4:2:0 only), for unsupported
resolutions and on encoder init failure
- test_av1 now gates auto AV1 on the encoder actually used, the cached
verdict is re-keyed (SVT-Y/SVT-N) so upgrades re-measure
- unit tests: per-frame packet contract, aom cross-decode of the
bitstream, on-the-fly event acceptance
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Wf7v1KJM6mbhiYxWSz4PH