From 3b1956608dd5536b9ee226b996d2d69b35bc065b Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 8 Apr 2013 01:58:33 +0200 Subject: audio: print channel map additionally to channel count on terminal --- audio/audio.c | 15 +++++++++++++++ audio/audio.h | 3 +++ audio/decode/dec_audio.c | 9 +++++---- audio/filter/af.c | 23 ++++++++--------------- 4 files changed, 31 insertions(+), 19 deletions(-) (limited to 'audio') diff --git a/audio/audio.c b/audio/audio.c index 549553184d..248f16790f 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -17,6 +17,7 @@ #include +#include "core/mp_talloc.h" #include "audio.h" void mp_audio_set_format(struct mp_audio *mpa, int format) @@ -54,3 +55,17 @@ void mp_audio_copy_config(struct mp_audio *dst, const struct mp_audio *src) mp_audio_set_channels(dst, &src->channels); dst->rate = src->rate; } + +char *mp_audio_fmt_to_str(int srate, const struct mp_chmap *chmap, int format) +{ + char *chstr = mp_chmap_to_str(chmap); + char *res = talloc_asprintf(NULL, "%dHz %s %dch %s", srate, chstr, + chmap->num, af_fmt2str_short(format)); + talloc_free(chstr); + return res; +} + +char *mp_audio_config_to_str(struct mp_audio *mpa) +{ + return mp_audio_fmt_to_str(mpa->rate, &mpa->channels, mpa->format); +} diff --git a/audio/audio.h b/audio/audio.h index 902b5a1b40..6e0a1cb4b1 100644 --- a/audio/audio.h +++ b/audio/audio.h @@ -39,4 +39,7 @@ void mp_audio_set_channels_old(struct mp_audio *mpa, int num_channels); void mp_audio_set_channels(struct mp_audio *mpa, const struct mp_chmap *chmap); void mp_audio_copy_config(struct mp_audio *dst, const struct mp_audio *src); +char *mp_audio_fmt_to_str(int srate, const struct mp_chmap *chmap, int format); +char *mp_audio_config_to_str(struct mp_audio *mpa); + #endif diff --git a/audio/decode/dec_audio.c b/audio/decode/dec_audio.c index 999a96a10b..dc461b81e3 100644 --- a/audio/decode/dec_audio.c +++ b/audio/decode/dec_audio.c @@ -218,11 +218,12 @@ int init_audio_filters(sh_audio_t *sh_audio, int in_samplerate, // filter config: memcpy(&afs->cfg, &af_cfg, sizeof(struct af_cfg)); + char *s_from = mp_audio_config_to_str(&afs->input); + char *s_to = mp_audio_config_to_str(&afs->output); mp_tmsg(MSGT_DECAUDIO, MSGL_V, - "Building audio filter chain for %dHz/%dch/%s -> %dHz/%dch/%s...\n", - afs->input.rate, afs->input.nch, - af_fmt2str_short(afs->input.format), afs->output.rate, - afs->output.nch, af_fmt2str_short(afs->output.format)); + "Building audio filter chain for %s -> %s...\n", s_from, s_to); + talloc_free(s_from); + talloc_free(s_to); // let's autoprobe it! if (0 != af_init(afs)) { diff --git a/audio/filter/af.c b/audio/filter/af.c index b5cce39dd0..7dacafcc08 100644 --- a/audio/filter/af.c +++ b/audio/filter/af.c @@ -301,18 +301,6 @@ repeat: } } -static void print_fmt(struct mp_audio *d, int msg_level) -{ - if (d) { - char *chstr = mp_chmap_to_str(&d->channels); - mp_msg(MSGT_AFILTER, msg_level, "%dHz/%s(%dch)/%s", d->rate, - chstr ? chstr : "?", d->nch, - af_fmt2str_short(d->format)); - talloc_free(chstr); - } else - mp_msg(MSGT_AFILTER, msg_level, "(?)"); -} - static void af_print_filter_chain(struct af_stream *s, struct af_instance *at, int msg_level) { @@ -321,7 +309,11 @@ static void af_print_filter_chain(struct af_stream *s, struct af_instance *at, struct af_instance *af = s->first; while (af) { mp_msg(MSGT_AFILTER, msg_level, " [%s] ", af->info->name); - print_fmt(af->data, msg_level); + if (af->data) { + char *info = mp_audio_config_to_str(af->data); + mp_msg(MSGT_AFILTER, msg_level, "%s", info); + talloc_free(info); + } if (af == at) mp_msg(MSGT_AFILTER, msg_level, " <-"); mp_msg(MSGT_AFILTER, msg_level, "\n"); @@ -330,8 +322,9 @@ static void af_print_filter_chain(struct af_stream *s, struct af_instance *at, } mp_msg(MSGT_AFILTER, msg_level, " [ao] "); - print_fmt(&s->output, msg_level); - mp_msg(MSGT_AFILTER, msg_level, "\n"); + char *info = mp_audio_config_to_str(&s->output); + mp_msg(MSGT_AFILTER, msg_level, "%s\n", info); + talloc_free(info); } static const char *af_find_conversion_filter(int srcfmt, int dstfmt) -- cgit v1.2.3