///////////////////////////////////////////////////////////////////////////////
// LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2013 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2014 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
+// (at your option) any later version, but always including the *additional*
+// restrictions defined in the "License.txt" file.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#include "Encoder_MP3.h"
#include "Encoder_Vorbis.h"
#include "Encoder_Opus.h"
+#include "Encoder_MAC.h"
#include "Encoder_Wave.h"
#define IS_VBR(RC_MODE) ((RC_MODE) == SettingsModel::VBRMode)
}
break;
default:
- THROW("makeEncoder(): Unknown AAC encoder specified!");
+ MUTILS_THROW("makeEncoder(): Unknown AAC encoder specified!");
break;
}
}
encoder = dcaEncoder;
}
break;
+ /*-------- MACEncoder --------*/
+ case SettingsModel::MACEncoder:
+ {
+ MACEncoder *macEncoder = new MACEncoder();
+ encoder = macEncoder;
+ }
+ break;
/*-------- PCMEncoder --------*/
case SettingsModel::PCMEncoder:
{
break;
/*-------- default --------*/
default:
- THROW("Unsupported encoder!");
+ MUTILS_THROW("Unsupported encoder!");
}
//Sanity checking
if(!encoder)
{
- THROW("No encoder instance has been assigend!");
+ MUTILS_THROW("No encoder instance has been assigend!");
}
//Apply common settings
case SettingsModel::FLACEncoder: info = FLACEncoder::getEncoderInfo(); break;
case SettingsModel::OpusEncoder: info = OpusEncoder::getEncoderInfo(); break;
case SettingsModel::DCAEncoder: info = DCAEncoder::getEncoderInfo(); break;
+ case SettingsModel::MACEncoder: info = MACEncoder::getEncoderInfo(); break;
case SettingsModel::PCMEncoder: info = WaveEncoder::getEncoderInfo(); break;
case SettingsModel::AACEncoder:
switch(getAacEncoder())
case SettingsModel::AAC_ENCODER_QAAC: info = QAACEncoder::getEncoderInfo(); break;
case SettingsModel::AAC_ENCODER_FHG: info = FHGAACEncoder::getEncoderInfo(); break;
case SettingsModel::AAC_ENCODER_NERO: info = AACEncoder::getEncoderInfo(); break;
- default: THROW("Unknown AAC encoder specified!");
+ default: MUTILS_THROW("Unknown AAC encoder specified!");
}
break;
- default: THROW("Unsupported encoder!");
+ default: MUTILS_THROW("Unsupported encoder!");
}
//Sanity checking
if(!info)
{
- THROW("No encoder instance has been assigend!");
+ MUTILS_THROW("No encoder instance has been assigend!");
}
return info;
//Sanity checking
if((rcMode < SettingsModel::VBRMode) || (rcMode > SettingsModel::CBRMode))
{
- THROW("Unknown rate-control mode!");
+ MUTILS_THROW("Unknown rate-control mode!");
}
//Store the encoder bitrate/quality value
case SettingsModel::FLACEncoder: STORE_MODE(FLAC, rcMode); break;
case SettingsModel::OpusEncoder: STORE_MODE(OpusEnc, rcMode); break;
case SettingsModel::DCAEncoder: STORE_MODE(DcaEnc, rcMode); break;
+ case SettingsModel::MACEncoder: STORE_MODE(MacEnc, rcMode); break;
case SettingsModel::PCMEncoder: STORE_MODE(Wave, rcMode); break;
- default: THROW("Unsupported encoder!");
+ default: MUTILS_THROW("Unsupported encoder!");
}
}
case SettingsModel::FLACEncoder: LOAD_MODE(rcMode, FLAC); break;
case SettingsModel::OpusEncoder: LOAD_MODE(rcMode, OpusEnc); break;
case SettingsModel::DCAEncoder: LOAD_MODE(rcMode, DcaEnc); break;
+ case SettingsModel::MACEncoder: LOAD_MODE(rcMode, MacEnc); break;
case SettingsModel::PCMEncoder: LOAD_MODE(rcMode, Wave); break;
- default: THROW("Unsupported encoder!");
+ default: MUTILS_THROW("Unsupported encoder!");
}
return rcMode;
//Sanity checking
if((rcMode < SettingsModel::VBRMode) || (rcMode > SettingsModel::CBRMode))
{
- THROW("Unknown rate-control mode!");
+ MUTILS_THROW("Unknown rate-control mode!");
}
//Store the encoder bitrate/quality value
case SettingsModel::FLACEncoder: STORE_VALUE(FLAC, rcMode, value); break;
case SettingsModel::OpusEncoder: STORE_VALUE(OpusEnc, rcMode, value); break;
case SettingsModel::DCAEncoder: STORE_VALUE(DcaEnc, rcMode, value); break;
+ case SettingsModel::MACEncoder: STORE_VALUE(MacEnc, rcMode, value); break;
case SettingsModel::PCMEncoder: STORE_VALUE(Wave, rcMode, value); break;
- default: THROW("Unsupported encoder!");
+ default: MUTILS_THROW("Unsupported encoder!");
}
}
//Sanity checking
if((rcMode < SettingsModel::VBRMode) || (rcMode > SettingsModel::CBRMode))
{
- THROW("Unknown rate-control mode!");
+ MUTILS_THROW("Unknown rate-control mode!");
}
//Load the encoder bitrate/quality value
case SettingsModel::FLACEncoder: LOAD_VALUE(value, FLAC, rcMode); break;
case SettingsModel::OpusEncoder: LOAD_VALUE(value, OpusEnc, rcMode); break;
case SettingsModel::DCAEncoder: LOAD_VALUE(value, DcaEnc, rcMode); break;
+ case SettingsModel::MACEncoder: LOAD_VALUE(value, MacEnc, rcMode); break;
case SettingsModel::PCMEncoder: LOAD_VALUE(value, Wave, rcMode); break;
- default: THROW("Unsupported encoder!");
+ default: MUTILS_THROW("Unsupported encoder!");
}
return value;
case SettingsModel::FLACEncoder: STORE_PARAMS(FLAC, params.trimmed()); break;
case SettingsModel::OpusEncoder: STORE_PARAMS(OpusEnc, params.trimmed()); break;
case SettingsModel::DCAEncoder: STORE_PARAMS(DcaEnc, params.trimmed()); break;
+ case SettingsModel::MACEncoder: STORE_PARAMS(MacEnc, params.trimmed()); break;
case SettingsModel::PCMEncoder: STORE_PARAMS(Wave, params.trimmed()); break;
- default: THROW("Unsupported encoder!");
+ default: MUTILS_THROW("Unsupported encoder!");
}
}
case SettingsModel::FLACEncoder: LOAD_PARAMS(params, FLAC); break;
case SettingsModel::OpusEncoder: LOAD_PARAMS(params, OpusEnc); break;
case SettingsModel::DCAEncoder: LOAD_PARAMS(params, DcaEnc); break;
+ case SettingsModel::MACEncoder: LOAD_PARAMS(params, MacEnc); break;
case SettingsModel::PCMEncoder: LOAD_PARAMS(params, Wave); break;
- default: THROW("Unsupported encoder!");
+ default: MUTILS_THROW("Unsupported encoder!");
}
return params;
RESET_SETTING(settings, compressionAbrBitrateDcaEnc);
RESET_SETTING(settings, compressionAbrBitrateFLAC);
RESET_SETTING(settings, compressionAbrBitrateLAME);
+ RESET_SETTING(settings, compressionAbrBitrateMacEnc);
RESET_SETTING(settings, compressionAbrBitrateOggEnc);
RESET_SETTING(settings, compressionAbrBitrateOpusEnc);
RESET_SETTING(settings, compressionAbrBitrateWave);
RESET_SETTING(settings, compressionCbrBitrateDcaEnc);
RESET_SETTING(settings, compressionCbrBitrateFLAC);
RESET_SETTING(settings, compressionCbrBitrateLAME);
+ RESET_SETTING(settings, compressionCbrBitrateMacEnc);
RESET_SETTING(settings, compressionCbrBitrateOggEnc);
RESET_SETTING(settings, compressionCbrBitrateOpusEnc);
RESET_SETTING(settings, compressionCbrBitrateWave);
RESET_SETTING(settings, compressionRCModeDcaEnc);
RESET_SETTING(settings, compressionRCModeFLAC);
RESET_SETTING(settings, compressionRCModeLAME);
+ RESET_SETTING(settings, compressionRCModeMacEnc);
RESET_SETTING(settings, compressionRCModeOggEnc);
RESET_SETTING(settings, compressionRCModeOpusEnc);
RESET_SETTING(settings, compressionRCModeWave);
RESET_SETTING(settings, compressionVbrQualityDcaEnc);
RESET_SETTING(settings, compressionVbrQualityFLAC);
RESET_SETTING(settings, compressionVbrQualityLAME);
+ RESET_SETTING(settings, compressionVbrQualityMacEnc);
RESET_SETTING(settings, compressionVbrQualityOggEnc);
RESET_SETTING(settings, compressionVbrQualityOpusEnc);
RESET_SETTING(settings, compressionVbrQualityWave);
int EncoderRegistry::getAacEncoder(void)
{
- if(lamexp_check_tool("qaac.exe") && lamexp_check_tool("libsoxrate.dll"))
+ if(lamexp_tool_check("qaac.exe") && lamexp_tool_check("libsoxr.dll") && lamexp_tool_check("libsoxconvolver.dll"))
{
return SettingsModel::AAC_ENCODER_QAAC;
}
- else if(lamexp_check_tool("fhgaacenc.exe") && lamexp_check_tool("enc_fhgaac.dll") && lamexp_check_tool("nsutil.dll") && lamexp_check_tool("libmp4v2.dll"))
+ else if(lamexp_tool_check("fhgaacenc.exe") && lamexp_tool_check("enc_fhgaac.dll") && lamexp_tool_check("nsutil.dll") && lamexp_tool_check("libmp4v2.dll"))
{
return SettingsModel::AAC_ENCODER_FHG;
}
- else if(lamexp_check_tool("neroAacEnc.exe") && lamexp_check_tool("neroAacDec.exe") && lamexp_check_tool("neroAacTag.exe"))
+ else if(lamexp_tool_check("neroAacEnc.exe") && lamexp_tool_check("neroAacDec.exe") && lamexp_tool_check("neroAacTag.exe"))
{
return SettingsModel::AAC_ENCODER_NERO;
}