decoder/ffmpeg: implement the libavutil log callback
Pass everything to the GLib logging library. No direct stderr access.
This commit is contained in:
parent
4e364854ab
commit
ae56901863
1
NEWS
1
NEWS
|
@ -24,6 +24,7 @@ ver 0.16 (20??/??/??)
|
|||
- don't fall back to "mad" unless no plugin matches
|
||||
- ffmpeg: support multiple tags
|
||||
- ffmpeg: convert metadata to generic format
|
||||
- ffmpeg: implement the libavutil log callback
|
||||
- sndfile: new decoder plugin based on libsndfile
|
||||
- flac: moved CUE sheet support to a playlist plugin
|
||||
- flac: support streams without STREAMINFO block
|
||||
|
|
|
@ -40,11 +40,38 @@
|
|||
#include <libavcodec/avcodec.h>
|
||||
#include <libavformat/avformat.h>
|
||||
#include <libavformat/avio.h>
|
||||
#include <libavutil/log.h>
|
||||
#endif
|
||||
|
||||
#undef G_LOG_DOMAIN
|
||||
#define G_LOG_DOMAIN "ffmpeg"
|
||||
|
||||
#ifndef OLD_FFMPEG_INCLUDES
|
||||
|
||||
static GLogLevelFlags
|
||||
level_ffmpeg_to_glib(int level)
|
||||
{
|
||||
if (level <= AV_LOG_FATAL)
|
||||
return G_LOG_LEVEL_CRITICAL;
|
||||
|
||||
if (level <= AV_LOG_ERROR)
|
||||
return G_LOG_LEVEL_WARNING;
|
||||
|
||||
if (level <= AV_LOG_INFO)
|
||||
return G_LOG_LEVEL_MESSAGE;
|
||||
|
||||
return G_LOG_LEVEL_DEBUG;
|
||||
}
|
||||
|
||||
static void
|
||||
mpd_ffmpeg_log_callback(G_GNUC_UNUSED void *ptr, int level,
|
||||
const char *fmt, va_list vl)
|
||||
{
|
||||
g_logv(G_LOG_DOMAIN, level_ffmpeg_to_glib(level), fmt, vl);
|
||||
}
|
||||
|
||||
#endif /* !OLD_FFMPEG_INCLUDES */
|
||||
|
||||
struct ffmpeg_stream {
|
||||
/** hack - see url_to_struct() */
|
||||
char url[64];
|
||||
|
@ -116,6 +143,10 @@ static URLProtocol mpd_ffmpeg_fileops = {
|
|||
static bool
|
||||
ffmpeg_init(G_GNUC_UNUSED const struct config_param *param)
|
||||
{
|
||||
#ifndef OLD_FFMPEG_INCLUDES
|
||||
av_log_set_callback(mpd_ffmpeg_log_callback);
|
||||
#endif
|
||||
|
||||
av_register_all();
|
||||
register_protocol(&mpd_ffmpeg_fileops);
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue