|
|
|
|
@ -224,3 +224,52 @@ desktop / DataStore Android и передаётся в общий chat_setting.
|
|
|
|
|
Полный ./check.sh вне sandbox: 154/154, proxy 9/9, burst/load PASS; |
|
|
|
|
/tmp/call-range-check-final.log. Первый запуск в sandbox блокировался запретом сокетов. |
|
|
|
|
Настройки и регулятор готовы; подключение камеры/codec/render остаётся отдельным этапом. |
|
|
|
|
|
|
|
|
|
Проверка реального x265 перед подключением backend, 14.10.2026 |
|
|
|
|
Добавлена ручная цель probe_call_x265 (EXCLUDE_FROM_ALL, не входит в ctest), если |
|
|
|
|
найден x265 через pkg-config. Сборка/запуск: |
|
|
|
|
cmake --build tools/chatgui/build --target probe_call_x265 -j4 |
|
|
|
|
./tools/chatgui/build/probe_call_x265 |
|
|
|
|
./tools/chatgui/build/probe_call_x265 --frame-rc |
|
|
|
|
Один encoder, 640x360@30, Main 8-bit/Main tier/level 3.1, reference=1, |
|
|
|
|
B=0/lookahead=0, ABR+VBV, буфер 1000 кбит. Три участка по 120 кадров: |
|
|
|
|
4 Мбит/с -> 300 кбит/с -> 4 Мбит/с. Детерминированная шумовая сцена требует полосы; |
|
|
|
|
измерение каждого участка исключает первые 30 кадров переходного процесса. |
|
|
|
|
Код 0 — измерение прошло; 1 — ошибка API/потеря PTS; 2 — непригодный rate control. |
|
|
|
|
Допуск измерения 0.5..1.5 target — диагностический, не гарантия CBR для любой сцены. |
|
|
|
|
|
|
|
|
|
Установленная библиотека 4.1+1-1d117be (пакет 4.1-4) не проходит пробу: |
|
|
|
|
target 4000000: output 4016866 бит/с; |
|
|
|
|
target 300000: output 4006669 бит/с, несмотря на getter bitrate=300/vbv=300 кбит/с; |
|
|
|
|
target 4000000: output 3945016 бит/с. |
|
|
|
|
Лог: /tmp/call-x265-system.log. Return reconfigure=0 и getter недостаточны. |
|
|
|
|
frame-rc также непригоден для этого zerolatency-профиля: output около 40 кбит/с |
|
|
|
|
на всех трёх участках; /tmp/call-x265-frame-rc.log. |
|
|
|
|
|
|
|
|
|
Причина проверена по исходникам именно установленного выпуска: |
|
|
|
|
https://deb.debian.org/debian/pool/main/x/x265/x265_4.1.orig.tar.xz |
|
|
|
|
SHA256 85abb8a850000bf693947459c42a666a3ecd6de10a2ac6b3c6647554b14d3270 |
|
|
|
|
Encoder::configure(p) теперь присваивает this->m_param=p. Вызов из |
|
|
|
|
x265_encoder_reconfig с m_latestParam переключает encoder на новый объект, но |
|
|
|
|
RateControl::m_param остаётся прежним адресом. Последующий x265_copy_params |
|
|
|
|
копирует latest в него самого; reconfigureRC читает старые параметры rate control. |
|
|
|
|
Для frame-rc обнаружен отдельный дефект: tuneQscaleToUpdatedBitrate делит |
|
|
|
|
frameBitsTotal на i=0 при пустом lookahead, что в этой пробе приводит к QP=69. |
|
|
|
|
|
|
|
|
|
Проверенный минимальный патч сохраняет активный m_param до configure(latest) |
|
|
|
|
и восстанавливает его после. Файл для дальнейшего подключения: |
|
|
|
|
tools/chatgui/ffmpeg/patches/x265-4.1-reconfigure-param-owner.patch |
|
|
|
|
Применён только к отдельной копии исходников в /tmp/call-x265-source; |
|
|
|
|
библиотека собрана в /tmp/call-x265-build без установки в систему. |
|
|
|
|
С тем же тестом и frame-rc=off output=4016866 / 298165 / 4213269 бит/с. |
|
|
|
|
Логи: /tmp/call_x265_probe_fixed.log и /tmp/call-x265-fixed.log. |
|
|
|
|
Дополнительная проверка ffprobe: 360/360 кадров декодируются, Main, level=93 |
|
|
|
|
(HEVC level 3.1), has_b_frames=0. Системная библиотека и приложение не заменены. |
|
|
|
|
ChatGUI успешно собирается; /tmp/call-x265-desktop-build.log. |
|
|
|
|
|
|
|
|
|
Рекомендуемое продолжение: закрепить проверенную версию x265 и патч в локальной |
|
|
|
|
сборке зависимости, повторить codec-пробу для рабочих разрешений и decoder, |
|
|
|
|
затем подключить direct API к backend звонка. Непрошедший проверку backend |
|
|
|
|
не объявлять в capabilities; H.264 остаётся альтернативой, когда H.265 недоступен. |
|
|
|
|
Патч пока не подключён к build_ffmpeg.sh; изменение поставки зависимости и |
|
|
|
|
интеграция backend остановлены по правилу AGENTS.md о выявленной нестыковке. |
|
|
|
|
|