Record completed video fixes and validation coverage
This commit is contained in:
1 parent
df2f90d1f5
commit
6d39800351
1 file changed
+14
-11
+14
-11
@@ -4,17 +4,20 @@
|
||||
|
||||
## Текущие задачи
|
||||
|
||||
[ ] **video: сохранность исходника и достоверность результата JPEG** — аудит 21.10.2026:
|
||||
`video_transcode_start(src, src)` на подходящем H.264/MP4 запускает копирование с `fopen(dst, "wb")`:
|
||||
временный исходник уменьшился с 1522 до 0 байтов, callback вернул ошибку уже после потери данных.
|
||||
`video_extract_thumbnail` не проверяет fwrite/fclose: запись в `/dev/full` вернула 0 и лог успеха.
|
||||
Короткое видео H.264 с задержанными кадрами возвращает -1 без превью: при EOF не выполняется drain
|
||||
декодера; тот же файл штатный FFmpeg преобразует в JPEG. Контрольный intra-файл получает превью.
|
||||
В video.h также уточнить синхронное чтение при probe, глобальный лимит одного transcode до done,
|
||||
время жизни callback info, ошибки/стабы без FFmpeg и фактические условия needs_transcode.
|
||||
Отдельно проверить игнорируемые ошибки финального drain/close, частичную настройку audio и обрезание путей.
|
||||
Исправления реализации не вносились. Стенд /tmp/utun-video-audit.c, сборка /tmp/utun-video-audit.mk;
|
||||
логи /tmp/utun-video-audit-intra.log, /tmp/utun-video-audit-full.log, /tmp/utun-video-audit-delayed.log.
|
||||
[+] **video: сохранность файлов, JPEG и подготовка MP4** — исправлено 22.10.2026:
|
||||
Одинаковые файлы/алиасы и недопустимые пути отклоняются без изменения исходника.
|
||||
JPEG и MP4 пишутся в эксклюзивный временный файл; запись, drain, trailer и close проверяются.
|
||||
Только успешный completion публикует результат; отмена до callback сохраняет старое назначение.
|
||||
Превью получает задержанные B-кадры. MOV/H.264/AAC проходит remux в MP4; остальные профили
|
||||
перекодируются с audio FIFO, сохранением временного смещения и хвоста ресемплера.
|
||||
Атомарный global slot удерживается до completion, ошибки имеют точную фазу и контекст в логе.
|
||||
Контракты описаны в src/video/video.h и doc/service_lifecycle.md.
|
||||
test_video проверяет реальные кадры/сигнал, 1080p→720p, PCM/MP3/AAC, resample 12345→12000 Гц,
|
||||
файловые ошибки, отмену, повтор из callback и конкурентные start; test_video_no_ffmpeg — стабы.
|
||||
Оба теста, test_services и test_attachment_send прошли ASAN/UBSan с detect_leaks=1.
|
||||
Отдельная конфигурация всего ядра/тестов без FFmpeg собрана, оба video-теста прошли.
|
||||
Логи: /tmp/video-asan-final.log, /tmp/video-services-asan.log, /tmp/video-attachment-send-asan.log,
|
||||
/tmp/video-without-ffmpeg-build-final.log; общий прогон: /tmp/video-full-check-final.log.
|
||||
|
||||
[+] **tcp_io: владение connect-таймером и повторный FIN** — 21.10.2026:
|
||||
Замена таймаута сохраняет старый таймер при ошибке создания нового; <=0 отменяет таймер.
|
||||
|
||||
Reference in new issue
Block a user