diff --git a/src/video/video.c b/src/video/video.c index 4e42d510..d226b39c 100644 --- a/src/video/video.c +++ b/src/video/video.c @@ -108,12 +108,15 @@ static void video_av_log_cb(void* avcl, int level, const char* fmt, va_list vl) } static void ffmpeg_init_once(void) { - av_log_set_callback(video_av_log_cb); - av_log_set_level(AV_LOG_DEBUG); avformat_network_init(); } -void video_ffmpeg_init(void) { pthread_once(&g_ffmpeg_once, ffmpeg_init_once); } +void video_ffmpeg_init(void) { + pthread_once(&g_ffmpeg_once, ffmpeg_init_once); + /* Qt Multimedia заменяет глобальный callback при загрузке backend; возвращаем общий лог перед работой с codec. */ + av_log_set_callback(video_av_log_cb); + av_log_set_level(AV_LOG_DEBUG); +} /* строковое описание кода ошибки ffmpeg (используется только в worker-потоке) */ static const char* vc_errstr(int err) { diff --git a/src/video/video.h b/src/video/video.h index c3c8241c..ffcab504 100644 --- a/src/video/video.h +++ b/src/video/video.h @@ -10,8 +10,8 @@ extern "C" { struct UASYNC; -/* Один раз подключает FFmpeg к общему логу; trace категории debug включает внутренние сообщения AMF. - * Можно вызывать из любого потока. В сборке без FFmpeg ничего не делает. */ +/* Инициализирует FFmpeg и подключает общий лог; повторный вызов восстанавливает callback после загрузки Qt backend. + * trace категории debug включает AMF и заголовки HEVC. В сборке без FFmpeg ничего не делает. */ void video_ffmpeg_init(void); /* ── целевой профиль: H.264 в MP4, не более 720p / 2 Mbit ── */