summaryrefslogtreecommitdiffstats
path: root/mpvcore/av_log.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-12-17 02:39:45 +0100
committerwm4 <wm4@nowhere>2013-12-17 02:39:45 +0100
commit0112143fdaae0a6264d9e02355e9dc0ca4f7741c (patch)
treebbbe9527d1e1490e37b67d97398c5bc19c7794cd /mpvcore/av_log.c
parent73a5417950a2d21a397597c05521725f3d125993 (diff)
downloadmpv-0112143fdaae0a6264d9e02355e9dc0ca4f7741c.tar.bz2
mpv-0112143fdaae0a6264d9e02355e9dc0ca4f7741c.tar.xz
Split mpvcore/ into common/, misc/, bstr/
Diffstat (limited to 'mpvcore/av_log.c')
-rw-r--r--mpvcore/av_log.c176
1 files changed, 0 insertions, 176 deletions
diff --git a/mpvcore/av_log.c b/mpvcore/av_log.c
deleted file mode 100644
index ca3ef70747..0000000000
--- a/mpvcore/av_log.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * av_log to mp_msg converter
- * Copyright (C) 2006 Michael Niedermayer
- * Copyright (C) 2009 Uoti Urpala
- *
- * This file is part of MPlayer.
- *
- * MPlayer is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * MPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdlib.h>
-#include <stdbool.h>
-
-#include "av_log.h"
-#include "config.h"
-#include "mpvcore/mp_msg.h"
-#include <libavutil/avutil.h>
-#include <libavutil/log.h>
-
-#include <libavcodec/avcodec.h>
-#include <libavformat/avformat.h>
-#include <libswscale/swscale.h>
-
-#if HAVE_LIBAVDEVICE
-#include <libavdevice/avdevice.h>
-#endif
-
-#if HAVE_LIBAVFILTER
-#include <libavfilter/avfilter.h>
-#endif
-
-#if HAVE_LIBAVRESAMPLE
-#include <libavresample/avresample.h>
-#endif
-#if HAVE_LIBSWRESAMPLE
-#include <libswresample/swresample.h>
-#endif
-
-static int av_log_level_to_mp_level(int av_level)
-{
- if (av_level > AV_LOG_VERBOSE)
- return MSGL_DBG2;
- if (av_level > AV_LOG_INFO)
- return MSGL_V;
- if (av_level > AV_LOG_WARNING)
- return MSGL_V;
- if (av_level > AV_LOG_ERROR)
- return MSGL_WARN;
- if (av_level > AV_LOG_FATAL)
- return MSGL_ERR;
- return MSGL_FATAL;
-}
-
-static int extract_msg_type_from_ctx(void *ptr)
-{
- if (!ptr)
- return MSGT_FIXME;
-
- AVClass *avc = *(AVClass **)ptr;
- if (!avc) {
- mp_msg(MSGT_FIXME, MSGL_WARN,
- "av_log callback called with bad parameters (NULL AVClass).\n"
- "This is a bug in one of Libav/FFmpeg libraries used.\n");
- return MSGT_FIXME;
- }
-
- if (!strcmp(avc->class_name, "AVCodecContext")) {
- AVCodecContext *s = ptr;
- if (s->codec) {
- if (s->codec->type == AVMEDIA_TYPE_AUDIO) {
- if (s->codec->decode)
- return MSGT_DECAUDIO;
- } else if (s->codec->type == AVMEDIA_TYPE_VIDEO) {
- if (s->codec->decode)
- return MSGT_DECVIDEO;
- }
- // FIXME subtitles, encoders
- // What msgt for them? There is nothing appropriate...
- }
- return MSGT_FIXME;
- }
-
- if (!strcmp(avc->class_name, "AVFormatContext")) {
- AVFormatContext *s = ptr;
- if (s->iformat)
- return MSGT_DEMUXER;
- else if (s->oformat)
- return MSGT_MUXER;
- return MSGT_FIXME;
- }
-
- return MSGT_FIXME;
-}
-
-#if LIBAVCODEC_VERSION_MICRO >= 100
-#define LIB_PREFIX "ffmpeg"
-#else
-#define LIB_PREFIX "libav"
-#endif
-
-static bool print_prefix = true;
-
-static void mp_msg_av_log_callback(void *ptr, int level, const char *fmt,
- va_list vl)
-{
- AVClass *avc = ptr ? *(AVClass **)ptr : NULL;
- int mp_level = av_log_level_to_mp_level(level);
- int type = extract_msg_type_from_ctx(ptr);
-
- if (!mp_msg_test(type, mp_level))
- return;
-
- if (print_prefix) {
- mp_msg(type, mp_level, "[%s/%s] ", LIB_PREFIX,
- avc ? avc->item_name(ptr) : "?");
- }
- print_prefix = fmt[strlen(fmt) - 1] == '\n';
-
- mp_msg_va(type, mp_level, fmt, vl);
-}
-
-void init_libav(void)
-{
- av_log_set_callback(mp_msg_av_log_callback);
- avcodec_register_all();
- av_register_all();
- avformat_network_init();
-
-#if HAVE_LIBAVFILTER
- avfilter_register_all();
-#endif
-#if HAVE_LIBAVDEVICE
- avdevice_register_all();
-#endif
-}
-
-#define V(x) (x)>>16, (x)>>8 & 255, (x) & 255
-static void print_version(int v, char *name, unsigned buildv, unsigned runv)
-{
- mp_msg(MSGT_CPLAYER, v, " %-15s %d.%d.%d", name, V(buildv));
- if (buildv != runv)
- mp_msg(MSGT_CPLAYER, v, " (runtime %d.%d.%d)", V(runv));
- mp_msg(MSGT_CPLAYER, v, "\n");
-}
-#undef V
-
-void print_libav_versions(int v)
-{
- mp_msg(MSGT_CPLAYER, v, "%s library versions:\n", LIB_PREFIX);
-
- print_version(v, "libavutil", LIBAVUTIL_VERSION_INT, avutil_version());
- print_version(v, "libavcodec", LIBAVCODEC_VERSION_INT, avcodec_version());
- print_version(v, "libavformat", LIBAVFORMAT_VERSION_INT, avformat_version());
- print_version(v, "libswscale", LIBSWSCALE_VERSION_INT, swscale_version());
-#if HAVE_LIBAVFILTER
- print_version(v, "libavfilter", LIBAVFILTER_VERSION_INT, avfilter_version());
-#endif
-#if HAVE_LIBAVRESAMPLE
- print_version(v, "libavresample", LIBAVRESAMPLE_VERSION_INT, avresample_version());
-#endif
-#if HAVE_LIBSWRESAMPLE
- print_version(v, "libswresample", LIBSWRESAMPLE_VERSION_INT, swresample_version());
-#endif
-}