Document Full HD call modes and verified codec recovery checks

This commit is contained in:
evgeny committed 2026-10-19 22:56:35 +02:00
1 parent 72cb1fa829
commit 833eeb0a8d
2 files changed
+59

No files matched your search

+44
View File
@@ -1193,3 +1193,47 @@ decoder output+12мс, stop без ACK, запоздалый ACK после star
Qt encoder/GPU/clock/jitter: 4/4 PASS, core и vibechat собраны.
Полный check.sh вне sandbox: 163/164; известный test_encrypted_attachment снова phase=5,
heartbeats=12001 (описан в doc/tasks.md). Лог: /tmp/video-independent-check-full.log.
Full HD и режимы камеры, 19.10.2026
Предел интерфейса звонка — 1920x1080 либо 1080x1920, 30fps. Начальный режим и диапазон
300k..4M не повышаются автоматически. Общие wire CAPS уже допускают эти геометрии.
Для Full HD@30 согласуются AVC level_idc=40 и HEVC general_level_idc=120, Main tier;
нижние размеры по-прежнему получают минимальный допустимый уровень через call_video_choose.
Desktop camera worker опрашивает QCameraDevice::videoFormats и использует те же
stream_video_add_camera_modes/stream_video_camera_supports, что publisher трансляций.
В звонок попадают только чётные аппаратные размеры до Full HD при 30/29.97fps.
Дубликаты pixel format объединяются; список передаётся в GUI вместе с id/именем камеры
и обновляется по videoInputsChanged. Драйвер опрашивается только в отдельном процессе.
GUI сохраняет разрешение при смене камеры, если оно поддерживается; иначе выбирает 640x480
либо минимальный доступный размер. Отсутствие режимов не превращается в запрос размера -1.
При старте требуется точное совпадение аппаратной геометрии; другой размер готового
QImage диагностируется как ошибка вместо скрытого масштабирования.
Shared mapping FRAME/ACK расширен до 1920*1080*4 байт; обе стороны проверяют геометрию.
Worker копирует RGB32 построчно с учётом stride, GUI получает собственный QImage.
Владение mapping, поколения и ограничение единственного кадра в IPC сохранены.
Android выбирает 640x480/1280x720/1920x1080 из YUV_420_888 камеры, учитывая min frame
duration и диапазон AE с upper=30. Каждая геометрия кодера проверяется в двух ориентациях;
для разных размеров могут использоваться разные аппаратные/программные реализации.
Decoder также хранит реализацию и измеренный pipeline отдельно для 720p и Full HD.
Это сохраняет работающий GPU на 720p, если Full HD проверен только через CPU.
CAPS содержат реальные проверенные encode/decode пределы; выбранный режим дополнительно
проверяется открытием codec и bitstream, как требует контракт независимых верхних границ.
Общие KEY fixtures дополнены 1920x1080 и 1080x1920, AVC Baseline/CB и HEVC Main.
call_video_probe_key принимает width/height; генератор tools/generate_call_video_portrait.py
--fullhd явно задаёт high-tier=0. Нельзя заменять Full HD-пробу одной лишь проверкой 720p.
Desktop capability probes отменяются при stop, включая ожидание другого probe;
незавершённый результат не кэшируется. Codec/драйверные вызовы выполняются вне GUI/playout.
Проверки: native bitstream/геометрия/профили/DPB — PASS; Qt encoder/GPU/clock/camera/audio
5/5 PASS, включая настоящие Full HD encode/decode в обеих ориентациях, поколения,
границу shared buffer и stop во время проб. Общие camera modes publisher — 3/3 PASS.
Ядро, все desktop targets и Android APK собраны; Android unit 111/111 PASS.
Логи: /tmp/fullhd-native-video-test.log, /tmp/fullhd-qt-verified-tests.log,
/tmp/fullhd-shared-camera-modes.log, /tmp/fullhd-android-final-build.log,
/tmp/fullhd-desktop-final-build.log. Полный check.sh — 163/164, прежний отказ
test_encrypted_attachment phase=5/heartbeats=12001: /tmp/fullhd-core-check.log.
Это codec/IPC-проверки; живой Full HD звонок новой сборки на Windows/Android ещё не проверен.
+15
View File
@@ -12,6 +12,21 @@
Повторилось при проверке независимого видеопланировщика: check.sh вне sandbox 163/164,
тот же phase=5/heartbeats=12001; /tmp/video-independent-check-full.log,
артефакты /tmp/utun_encrypted_attachment_IW0W28. Код вложений в этой работе не менялся.
Повторилось при проверке Full HD звонков: check.sh 163/164, тот же phase=5/heartbeats=12001;
/tmp/fullhd-core-check.log, артефакты /tmp/utun_encrypted_attachment_MIwfM3.
[+] **Full HD в видеозвонках и реальные разрешения desktop-камеры** — 19.10.2026:
Desktop использует общий со стримами отбор аппаратных режимов до 1920x1080 при 30/29.97fps.
Список и hotplug приходят из отдельного процесса; выбранный режим открывается точно, без подстановки ближайшего.
Android добавляет 1920x1080 в пересечение YUV-режимов камеры и проверенных кодеров; учтены обе ориентации.
Encode/decode CAPS объявляются после настоящих проб, GPU/CPU выбираются с учётом размера.
Общий RGB-буфер камеры расширен до Full HD; очередь показа остаётся на три кадра.
Пробы decoder отменяются при stop, незавершённые CAPS не кэшируются.
Ядро, полный desktop и Android APK собраны; Android unit 111/111, Qt video/camera/clock/audio 5/5,
общий механизм режимов камер 3/3, native bitstream/Full HD — PASS.
Полный check.sh: известный сбой test_encrypted_attachment, остальные 163 PASS.
Проверка живого Full HD звонка на Windows и телефонах ещё не выполнена.
Подробности и логи: doc/call_video.txt.
[ ] **Разобрать нестабильную загрузку storage-узлов в test_media_delivery_chat** — 19.10.2026:
В том же общем прогоне storage st1/st2 не собрали файл, n2 исчерпал попытки блока 0 (15/19 внутренних проверок).