Restore FFmpeg diagnostics after Qt multimedia initializes its logger
This commit is contained in:
1 parent
d1ba26f8ac
commit
0cfc29d9eb
2 files changed
+8
-5
No files matched your search
+6
-3
@@ -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) {
|
static void ffmpeg_init_once(void) {
|
||||||
av_log_set_callback(video_av_log_cb);
|
|
||||||
av_log_set_level(AV_LOG_DEBUG);
|
|
||||||
avformat_network_init();
|
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-потоке) */
|
/* строковое описание кода ошибки ffmpeg (используется только в worker-потоке) */
|
||||||
static const char* vc_errstr(int err) {
|
static const char* vc_errstr(int err) {
|
||||||
|
|||||||
+2
-2
@@ -10,8 +10,8 @@ extern "C" {
|
|||||||
|
|
||||||
struct UASYNC;
|
struct UASYNC;
|
||||||
|
|
||||||
/* Один раз подключает FFmpeg к общему логу; trace категории debug включает внутренние сообщения AMF.
|
/* Инициализирует FFmpeg и подключает общий лог; повторный вызов восстанавливает callback после загрузки Qt backend.
|
||||||
* Можно вызывать из любого потока. В сборке без FFmpeg ничего не делает. */
|
* trace категории debug включает AMF и заголовки HEVC. В сборке без FFmpeg ничего не делает. */
|
||||||
void video_ffmpeg_init(void);
|
void video_ffmpeg_init(void);
|
||||||
|
|
||||||
/* ── целевой профиль: H.264 в MP4, не более 720p / 2 Mbit ── */
|
/* ── целевой профиль: H.264 в MP4, не более 720p / 2 Mbit ── */
|
||||||
|
|||||||
Reference in new issue
Block a user