From 3dbc9007b080028f0aebbbf8b9ab1233cd70c45b Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 21 Dec 2013 20:24:20 +0100 Subject: 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. --- demux/demux.c | 96 +++++++++++++++++++++++++++++++---------------------------- 1 file changed, 50 insertions(+), 46 deletions(-) (limited to 'demux/demux.c') 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; } -- cgit v1.2.3