|
|
|
|
@ -741,3 +741,33 @@ drop_late/drop_schedule=0, av=-43819..39982мкс. Desktop 5737 показов
|
|
|
|
|
Снимки /tmp/video-playout-live-{desktop,sm}.log. После этого замера добавлен контекст максимального |
|
|
|
|
промежутка и уточнён абсолютный срок сна Android; финальная сборка установлена на Samsung и Q8. |
|
|
|
|
Следующая проверка: по gap_* установить источник остаточных пауз и late drops, не расширяя A/V-границы вслепую. |
|
|
|
|
|
|
|
|
|
Проверка финальной сборки, звонок 9002196988226353494, 15.10.2026 |
|
|
|
|
Снимки /tmp/video-playout-final-live-{desktop,sm}.log, сводка /tmp/video-playout-final-live-summary.json. |
|
|
|
|
Последние 20 секунд: Samsung 29.94fps, ноль drop_late/drop_schedule; videoPTS-audioPTS на release |
|
|
|
|
+14.664..+40.000мс. Медиана секундных максимумов интервала 43.14мс; отдельные длинные интервалы остаются. |
|
|
|
|
Desktop 29.61fps, 8 drop_late за это окно, без drop_schedule; A/V -49.740..+2.763мс. |
|
|
|
|
Исходный период Android-камеры около 33.308мс, но для самых длинных промежутков на desktop |
|
|
|
|
медианный gap_rx=52.91мс при gap_dispatch=3.95мс. Нерегулярность видна уже на входе RX port. |
|
|
|
|
На Samsung: gap_pts обычно ~36мс, gap_rx медиана 56.34мс, gap_dispatch 7.06мс; |
|
|
|
|
был исходный промежуток 68мс. Поэтому все остаточные паузы нельзя приписать приёмному таймеру. |
|
|
|
|
|
|
|
|
|
По согласованным send/receive PTS двух направлений phone_boot-host_boot ограничен |
|
|
|
|
[-796330268513,-796330265026]мкс: погрешность оценки +/-1.744мс. |
|
|
|
|
После завершения постановки кадра отправителем до полной сборки получателем: медианы |
|
|
|
|
3.03мс desktop->SM (42 выборки) и 3.37мс SM->desktop (33). Это не включает queue_age отправителя. |
|
|
|
|
На SM sensorPTS->send медиана 124.08мс, максимум 163.26мс. Для desktop mappedPTS->send |
|
|
|
|
медиана 30.28мс, encode 23.11мс. Разные способы получения capture PTS не дают точного |
|
|
|
|
сравнения стекло-стекло. На SM receive->decode 11.78мс, decode->release 20.68мс, |
|
|
|
|
release->commit 23.29мс по имеющимся совпавшим выборкам; commit не означает физический scanout. |
|
|
|
|
|
|
|
|
|
Выявлен отдельный механизм искусственного ожидания TX: flush выдаёт до 16 фрагментов по 1200 байт, |
|
|
|
|
затем продолжение вызывается лишь новым видео, отправкой audio или таймером 50мс. |
|
|
|
|
Это граница 19200 байт на один вызов, хотя канал может быть свободен. В выборке Samsung: |
|
|
|
|
31 кадр <=19200 байт имел queue_age 0..0.2мс; кадры 45309/46333 байт — 1.9/39.9мс. |
|
|
|
|
Снимки непустой TX-очереди показывают held=0, audio_busy=transport_busy=0, то есть ожидания |
|
|
|
|
аудиопозиции в этих снимках нет. Покадрового счётчика выхода по budget/debt сейчас нет; |
|
|
|
|
39.9мс нельзя целиком объявить только budget, но само ожидание внешнего события после budget |
|
|
|
|
подтверждено кодом. Следующее исправление: ограниченное отменяемое продолжение отправки при |
|
|
|
|
исчерпании budget и готовых данных, с сохранением проверок аудиопозиции, сетевого долга и fairness uasync. |
|
|
|
|
Не увеличивать очереди/допуск A/V для маскировки этой паузы. В этом диагностическом проходе код не менялся. |
|
|
|
|
|