diff --git a/doc/call_video.txt b/doc/call_video.txt index e3449bd8..7f144b51 100644 --- a/doc/call_video.txt +++ b/doc/call_video.txt @@ -1291,3 +1291,47 @@ timestamp-source-avtimer и raw.blurinfo; переключателя tier сре настоящими High-tier decode fixtures на обеих платформах, сохранением общих ограничений bitrate/геометрии/DPB/reorder. Простое снятие запрета tier оставляет непроверенный приём и ошибочные low-level заголовки. Модификация VPS/SPS не выполнялась. + +HEVC High tier для Samsung, 19.10.2026 +Реализовано явное согласование двух режимов HEVC Main: бит 1 — Main tier, +бит 2 — High tier. Это значения call_video profiles/format.profile, не HEVC Main 10. +High tier принимается только с level_idc>=120 (level 4), Main tier предпочтителен, +когда у обеих сторон есть оба режима. AVC Baseline/CB и размеры wire структур сохранены. +Бюджеты bitrate/HRD/CPB остаются консервативными Main-tier, максимум target — 4M. +Нормативное ограничение tier/level: ITU-T H.265, Annex A, general_tier_flag: +https://www.itu.int/rec/dologin_pub.asp?id=T-REC-H.265-201304-S%21%21PDF-E&lang=e&type=items + +Общий KEY validator различает tier и проверяет согласованный режим по VPS/SPS. +High-tier decoder fixtures получают декларацию High tier/level 4 из известных +Main-tier fixtures: их coding tools, DPB и BR/CPB укладываются в более высокий уровень. +Меняются только PTL эталонных проб; производственные VPS/SPS не переписываются. +Android и desktop проверяют декодирование обоих режимов отдельно, в обеих ориентациях, +на 720p и Full HD; отказ одного режима не снимает уже проверенную поддержку другого. +Desktop TX продолжает объявлять только реально проверенный Main tier. + +Android сначала пробует прежний level, затем HEVC level 4; найденные profile/tier/level +сохраняются для конкретного размера. Live выбирает именно режим проверенного encoder. +Запрос platform Main tier одинаков в probe и live: Samsung при MainTierLevel4 выдаёт +High tier, а при HighTierLevel4 в эксперименте выдал Main tier. Поэтому нельзя строить +Android KEY_LEVEL из полученного wire profile/tier и считать его обратным отображением. +prepare проверяет реальный поток, а production-проба требует точного совпадения с mode. + +CallVideoHevcProbe OUTPUT call проверяет настоящий CallVideoCodec: probe/prepare, +восемь кадров, точные PTS, in-place 1M -> 4M -> 300k -> 4M и decode каждой фазы. +На SM_A525F прошли все 24 фазы: 640x480/1280x720/1920x1080 и обратные ориентации, +c2.qti.hevc.encoder, Main/High tier, level 4. Это синтетический roundtrip, не замер +среднего bitrate на сложной сцене. Все 24 настоящих KEY дополнительно прошли +production CallVideoDecoder на desktop (четыре CPU slice threads) и c2.unisoc.hevc.decoder +второго Android; режим receive берёт *.key из OUTPUT и проверяет восемь PTS на файл. +Артефакты: /tmp/hevc-high-sm-production/, /tmp/hevc-high-desktop-cross.log, +/tmp/hevc-high-q8-receive.log. Живой звонок камеры новой сборки ещё не проверен. + +Проверки: native call_video — PASS; Android assembleDebug и unit — PASS; +desktop собран целиком; encoder/GPU/camera — 3/3 PASS, clock — PASS. +Camera IPC проверен вне sandbox, внутри него QLocalServer::listen запрещён. +Полный check.sh: 162/164; прежний test_encrypted_attachment и нестабильный +test_local_transport (отдельный повтор PASS). Логи: /tmp/hevc-high-core-check.log, +/tmp/hevc-high-local-transport-retry.log, /tmp/hevc-high-native-test.log, +/tmp/hevc-high-android-final-build.log, /tmp/hevc-high-qt-final-tests.log. +Для согласования High tier необходимо обновить обе стороны звонка. Установленные +приложения в ходе проверки не заменялись: app_process выполнялся отдельно. diff --git a/doc/tasks.md b/doc/tasks.md index 59e5bd9f..d6f1f878 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -4,6 +4,19 @@ ## Текущие задачи +[+] **HEVC Samsung: согласование High tier и проверка реального приёма** — 19.10.2026: + В звонок добавлен HEVC Main/High tier с level >=4, отдельными decode-пробами Android/desktop. + Samsung encoder повторно проверяется с level 4; рабочая настройка совпадает с probe. + Производственные VPS/SPS не переписываются, старые ограничения BR/CPB/DPB/reorder сохраняются. + На Samsung прошли 24 production encode/decode фазы, включая обе ориентации Full HD и смену bitrate. + Все 24 реальных KEY декодированы desktop и вторым Android. Подробности: doc/call_video.txt. + Сборки, native video, Android unit и Qt video/camera/clock прошли. Живой звонок после обновления обеих сторон ещё не проверен. + +[ ] **Разобрать нестабильный test_local_transport под общей нагрузкой** — 19.10.2026: + В check.sh для HEVC: 162/164, кроме прежнего encrypted_attachment упал peers():95 failed: found; + перед отказом endpoint peer=2 удалён по TTL (age_ms=30331). Отдельный повтор прошёл. + Логи: /tmp/hevc-high-core-check.log, /tmp/hevc-high-local-transport-retry.log; код local_transport не менялся. + [ ] **Разобрать ожидание запросов ключей после перезапуска автора в test_encrypted_attachment** — 19.10.2026: При проверке настроек входящих звонков общий check.sh: 160/162; test_encrypted_attachment остановился в phase=5, heartbeats=12001. Отдельный повтор также остановился в phase=5: после старта автора не получены два pending incoming-запроса.