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_TYPE Alpha
#define VER_LAMEXP_PATCH 2
#define VER_LAMEXP_BUILD 2194
#define VER_LAMEXP_BUILD 2196
#define VER_LAMEXP_CONFG 2188
///////////////////////////////////////////////////////////////////////////////

View File

@ -32,6 +32,14 @@
#include <QDir>
#include <QProcess>
#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)
:
@ -90,7 +98,8 @@ bool AACDecoder::isFormatSupported(const QString &containerType, const QString &
{
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())
{

View File

@ -23,6 +23,7 @@
#pragma once
#include "Decoder_Abstract.h"
#include <MUtils/Lazy.h>
class AACDecoder : public AbstractDecoder
{
@ -36,4 +37,6 @@ public:
private:
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_version);
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, channel_s_);
ADD_PROPTERY_MAPPING_1(aud, samplingrate);