Доля растёт ровно: строка «progress=continue» больше не обнуляет место

Показатель висел на пяти процентах, потом прыгал к семидесяти девяти,
потом сразу готово. Виноват не ffmpeg: замерено, что он отдаёт ход
безупречно ровно — блок каждые полсекунды, 7%, 14%, 20%, 27% и дальше
без единого скачка.

Блок заканчивается строкой «progress=continue», в которой места нет:
она сообщает только, что работа продолжается, и разбор честно оставляет
переданное число как было. Я передавал туда ноль, поэтому каждый блок
заканчивался обнулением доли. Показатель стоял и дёргался вверх лишь
тогда, когда опрос попадал между строкой со временем и этой.

Теперь отсчёт начинается с уже известного места — как это давно делает
сборка ролика. Проверено глазами на невидимом экране: шесть снимков
подряд через полторы секунды дают 54, 65, 74, 82, 91, 99 процентов,
полоса растёт вместе с числом.

Ловушку закрепляет проверка в tests/lfmcheck: «progress=continue» и
«progress=end» узнаются, но времени не трогают.
This commit is contained in:
4aiman 2026-10-01 16:24:59 +03:00
commit d75596bca3
3 changed files with 61 additions and 1 deletions

View file

@ -865,6 +865,16 @@ Wine с новой библиотекой не грузилось ничего.
привычный RGB. Записанный по привычке код даёт цвет с переставленными
красным и синим.
**Последняя строка блока о ходе работы обнуляет место.** ffmpeg шлёт ход
блоками, и заканчивается блок строкой `progress=continue`, в которой
места нет — она сообщает только, что работа продолжается. Разбор честно
оставляет переданное число как было, поэтому передавать туда надо уже
известное место, а не ноль. С нулём доля обнуляется в конце каждого
блока: показатель стоит на месте и дёргается вверх лишь тогда, когда
опрос попадёт между строкой со временем и этой — «висит на пяти
процентах, потом скачет до семидесяти девяти». Сам ffmpeg при этом
отдаёт ход безупречно ровно: блок каждые полсекунды, замерено.
**Разбор HEVC на процессоре — самое дорогое в сведении слоёв.** Не
фильтры, как кажется: на десяти секундах 2688x1512 цепочка со сведением
стоит 13.5 с, а без всяких фильтров — 12.7 с. Всё время уходит на разбор