diff --git a/src/AudioFormat.cxx b/src/AudioFormat.cxx index c4c654357..4a7c16874 100644 --- a/src/AudioFormat.cxx +++ b/src/AudioFormat.cxx @@ -53,12 +53,23 @@ ToString(const AudioFormat af) noexcept sample rate */ p += sprintf(p, "dsd%u:", af.sample_rate * 8 / 44100); } else { - p += sprintf(p, "%u:%s:", - af.sample_rate, - sample_format_to_string(af.format)); + const char *sample_format = af.format != SampleFormat::UNDEFINED + ? sample_format_to_string(af.format) + : "*"; + + if (af.sample_rate > 0) + p += sprintf(p, "%u:%s:", af.sample_rate, + sample_format); + else + p += sprintf(p, "*:%s:", sample_format); } - p += sprintf(p, "%u", af.channels); + if (af.channels > 0) + p += sprintf(p, "%u", af.channels); + else { + *p++ = '*'; + *p = 0; + } return buffer; }