summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-12-21 20:24:20 +0100
committerwm4 <wm4@nowhere>2013-12-21 21:43:16 +0100
commit3dbc9007b080028f0aebbbf8b9ab1233cd70c45b (patch)
treee6e46e5dd238338c44d421ef4f9101c9898c3cbf
parent9149e2af568d4cb251f8b105f360c3e6b9fd9d86 (diff)
downloadmpv-3dbc9007b080028f0aebbbf8b9ab1233cd70c45b.tar.bz2
mpv-3dbc9007b080028f0aebbbf8b9ab1233cd70c45b.tar.xz
demux: mp_msg conversions
The TV code pretends to be part of stream/, but it's actually demuxer code too. The audio_in code is shared between the TV code and stream_radio.c, so stream_radio.c needs a small hack until stream.c is converted.
-rw-r--r--common/playlist_parser.c2
-rw-r--r--demux/demux.c96
-rw-r--r--demux/demux.h7
-rw-r--r--demux/demux_lavf.c59
-rw-r--r--demux/demux_libass.c2
-rw-r--r--demux/demux_mf.c10
-rw-r--r--demux/demux_mkv.c297
-rw-r--r--demux/demux_raw.c5
-rw-r--r--demux/demux_subreader.c58
-rw-r--r--demux/ebml.c72
-rw-r--r--demux/ebml.h8
-rw-r--r--demux/mf.c37
-rw-r--r--demux/mf.h7
-rw-r--r--player/loadfile.c5
-rw-r--r--player/main.c2
-rw-r--r--player/timeline/tl_cue.c4
-rw-r--r--player/timeline/tl_matroska.c6
-rw-r--r--player/timeline/tl_mpv_edl.c2
-rw-r--r--stream/ai_alsa1x.c36
-rw-r--r--stream/ai_oss.c42
-rw-r--r--stream/ai_sndio.c4
-rw-r--r--stream/audio_in.c19
-rw-r--r--stream/audio_in.h5
-rw-r--r--stream/stream_radio.c2
-rw-r--r--stream/tv.c110
-rw-r--r--stream/tv.h7
-rw-r--r--stream/tvi_dummy.c6
-rw-r--r--stream/tvi_v4l2.c195
28 files changed, 544 insertions, 561 deletions
diff --git a/common/playlist_parser.c b/common/playlist_parser.c
index ee5fe07b91..f33f7204b6 100644
--- a/common/playlist_parser.c
+++ b/common/playlist_parser.c
@@ -539,7 +539,7 @@ static struct playlist *do_parse(struct stream* stream, bool forced,
};
bool success = false;
- struct demuxer *pl_demux = demux_open(stream, "playlist", NULL, global->opts);
+ struct demuxer *pl_demux = demux_open(stream, "playlist", NULL, global);
if (pl_demux && pl_demux->playlist) {
playlist_transfer_entries(p.pl, pl_demux->playlist);
success = true;
diff --git a/demux/demux.c b/demux/demux.c
index 8d46f79391..7643b58a38 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -33,6 +33,7 @@
#include "common/av_common.h"
#include "talloc.h"
#include "common/msg.h"
+#include "common/global.h"
#include "stream/stream.h"
#include "demux.h"
@@ -225,7 +226,7 @@ struct demux_packet *demux_copy_packet(struct demux_packet *dp)
struct sh_stream *new_sh_stream(demuxer_t *demuxer, enum stream_type type)
{
if (demuxer->num_streams > MAX_SH_STREAMS) {
- mp_msg(MSGT_DEMUXER, MSGL_WARN, "Too many streams.");
+ MP_WARN(demuxer, "Too many streams.");
return NULL;
}
@@ -353,8 +354,7 @@ int demuxer_add_packet(demuxer_t *demuxer, struct sh_stream *stream,
if (stream->type != STREAM_VIDEO && dp->pts == MP_NOPTS_VALUE)
dp->pts = dp->dts;
- mp_msg(MSGT_DEMUXER, MSGL_DBG2,
- "DEMUX: Append packet to %s, len=%d pts=%5.3f pos=%"PRIu64" "
+ MP_DBG(demuxer, "DEMUX: Append packet to %s, len=%d pts=%5.3f pos=%"PRIu64" "
"[packs: A=%d V=%d S=%d]\n", stream_type_name(stream->type),
dp->len, dp->pts, dp->pos, count_packs(demuxer, STREAM_AUDIO),
count_packs(demuxer, STREAM_VIDEO), count_packs(demuxer, STREAM_SUB));
@@ -373,13 +373,13 @@ static bool demux_check_queue_full(demuxer_t *demux)
overflow:
if (!demux->warned_queue_overflow) {
- mp_msg(MSGT_DEMUXER, MSGL_ERR, "\nToo many packets in the demuxer "
- "packet queue (video: %d packets in %d bytes, audio: %d "
- "packets in %d bytes, sub: %d packets in %d bytes).\n",
- count_packs(demux, STREAM_VIDEO), count_bytes(demux, STREAM_VIDEO),
- count_packs(demux, STREAM_AUDIO), count_bytes(demux, STREAM_AUDIO),
- count_packs(demux, STREAM_SUB), count_bytes(demux, STREAM_SUB));
- mp_msg(MSGT_DEMUXER, MSGL_HINT, "Maybe you are playing a non-"
+ MP_ERR(demux, "\nToo many packets in the demuxer "
+ "packet queue (video: %d packets in %d bytes, audio: %d "
+ "packets in %d bytes, sub: %d packets in %d bytes).\n",
+ count_packs(demux, STREAM_VIDEO), count_bytes(demux, STREAM_VIDEO),
+ count_packs(demux, STREAM_AUDIO), count_bytes(demux, STREAM_AUDIO),
+ count_packs(demux, STREAM_SUB), count_bytes(demux, STREAM_SUB));
+ MP_INFO(demux, "Maybe you are playing a non-"
"interleaved stream/file or the codec failed?\n");
}
demux->warned_queue_overflow = true;
@@ -399,8 +399,8 @@ static void ds_get_packets(struct sh_stream *sh)
{
struct demux_stream *ds = sh->ds;
demuxer_t *demux = sh->demuxer;
- mp_msg(MSGT_DEMUXER, MSGL_DBG3, "ds_get_packets (%s) called\n",
- stream_type_name(sh->type));
+ MP_TRACE(demux, "ds_get_packets (%s) called\n",
+ stream_type_name(sh->type));
while (1) {
if (ds->head)
return;
@@ -411,8 +411,8 @@ static void ds_get_packets(struct sh_stream *sh)
if (!demux_fill_buffer(demux))
break; // EOF
}
- mp_msg(MSGT_DEMUXER, MSGL_V, "ds_get_packets: EOF reached (stream: %s)\n",
- stream_type_name(sh->type));
+ MP_VERBOSE(demux, "ds_get_packets: EOF reached (stream: %s)\n",
+ stream_type_name(sh->type));
ds->eof = 1;
}
@@ -476,16 +476,15 @@ bool demux_stream_eof(struct sh_stream *sh)
// ====================================================================
-void demuxer_help(void)
+void demuxer_help(struct mp_log *log)
{
int i;
- mp_msg(MSGT_DEMUXER, MSGL_INFO, "Available demuxers:\n");
- mp_msg(MSGT_DEMUXER, MSGL_INFO, " demuxer: info:\n");
- mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_DEMUXERS\n");
+ mp_info(log, "Available demuxers:\n");
+ mp_info(log, " demuxer: info:\n");
for (i = 0; demuxer_list[i]; i++) {
- mp_msg(MSGT_DEMUXER, MSGL_INFO, "%10s %s\n",
- demuxer_list[i]->name, demuxer_list[i]->desc);
+ mp_info(log, "%10s %s\n",
+ demuxer_list[i]->name, demuxer_list[i]->desc);
}
}
@@ -500,7 +499,8 @@ static const char *d_level(enum demux_check level)
abort();
}
-static struct demuxer *open_given_type(struct MPOpts *opts,
+static struct demuxer *open_given_type(struct mpv_global *global,
+ struct mp_log *log,
const struct demuxer_desc *desc,
struct stream *stream,
struct demuxer_params *params,
@@ -516,25 +516,26 @@ static struct demuxer *open_given_type(struct MPOpts *opts,
stream->end_pos > 0,
.accurate_seek = true,
.filepos = -1,
- .opts = opts,
+ .opts = global->opts,
+ .global = global,
+ .log = mp_log_new(demuxer, log, desc->name),
.filename = talloc_strdup(demuxer, stream->url),
.metadata = talloc_zero(demuxer, struct mp_tags),
};
demuxer->params = params; // temporary during open()
stream_seek(stream, stream->start_pos);
- mp_msg(MSGT_DEMUXER, MSGL_V, "Trying demuxer: %s (force-level: %s)\n",
- desc->name, d_level(check));
+ mp_verbose(log, "Trying demuxer: %s (force-level: %s)\n",
+ desc->name, d_level(check));
int ret = demuxer->desc->open(demuxer, check);
if (ret >= 0) {
demuxer->params = NULL;
if (demuxer->filetype)
- mp_msg(MSGT_DEMUXER, MSGL_INFO, "Detected file format: %s (%s)\n",
+ mp_info(log, "Detected file format: %s (%s)\n",
demuxer->filetype, desc->desc);
else
- mp_msg(MSGT_DEMUXER, MSGL_INFO, "Detected file format: %s\n",
- desc->desc);
+ mp_info(log, "Detected file format: %s\n", desc->desc);
if (stream_manages_timeline(demuxer->stream)) {
// Incorrect, but fixes some behavior with DVD/BD
demuxer->ts_resets_possible = false;
@@ -548,8 +549,8 @@ static struct demuxer *open_given_type(struct MPOpts *opts,
demux_info_update(demuxer);
// Pretend we can seek if we can't seek, but there's a cache.
if (!demuxer->seekable && stream->uncached_stream) {
- mp_msg(MSGT_DEMUXER, MSGL_WARN,
- "File is not seekable, but there's a cache: enabling seeking.\n");
+ mp_warn(log,
+ "File is not seekable, but there's a cache: enabling seeking.\n");
demuxer->seekable = true;
}
return demuxer;
@@ -564,10 +565,13 @@ static const int d_request[] = {DEMUX_CHECK_REQUEST, -1};
static const int d_force[] = {DEMUX_CHECK_FORCE, -1};
struct demuxer *demux_open(struct stream *stream, char *force_format,
- struct demuxer_params *params, struct MPOpts *opts)
+ struct demuxer_params *params,
+ struct mpv_global *global)
{
const int *check_levels = d_normal;
const struct demuxer_desc *check_desc = NULL;
+ struct mp_log *log = mp_log_new(NULL, global->log, "!demux");
+ struct demuxer *demuxer = NULL;
if (!force_format)
force_format = stream->demuxer;
@@ -583,9 +587,8 @@ struct demuxer *demux_open(struct stream *stream, char *force_format,
check_desc = demuxer_list[n];
}
if (!check_desc) {
- mp_msg(MSGT_DEMUXER, MSGL_ERR, "Demuxer %s does not exist.\n",
- force_format);
- return NULL;
+ mp_err(log, "Demuxer %s does not exist.\n", force_format);
+ goto done;
}
}
@@ -599,15 +602,16 @@ struct demuxer *demux_open(struct stream *stream, char *force_format,
for (int n = 0; demuxer_list[n]; n++) {
const struct demuxer_desc *desc = demuxer_list[n];
if (!check_desc || desc == check_desc) {
- struct demuxer *demuxer = open_given_type(opts, desc, stream,
- params, level);
+ demuxer = open_given_type(global, log, desc, stream, params, level);
if (demuxer)
- return demuxer;
+ goto done;
}
}
}
- return NULL;
+done:
+ talloc_free(log);
+ return demuxer;
}
void demux_flush(demuxer_t *demuxer)
@@ -620,7 +624,7 @@ void demux_flush(demuxer_t *demuxer)
int demux_seek(demuxer_t *demuxer, float rel_seek_secs, int flags)
{
if (!demuxer->seekable) {
- mp_msg(MSGT_DEMUXER, MSGL_WARN, "Cannot seek in this file.\n");
+ MP_WARN(demuxer, "Cannot seek in this file.\n");
return 0;
}
@@ -716,7 +720,7 @@ int demux_info_add_bstr(demuxer_t *demuxer, struct bstr opt, struct bstr param)
if (oldval) {
if (bstrcmp0(param, oldval) == 0)
return 0;
- mp_msg(MSGT_DEMUX, MSGL_INFO, "Demuxer info %.*s changed to %.*s\n",
+ MP_INFO(demuxer, "Demuxer info %.*s changed to %.*s\n",
BSTR_P(opt), BSTR_P(param));
}
@@ -732,16 +736,16 @@ int demux_info_print(demuxer_t *demuxer)
if (!info || !info->num_keys)
return 0;
- mp_msg(MSGT_DEMUX, MSGL_INFO, "Clip info:\n");
+ MP_INFO(demuxer, "Clip info:\n");
for (n = 0; n < info->num_keys; n++) {
- mp_msg(MSGT_DEMUX, MSGL_INFO, " %s: %s\n", info->keys[n],
- info->values[n]);
- mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CLIP_INFO_NAME%d=%s\n", n,
- info->keys[n]);
- mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CLIP_INFO_VALUE%d=%s\n", n,
+ MP_INFO(demuxer, " %s: %s\n", info->keys[n],
info->values[n]);
+ MP_SMODE(demuxer, "ID_CLIP_INFO_NAME%d=%s\n", n,
+ info->keys[n]);
+ MP_SMODE(demuxer, "ID_CLIP_INFO_VALUE%d=%s\n", n,
+ info->values[n]);
}
- mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CLIP_INFO_N=%d\n", n);
+ MP_SMODE(demuxer, "ID_CLIP_INFO_N=%d\n", n);
return 0;
}
diff --git a/demux/demux.h b/demux/demux.h
index 6d5253786f..7b25032011 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -194,6 +194,8 @@ typedef struct demuxer {
void *priv; // demuxer-specific internal data
struct MPOpts *opts;
+ struct mpv_global *global;
+ struct mp_log *log;
struct demuxer_params *params;
} demuxer_t;
@@ -227,7 +229,8 @@ bool demux_stream_eof(struct sh_stream *sh);
struct sh_stream *new_sh_stream(struct demuxer *demuxer, enum stream_type type);
struct demuxer *demux_open(struct stream *stream, char *force_format,
- struct demuxer_params *params, struct MPOpts *opts);
+ struct demuxer_params *params,
+ struct mpv_global *global);
void demux_flush(struct demuxer *demuxer);
int demux_seek(struct demuxer *demuxer, float rel_seek_secs, int flags);
@@ -247,7 +250,7 @@ void demuxer_select_track(struct demuxer *demuxer, struct sh_stream *stream,
bool selected);
void demuxer_enable_autoselect(struct demuxer *demuxer);
-void demuxer_help(void);
+void demuxer_help(struct mp_log *log);
int demuxer_add_attachment(struct demuxer *demuxer, struct bstr name,
struct bstr type, struct bstr data);
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c
index 9057284c1e..ceef14f4d0 100644
--- a/demux/demux_lavf.c
+++ b/demux/demux_lavf.c
@@ -121,8 +121,7 @@ static int mp_read(void *opaque, uint8_t *buf, int size)
ret = stream_read(stream, buf, size);
- mp_msg(MSGT_HEADER, MSGL_DBG2,
- "%d=mp_read(%p, %p, %d), pos: %"PRId64", eof:%d\n",
+ MP_DBG(demuxer, "%d=mp_read(%p, %p, %d), pos: %"PRId64", eof:%d\n",
ret, stream, buf, size, stream_tell(stream), stream->eof);
return ret;
}
@@ -132,7 +131,7 @@ static int64_t mp_seek(void *opaque, int64_t pos, int whence)
struct demuxer *demuxer = opaque;
struct stream *stream = demuxer->stream;
int64_t current_pos;
- mp_msg(MSGT_HEADER, MSGL_DBG2, "mp_seek(%p, %"PRId64", %d)\n",
+ MP_DBG(demuxer, "mp_seek(%p, %"PRId64", %d)\n",
stream, pos, whence);
if (whence == SEEK_CUR)
pos += stream_tell(stream);
@@ -171,12 +170,12 @@ static int64_t mp_read_seek(void *opaque, int stream_idx, int64_t ts, int flags)
return ret;
}
-static void list_formats(void)
+static void list_formats(struct demuxer *demuxer)
{
- mp_msg(MSGT_DEMUX, MSGL_INFO, "Available lavf input formats:\n");
+ MP_INFO(demuxer, "Available lavf input formats:\n");
AVInputFormat *fmt = NULL;
while ((fmt = av_iformat_next(fmt)))
- mp_msg(MSGT_DEMUX, MSGL_INFO, "%15s : %s\n", fmt->name, fmt->long_name);
+ MP_INFO(demuxer, "%15s : %s\n", fmt->name, fmt->long_name);
}
static char *remove_prefix(char *s, const char **prefixes)
@@ -206,7 +205,7 @@ static int lavf_check_file(demuxer_t *demuxer, enum demux_check check)
priv->filename = s->url;
if (!priv->filename) {
priv->filename = "mp:unknown";
- mp_msg(MSGT_DEMUX, MSGL_WARN, "Stream url is not set!\n");
+ MP_WARN(demuxer, "Stream url is not set!\n");
}
priv->filename = remove_prefix(priv->filename, prefixes);
@@ -216,8 +215,7 @@ static int lavf_check_file(demuxer_t *demuxer, enum demux_check check)
// always require filename in the form "format:filename"
char *sep = strchr(priv->filename, ':');
if (!sep) {
- mp_msg(MSGT_DEMUX, MSGL_FATAL,
- "Must specify filename in 'format:filename' form\n");
+ MP_FATAL(demuxer, "Must specify filename in 'format:filename' form\n");
return -1;
}
avdevice_format = talloc_strndup(priv, priv->filename,
@@ -244,15 +242,15 @@ static int lavf_check_file(demuxer_t *demuxer, enum demux_check check)
format = avdevice_format;
if (format) {
if (strcmp(format, "help") == 0) {
- list_formats();
+ list_formats(demuxer);
return -1;
}
priv->avif = av_find_input_format(format);
if (!priv->avif) {
- mp_msg(MSGT_DEMUX, MSGL_FATAL, "Unknown lavf format %s\n", format);
+ MP_FATAL(demuxer, "Unknown lavf format %s\n", format);
return -1;
}
- mp_msg(MSGT_DEMUX, MSGL_INFO, "Forced lavf %s demuxer\n",
+ MP_INFO(demuxer, "Forced lavf %s demuxer\n",
priv->avif->long_name);
goto success;
}
@@ -284,7 +282,7 @@ static int lavf_check_file(demuxer_t *demuxer, enum demux_check check)
priv->avif = av_probe_input_format2(&avpd, avpd.buf_size > 0, &score);
if (priv->avif) {
- mp_msg(MSGT_HEADER, MSGL_V, "Found '%s' at score=%d size=%d.\n",
+ MP_VERBOSE(demuxer, "Found '%s' at score=%d size=%d.\n",
priv->avif->name, score, avpd.buf_size);
if (score >= min_probe)
@@ -305,7 +303,7 @@ static int lavf_check_file(demuxer_t *demuxer, enum demux_check check)
if (priv->avif && !format) {
for (int n = 0; format_blacklist[n]; n++) {
if (strcmp(format_blacklist[n], priv->avif->name) == 0) {
- mp_msg(MSGT_HEADER, MSGL_V, "Format blacklisted.\n");
+ MP_VERBOSE(demuxer, "Format blacklisted.\n");
priv->avif = NULL;
break;
}
@@ -313,8 +311,7 @@ static int lavf_check_file(demuxer_t *demuxer, enum demux_check check)
}
if (!priv->avif) {
- mp_msg(MSGT_HEADER, MSGL_V,
- "No format found, try lowering probescore or forcing the format.\n");
+ MP_VERBOSE(demuxer, "No format found, try lowering probescore or forcing the format.\n");
return -1;
}
@@ -444,7 +441,7 @@ static void handle_stream(demuxer_t *demuxer, int i)
// This also applies to vfw-muxed mkv, but we can't detect these easily.
sh_video->avi_dts = matches_avinputformat_name(priv, "avi");
- mp_msg(MSGT_DEMUX, MSGL_DBG2, "aspect= %d*%d/(%d*%d)\n",
+ MP_DBG(demuxer, "aspect= %d*%d/(%d*%d)\n",
codec->width, codec->sample_aspect_ratio.num,
codec->height, codec->sample_aspect_ratio.den);
break;
@@ -542,8 +539,7 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check)
if (lavfdopts->probesize) {
if (av_opt_set_int(avfc, "probesize", lavfdopts->probesize, 0) < 0)
- mp_msg(MSGT_HEADER, MSGL_ERR,
- "demux_lavf, couldn't set option probesize to %u\n",
+ MP_ERR(demuxer, "demux_lavf, couldn't set option probesize to %u\n",
lavfdopts->probesize);
}
@@ -554,14 +550,13 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check)
if (analyze_duration > 0) {
if (av_opt_set_int(avfc, "analyzeduration",
analyze_duration * AV_TIME_BASE, 0) < 0)
- mp_msg(MSGT_HEADER, MSGL_ERR, "demux_lavf, couldn't set option "
+ MP_ERR(demuxer, "demux_lavf, couldn't set option "
"analyzeduration to %f\n", analyze_duration);
}
if (lavfdopts->avopt) {
if (parse_avopts(avfc, lavfdopts->avopt) < 0) {
- mp_msg(MSGT_HEADER, MSGL_ERR,
- "Your options /%s/ look like gibberish to me pal\n",
+ MP_ERR(demuxer, "Your options /%s/ look like gibberish to me pal\n",
lavfdopts->avopt);
return -1;
}
@@ -601,27 +596,25 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check)
}
if (avformat_open_input(&avfc, priv->filename, priv->avif, &dopts) < 0) {
- mp_msg(MSGT_HEADER, MSGL_ERR,
- "LAVF_header: avformat_open_input() failed\n");
+ MP_ERR(demuxer, "LAVF_header: avformat_open_input() failed\n");
av_dict_free(&dopts);
return -1;
}
t = NULL;
while ((t = av_dict_get(dopts, "", t, AV_DICT_IGNORE_SUFFIX))) {
- mp_msg(MSGT_OPEN, MSGL_V, "[lavf] Could not set demux option %s=%s\n",
+ MP_VERBOSE(demuxer, "[lavf] Could not set demux option %s=%s\n",
t->key, t->value);
}
av_dict_free(&dopts);
priv->avfc = avfc;
if (avformat_find_stream_info(avfc, NULL) < 0) {
- mp_msg(MSGT_HEADER, MSGL_ERR,
- "LAVF_header: av_find_stream_info() failed\n");
+ MP_ERR(demuxer, "LAVF_header: av_find_stream_info() failed\n");
return -1;
}
- mp_msg(MSGT_HEADER, MSGL_V, "demux_lavf: avformat_find_stream_info() "
+ MP_VERBOSE(demuxer, "demux_lavf: avformat_find_stream_info() "
"finished after %"PRId64" bytes.\n", stream_tell(demuxer->stream));
for (i = 0; i < avfc->nb_chapters; i++) {
@@ -658,13 +651,13 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check)
for (p = 0; p < avfc->nb_programs; p++) {
AVProgram *program = avfc->programs[p];
t = av_dict_get(program->metadata, "title", NULL, 0);
- mp_msg(MSGT_HEADER, MSGL_INFO, "LAVF: Program %d %s\n",
+ MP_INFO(demuxer, "LAVF: Program %d %s\n",
program->id, t ? t->value : "");
- mp_msg(MSGT_IDENTIFY, MSGL_V, "PROGRAM_ID=%d\n", program->id);
+ MP_VERBOSE(demuxer, "PROGRAM_ID=%d\n", program->id);
}
}
- mp_msg(MSGT_HEADER, MSGL_V, "LAVF: build %d\n", LIBAVFORMAT_BUILD);
+ MP_VERBOSE(demuxer, "LAVF: build %d\n", LIBAVFORMAT_BUILD);
demuxer->ts_resets_possible = priv->avif->flags & AVFMT_TS_DISCONT;
@@ -680,7 +673,7 @@ static int demux_lavf_fill_buffer(demuxer_t *demux)
{
lavf_priv_t *priv = demux->priv;
demux_packet_t *dp;
- mp_msg(MSGT_DEMUX, MSGL_DBG2, "demux_lavf_fill_buffer()\n");
+ MP_DBG(demux, "demux_lavf_fill_buffer()\n");
AVPacket *pkt = talloc(NULL, AVPacket);
if (av_read_frame(priv->avfc, pkt) < 0) {
@@ -737,7 +730,7 @@ static void demux_seek_lavf(demuxer_t *demuxer, float rel_seek_secs, int flags)
{
lavf_priv_t *priv = demuxer->priv;
int avsflags = 0;
- mp_msg(MSGT_DEMUX, MSGL_DBG2, "demux_seek_lavf(%p, %f, %d)\n",
+ MP_DBG(demuxer, "demux_seek_lavf(%p, %f, %d)\n",
demuxer, rel_seek_secs, flags);
if (flags & SEEK_ABSOLUTE)
diff --git a/demux/demux_libass.c b/demux/demux_libass.c
index f01b999d9e..15f5195cfc 100644
--- a/demux/demux_libass.c
+++ b/demux/demux_libass.c
@@ -73,7 +73,7 @@ static int d_check_file(struct demuxer *demuxer, enum demux_check check)
bstr buf = stream_read_complete(s, NULL, 100000000);
if (!buf.start) {
- mp_msg(MSGT_ASS, MSGL_ERR, "Refusing to load subtitle file "
+ MP_ERR(demuxer, "Refusing to load subtitle file "
"larger than 100 MB: %s\n", demuxer->filename);
return -1;
}
diff --git a/demux/demux_mf.c b/demux/demux_mf.c
index 876b17a025..1d80cfaa85 100644
--- a/demux/demux_mf.c
+++ b/demux/demux_mf.c
@@ -158,11 +158,9 @@ static const char *probe_format(mf_t *mf, enum demux_check check)
}
if (check == DEMUX_CHECK_REQUEST) {
if (!mf_type) {
- mp_msg(MSGT_DEMUX, MSGL_ERR,
- "[demux_mf] file type was not set! (try --mf-type=ext)\n");
+ MP_ERR(mf, "file type was not set! (try --mf-type=ext)\n");
} else {
- mp_msg(MSGT_DEMUX, MSGL_ERR,
- "[demux_mf] --mf-type set to an unknown codec!\n");
+ MP_ERR(mf, "--mf-type set to an unknown codec!\n");
}
}
return NULL;
@@ -175,9 +173,9 @@ static int demux_open_mf(demuxer_t *demuxer, enum demux_check check)
if (strncmp(demuxer->stream->url, "mf://", 5) == 0 &&
demuxer->stream->type == STREAMTYPE_MF)
- mf = open_mf_pattern(demuxer, demuxer->stream->url + 5);
+ mf = open_mf_pattern(demuxer, demuxer->log, demuxer->stream->url + 5);
else {
- mf = open_mf_single(demuxer, demuxer->stream->url);
+ mf = open_mf_single(demuxer, demuxer->log, demuxer->stream->url);
int bog = 0;
MP_TARRAY_APPEND(mf, mf->streams, bog, demuxer->stream);
}
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 52ab592eb0..8c3189b539 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -249,7 +249,8 @@ static int aac_get_sample_rate_index(uint32_t sample_rate)
return i;
}
-static bstr demux_mkv_decode(mkv_track_t *track, bstr data, uint32_t type)
+static bstr demux_mkv_decode(struct mp_log *log, mkv_track_t *track,
+ bstr data, uint32_t type)
{
uint8_t *src = data.start;
uint8_t *orig_src = src;
@@ -278,8 +279,7 @@ static bstr demux_mkv_decode(mkv_track_t *track, bstr data, uint32_t type)
zstream.zfree = (free_func) 0;
zstream.opaque = (voidpf) 0;
if (inflateInit(&zstream) != Z_OK) {
- mp_msg(MSGT_DEMUX, MSGL_WARN,
- "[mkv] zlib initialization failed.\n");
+ mp_warn(log, "zlib initialization failed.\n");
goto error;
}
zstream.next_in = (Bytef *) src;
@@ -294,8 +294,7 @@ static bstr demux_mkv_decode(mkv_track_t *track, bstr data, uint32_t type)
zstream.next_out = (Bytef *) (dest + zstream.total_out);
result = inflate(&zstream, Z_NO_FLUSH);
if (result != Z_OK && result != Z_STREAM_END) {
- mp_msg(MSGT_DEMUX, MSGL_WARN,
- "[mkv] zlib decompression failed.\n");
+ mp_warn(log, "zlib decompression failed.\n");
talloc_free(dest);
dest = NULL;
inflateEnd(&zstream);
@@ -323,14 +322,12 @@ static bstr demux_mkv_decode(mkv_track_t *track, bstr data, uint32_t type)
if (result == 0)
break;
if (!(result & AV_LZO_OUTPUT_FULL)) {
- mp_msg(MSGT_DEMUX, MSGL_WARN,
- "[mkv] lzo decompression failed.\n");
+ mp_warn(log, "lzo decompression failed.\n");
talloc_free(dest);
dest = NULL;
goto error;
}
- mp_msg(MSGT_DEMUX, MSGL_DBG2,
- "[mkv] lzo decompression buffer too small.\n");
+ mp_dbg(log, "lzo decompression buffer too small.\n");
dstlen *= 2;
}
size = dstlen - out_avail;
@@ -359,17 +356,16 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
mkv_d->duration = 0;
struct ebml_info info = {0};
- struct ebml_parse_ctx parse_ctx = {0};
+ struct ebml_parse_ctx parse_ctx = {demuxer->log};
if (ebml_read_element(s, &parse_ctx, &info, &ebml_info_desc) < 0)
return -1;
if (info.n_timecode_scale) {
mkv_d->tc_scale = info.timecode_scale;
- mp_msg(MSGT_DEMUX, MSGL_V,
- "[mkv] | + timecode scale: %" PRIu64 "\n", mkv_d->tc_scale);
+ MP_VERBOSE(demuxer, "| + timecode scale: %" PRIu64 "\n", mkv_d->tc_scale);
}
if (info.n_duration) {
mkv_d->duration = info.duration * mkv_d->tc_scale / 1e9;
- mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] | + duration: %.3fs\n",
+ MP_VERBOSE(demuxer, "| + duration: %.3fs\n",
mkv_d->duration);
}
if (info.n_title) {
@@ -378,16 +374,15 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
if (info.n_segment_uid) {
int len = info.segment_uid.len;
if (len != sizeof(demuxer->matroska_data.uid.segment)) {
- mp_msg(MSGT_DEMUX, MSGL_INFO,
- "[mkv] segment uid invalid length %d\n", len);
+ MP_INFO(demuxer, "segment uid invalid length %d\n", len);
} else {
memcpy(demuxer->matroska_data.uid.segment, info.segment_uid.start,
len);
- mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] | + segment uid");
+ MP_VERBOSE(demuxer, "| + segment uid");
for (int i = 0; i < len; i++)
- mp_msg(MSGT_DEMUX, MSGL_V, " %02x",
+ MP_VERBOSE(demuxer, " %02x",
demuxer->matroska_data.uid.segment[i]);
- mp_msg(MSGT_DEMUX, MSGL_V, "\n");
+ MP_VERBOSE(demuxer, "\n");
}
}
if (demuxer->params && demuxer->params->matroska_wanted_uids) {
@@ -400,8 +395,7 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
}
}
}
- mp_msg(MSGT_DEMUX, MSGL_INFO,
- "[mkv] This is not one of the wanted files. "
+ MP_INFO(demuxer, "This is not one of the wanted files. "
"Stopping attempt to open.\n");
res = -2;
}
@@ -439,29 +433,26 @@ static void parse_trackencodings(struct demuxer *demuxer,
}
if (e.type == 1) {
- mp_msg(MSGT_DEMUX, MSGL_WARN, "[mkv] Track "
+ MP_WARN(demuxer, "Track "
"number %u has been encrypted and "
"decryption has not yet been\n"
- "[mkv] implemented. Skipping track.\n",
+ "implemented. Skipping track.\n",
track->tnum);
} else if (e.type != 0) {
- mp_msg(MSGT_DEMUX, MSGL_WARN,
- "[mkv] Unknown content encoding type for "
+ MP_WARN(demuxer, "Unknown content encoding type for "
"track %u. Skipping track.\n",
track->tnum);
} else if (e.comp_algo != 0 && e.comp_algo != 2 && e.comp_algo != 3) {
- mp_msg(MSGT_DEMUX, MSGL_WARN,
- "[mkv] Track %u has been compressed with "
+ MP_WARN(demuxer, "Track %u has been compressed with "
"an unknown/unsupported compression\n"
- "[mkv] algorithm (%" PRIu64 "). Skipping track.\n",
+ "algorithm (%" PRIu64 "). Skipping track.\n",
track->tnum, e.comp_algo);
}
#if !HAVE_ZLIB
else if (e.comp_algo == 0) {
- mp_msg(MSGT_DEMUX, MSGL_WARN,
- "[mkv] Track %u was compressed with zlib "
+ MP_WARN(demuxer, "Track %u was compressed with zlib "
"but mpv has not been compiled\n"
- "[mkv] with support for zlib compression. "
+ "with support for zlib compression. "
"Skipping track.\n",
track->tnum);
}
@@ -485,26 +476,24 @@ static void parse_trackaudio(struct demuxer *demuxer, struct mkv_track *track,
{
if (audio->n_sampling_frequency) {
track->a_sfreq = audio->sampling_frequency;
- mp_msg(MSGT_DEMUX, MSGL_V,
- "[mkv] | + Sampling frequency: %f\n", track->a_sfreq);
+ MP_VERBOSE(demuxer, "| + Sam