From fb01a9bb2ea2e5a4f630b1f6c7201602873e2edf Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 21 Oct 2026 23:28:53 +0200 Subject: [PATCH] Record video audit failures and missing API contracts --- doc/tasks.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/tasks.md b/doc/tasks.md index 96d3dbf6..bf77f88a 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -4,6 +4,18 @@ ## Текущие задачи +[ ] **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. + [+] **tcp_io: владение connect-таймером и повторный FIN** — 21.10.2026: Замена таймаута сохраняет старый таймер при ошибке создания нового; <=0 отменяет таймер. Возвращаемые ошибки и диапазон INT_MAX/10 проверяются API и TCP-прокси; connect/error/destroy отменяют таймер.