From 0d919a16efda7db3a76765dbcdcb7574b6b3bb33 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 24 Jun 2020 16:55:59 +0000 Subject: show codec and bitrate for IceCast streams (#1046) git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9419 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/mpeg/decoder_mad.cpp | 8 ++++++++ src/plugins/Input/mpeg/decoder_mpg123.cpp | 12 ++++++++++++ 2 files changed, 20 insertions(+) (limited to 'src/plugins/Input/mpeg') diff --git a/src/plugins/Input/mpeg/decoder_mad.cpp b/src/plugins/Input/mpeg/decoder_mad.cpp index 4e984db58..f6645119d 100644 --- a/src/plugins/Input/mpeg/decoder_mad.cpp +++ b/src/plugins/Input/mpeg/decoder_mad.cpp @@ -356,6 +356,14 @@ bool DecoderMAD::findHeader() m_freq = header.samplerate; m_channels = MAD_NCHANNELS(&header); m_bitrate = header.bitrate / 1000; + + if((header.flags & MAD_FLAG_LSF_EXT) && (header.flags & MAD_FLAG_MPEG_2_5_EXT)) + setProperty(Qmmp::FORMAT_NAME, QString("MPEG-2.5 layer %1").arg(header.layer)); + else if(header.flags & MAD_FLAG_LSF_EXT) + setProperty(Qmmp::FORMAT_NAME, QString("MPEG-2 layer %1").arg(header.layer)); + else + setProperty(Qmmp::FORMAT_NAME, QString("MPEG-1 layer %1").arg(header.layer)); + mad_header_finish(&header); input()->seek(0); m_input_bytes = 0; diff --git a/src/plugins/Input/mpeg/decoder_mpg123.cpp b/src/plugins/Input/mpeg/decoder_mpg123.cpp index a9a6ca62e..e359f455d 100644 --- a/src/plugins/Input/mpeg/decoder_mpg123.cpp +++ b/src/plugins/Input/mpeg/decoder_mpg123.cpp @@ -143,7 +143,19 @@ bool DecoderMPG123::initialize() m_totalTime = (qint64) mpg123_length(m_handle) * 1000 / m_rate; } else + { + if((err = mpg123_info(m_handle, &m_frame_info)) != MPG123_OK) + qWarning("DecoderMPG123: mpg123 error: %s", mpg123_plain_strerror(err)); + + if(m_frame_info.version == MPG123_1_0) + setProperty(Qmmp::FORMAT_NAME, QString("MPEG-1 layer %1").arg(m_frame_info.layer)); + else if(m_frame_info.version == MPG123_2_0) + setProperty(Qmmp::FORMAT_NAME, QString("MPEG-2 layer %1").arg(m_frame_info.layer)); + else if(m_frame_info.version == MPG123_2_5) + setProperty(Qmmp::FORMAT_NAME, QString("MPEG-2.5 layer %1").arg(m_frame_info.layer)); + m_totalTime = 0; + } configure(m_rate, channels, Qmmp::PCM_FLOAT); return true; -- cgit v1.2.3-13-gbd6f