Fixed detection of AAC streams with latest MediaInfo version. AAC profile is now stored in "Format_AdditionalFeatures" tag.

This commit is contained in:
LoRd_MuldeR 2018-12-07 14:11:55 +01:00
parent 1fe7d18745
commit 4e984329f0
4 changed files with 15 additions and 2 deletions

View File

@ -35,7 +35,7 @@
#define VER_LAMEXP_MINOR_LO 8 #define VER_LAMEXP_MINOR_LO 8
#define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 2 #define VER_LAMEXP_PATCH 2
#define VER_LAMEXP_BUILD 2194 #define VER_LAMEXP_BUILD 2196
#define VER_LAMEXP_CONFG 2188 #define VER_LAMEXP_CONFG 2188
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////

View File

@ -32,6 +32,14 @@
#include <QDir> #include <QDir>
#include <QProcess> #include <QProcess>
#include <QRegExp> #include <QRegExp>
#include <QMutexLocker>
//Static
QMutex AACDecoder::m_regexMutex;
MUtils::Lazy<QRegExp> AACDecoder::m_regxFeatures([]
{
return new QRegExp(L1S("\\bLC\\b"), Qt::CaseInsensitive);
});
AACDecoder::AACDecoder(void) AACDecoder::AACDecoder(void)
: :
@ -90,7 +98,8 @@ bool AACDecoder::isFormatSupported(const QString &containerType, const QString &
{ {
if(formatType.compare(QLatin1String("AAC"), Qt::CaseInsensitive) == 0) if(formatType.compare(QLatin1String("AAC"), Qt::CaseInsensitive) == 0)
{ {
if((formatProfile.compare(QLatin1String("LC"), Qt::CaseInsensitive) == 0) || (formatProfile.compare(QLatin1String("HE-AAC"), Qt::CaseInsensitive) == 0) || (formatProfile.compare(QLatin1String("HE-AACv2"), Qt::CaseInsensitive) == 0)) QMutexLocker lock(&m_regexMutex);
if ((*m_regxFeatures).indexIn(formatProfile) >= 0)
{ {
if((formatVersion.compare(QLatin1String("2"), Qt::CaseInsensitive) == 0) || (formatVersion.compare(QLatin1String("4"), Qt::CaseInsensitive) == 0) || formatVersion.isEmpty()) if((formatVersion.compare(QLatin1String("2"), Qt::CaseInsensitive) == 0) || (formatVersion.compare(QLatin1String("4"), Qt::CaseInsensitive) == 0) || formatVersion.isEmpty())
{ {

View File

@ -23,6 +23,7 @@
#pragma once #pragma once
#include "Decoder_Abstract.h" #include "Decoder_Abstract.h"
#include <MUtils/Lazy.h>
class AACDecoder : public AbstractDecoder class AACDecoder : public AbstractDecoder
{ {
@ -36,4 +37,6 @@ public:
private: private:
const QString m_binary; const QString m_binary;
static MUtils::Lazy<QRegExp> m_regxFeatures;
static QMutex m_regexMutex;
}; };

View File

@ -104,6 +104,7 @@ static MUtils::Lazy<const QMap<QPair<AnalyzeTask::MI_trackType_t, QString>, Anal
ADD_PROPTERY_MAPPING_1(aud, format); ADD_PROPTERY_MAPPING_1(aud, format);
ADD_PROPTERY_MAPPING_1(aud, format_version); ADD_PROPTERY_MAPPING_1(aud, format_version);
ADD_PROPTERY_MAPPING_1(aud, format_profile); ADD_PROPTERY_MAPPING_1(aud, format_profile);
ADD_PROPTERY_MAPPING_2(aud, format_additionalfeatures, format_profile);
ADD_PROPTERY_MAPPING_1(aud, duration); ADD_PROPTERY_MAPPING_1(aud, duration);
ADD_PROPTERY_MAPPING_1(aud, channel_s_); ADD_PROPTERY_MAPPING_1(aud, channel_s_);
ADD_PROPTERY_MAPPING_1(aud, samplingrate); ADD_PROPTERY_MAPPING_1(aud, samplingrate);