From 8fe3a3aaa93ddbd61f949c8fa9d9385f8404b3a8 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 23 Sep 2013 18:56:11 +0000 Subject: added replaygain test code git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3719 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/rgscan/rgscaner.cpp | 21 +++++++++++++++++++++ src/plugins/Input/flac/replaygainreader.cpp | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/General/rgscan/rgscaner.cpp b/src/plugins/General/rgscan/rgscaner.cpp index f2749c403..f2e5ba8b1 100644 --- a/src/plugins/General/rgscan/rgscaner.cpp +++ b/src/plugins/General/rgscan/rgscaner.cpp @@ -30,6 +30,7 @@ #include #include #include +#include "gain_analysis.h" #include "rgscaner.h" #define QStringToTString_qt4(s) TagLib::String(s.toUtf8().constData(), TagLib::String::UTF8) @@ -138,6 +139,14 @@ void RGScaner::run() qint64 total = 0; quint64 len = 0; qint64 totalSize = m_decoder->totalTime() * ap.sampleRate() * ap.channels() * ap.sampleSize() / 1000; + double out_left[8192/4]; + double out_right[8192/4]; + + + GainHandle_t *handle = 0; + + InitGainAnalysis(&handle, 44100); + forever { @@ -148,11 +157,23 @@ void RGScaner::run() output_at += len; total += len; emit progress(100 * total / totalSize); + + + for(int i = 0; i < len/4; ++i) + { + out_left[i] = ((short *) output_buf)[i*2]; + out_right[i] = ((short *) output_buf)[i*2+1]; + } + AnalyzeSamples(handle, out_left, out_right, len/4, 2); + output_at = 0; } else if (len <= 0) break; } + + qDebug("gain=%f",GetTitleGain(handle)); + qDebug("RGScaner: thread %ld finished", QThread::currentThreadId()); emit progress(100); emit finished(); diff --git a/src/plugins/Input/flac/replaygainreader.cpp b/src/plugins/Input/flac/replaygainreader.cpp index 1b0349e20..20adba1d5 100644 --- a/src/plugins/Input/flac/replaygainreader.cpp +++ b/src/plugins/Input/flac/replaygainreader.cpp @@ -49,7 +49,7 @@ QMap ReplayGainReader::replayGainInfo() const void ReplayGainReader::readVorbisComment(TagLib::Ogg::XiphComment *comment) { TagLib::Ogg::FieldListMap items = comment->fieldListMap(); - if (items.contains("REPLAYGAIN_TRACK_GAIN")) + if (items.contains("REPLAYGAIN_TRACK_GAIN")) setValue(Qmmp::REPLAYGAIN_TRACK_GAIN,TStringToQString(items["REPLAYGAIN_TRACK_GAIN"].front())); if (items.contains("REPLAYGAIN_TRACK_PEAK")) setValue(Qmmp::REPLAYGAIN_TRACK_PEAK,TStringToQString(items["REPLAYGAIN_TRACK_PEAK"].front())); -- cgit v1.2.3-13-gbd6f