#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
///////////////////////////////////////////////////////////////////////////////
#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)
:
{
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())
{
#pragma once
#include "Decoder_Abstract.h"
+#include <MUtils/Lazy.h>
class AACDecoder : public AbstractDecoder
{
private:
const QString m_binary;
+ static MUtils::Lazy<QRegExp> m_regxFeatures;
+ static QMutex m_regexMutex;
};
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);