Files
rustdesk/vcpkg.json
rustdesk 1ac684db0d feat(codec): use SVT-AV1 for AV1 encoding on 64-bit targets
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
2026-07-23 01:50:57 +08:00

119 lines
2.2 KiB
JSON

{
"dependencies": [
{
"name": "aom",
"host": true
},
{
"name": "aom",
"host": false
},
{
"name": "svt-av1",
"host": false,
"platform": "!x86 & !arm32 & !uwp"
},
{
"name": "cpu-features",
"platform": "android"
},
{
"name": "libjpeg-turbo",
"host": true
},
{
"name": "libjpeg-turbo",
"host": false
},
{
"name": "libsodium",
"host": false,
"platform": "windows & arm64"
},
{
"name": "oboe",
"platform": "android"
},
{
"name": "opus",
"host": true
},
{
"name": "opus",
"host": false
},
{
"name": "libvpx",
"host": true
},
{
"name": "libvpx",
"host": false
},
{
"name": "libyuv",
"host": true
},
{
"name": "libyuv",
"host": false
},
{
"name": "mfx-dispatch",
"host": true,
"platform": "((x86 | x64) & (android | linux)) | (windows & !uwp)"
},
{
"name": "mfx-dispatch",
"host": false,
"platform": "((x86 | x64) & (android | linux)) | (windows & !uwp)"
},
{
"name": "ffmpeg",
"host": true,
"features": [
{
"name": "amf",
"platform": "(((windows & !arm) | linux) & static)"
},
{
"name": "nvcodec",
"platform": "(((windows & !arm) | linux) & static)"
},
{
"name": "qsv",
"platform": "(windows & !arm & static)"
}
],
"platform": "((windows | (linux & !arm32) | osx) & static)"
},
{
"name": "ffmpeg",
"host": false,
"platform": "((android | ios | (linux & arm32)) & static)"
}
],
"vcpkg-configuration": {
"default-registry": {
"kind": "builtin",
"baseline": "120deac3062162151622ca4860575a33844ba10b"
},
"overlay-ports": [
"./res/vcpkg"
],
"overlay-triplets": [
"./res/vcpkg-triplets"
]
},
"overrides": [
{
"name": "ffnvcodec",
"version": "12.1.14.0"
},
{
"name": "amd-amf",
"version": "1.4.35"
}
]
}