aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/mpeg
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-06-24 16:55:59 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-06-24 16:55:59 +0000
commit0d919a16efda7db3a76765dbcdcb7574b6b3bb33 (patch)
treea6683343f5b9b6b53e1024b6f022cddeaf8fb223 /src/plugins/Input/mpeg
parent1ee602e514927b7a7db427c4fcbedfded19c44e0 (diff)
downloadqmmp-0d919a16efda7db3a76765dbcdcb7574b6b3bb33.tar.gz
qmmp-0d919a16efda7db3a76765dbcdcb7574b6b3bb33.tar.bz2
qmmp-0d919a16efda7db3a76765dbcdcb7574b6b3bb33.zip
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
Diffstat (limited to 'src/plugins/Input/mpeg')
-rw-r--r--src/plugins/Input/mpeg/decoder_mad.cpp8
-rw-r--r--src/plugins/Input/mpeg/decoder_mpg123.cpp12
2 files changed, 20 insertions, 0 deletions
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;