summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2009-10-31 23:03:48 +0200
committerUoti Urpala <uau@glyph.nonexistent.invalid>2009-10-31 23:59:16 +0200
commit8bbb79c03a594e452fb9109dd6fda781d390a798 (patch)
treedfcdec188bd26c205ef6b8163d24f1d74401d05f /mplayer.c
parent4a35807e7272ee61882e597003a512e07f004f27 (diff)
downloadmpv-8bbb79c03a594e452fb9109dd6fda781d390a798.tar.bz2
mpv-8bbb79c03a594e452fb9109dd6fda781d390a798.tar.xz
av_log callback handling overhaul
Move av_log callback handling from vd_ffmpeg.c to a new file av_log.c and install the callback immediately when starting the program. Main functionality improvements of the new code: - The old version only installed the callback when opening an FFmpeg video decoder. If nothing had triggered that then av_log() messages from other sources (libavformat, audio decoding, swscale usage) bypassed MPlayer's output system completely. Now the callback is always installed. - Current av_log message severity levels are handled correctly. The old code used MSGL_ERR for some messages that should be MSGL_V. - Message type is now set for libavformat contexts (MSGT_DEMUXER / MSGT_MUXER). - The old code did "mp_msg_test(type, mp_level)" before actually determining the type, so that it always used MSGT_FIXME. This led to some messages being incorrectly dropped in case the user had specified module-specific verbosity levels. The old check in question was originally motivated by performance problems when there were a lot of callbacks; however it's not clear whether the part about it skipping the type determination was intentional (most of the performance problems must have come from the way the original code used snprintf) and in my tests current FFmpeg libraries have not generated unreasonable amounts of callbacks anyway.
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mplayer.c b/mplayer.c
index c306c73b4f..41aeff634c 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -39,6 +39,7 @@
#include <errno.h>
#include "mp_msg.h"
+#include "av_log.h"
#define HELP_MP_DEFINE_STATIC
#include "help_mp.h"
@@ -2900,6 +2901,7 @@ int i;
srand(GetTimerMS());
mp_msg_init();
+ set_av_log_callback();
#ifdef CONFIG_X11
mpctx->x11_state = vo_x11_init_state();