OSDN Git Service

Added detection of 64-Bit QAAC encoder + fixed a regression in def8a9cd6e13defb09a4d2...
[lamexp/LameXP.git] / src / Encoder_AAC_FHG.cpp
index 281ad2f..b6494a6 100644 (file)
@@ -1,11 +1,12 @@
 ///////////////////////////////////////////////////////////////////////////////
 // LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2013 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2015 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
@@ -51,7 +52,7 @@ class FHGAACEncoderInfo : public AbstractEncoderInfo
                        return false;
                        break;
                default:
-                       throw "Bad RC mode specified!";
+                       MUTILS_THROW("Bad RC mode specified!");
                }
        }
 
@@ -67,7 +68,7 @@ class FHGAACEncoderInfo : public AbstractEncoderInfo
                        return 52;
                        break;
                default:
-                       throw "Bad RC mode specified!";
+                       MUTILS_THROW("Bad RC mode specified!");
                }
        }
 
@@ -83,7 +84,7 @@ class FHGAACEncoderInfo : public AbstractEncoderInfo
                        return qBound(8, index2bitrate(index), 576);
                        break;
                default:
-                       throw "Bad RC mode specified!";
+                       MUTILS_THROW("Bad RC mode specified!");
                }
        }
 
@@ -101,7 +102,7 @@ class FHGAACEncoderInfo : public AbstractEncoderInfo
                        return TYPE_BITRATE;
                        break;
                default:
-                       throw "Bad RC mode specified!";
+                       MUTILS_THROW("Bad RC mode specified!");
                }
        }
 
@@ -110,6 +111,12 @@ class FHGAACEncoderInfo : public AbstractEncoderInfo
                static const char* s_description = "fhgaacenc/Winamp (\x0C2\x0A9 Nullsoft)";
                return s_description;
        }
+
+       virtual const char *extension(void) const
+       {
+               static const char* s_extension = "mp4";
+               return s_extension;
+       }
 }
 static const g_fhgAacEncoderInfo;
 
@@ -119,12 +126,12 @@ static const g_fhgAacEncoderInfo;
 
 FHGAACEncoder::FHGAACEncoder(void)
 :
-       m_binary_enc(lamexp_lookup_tool("fhgaacenc.exe")),
-       m_binary_dll(lamexp_lookup_tool("enc_fhgaac.dll"))
+       m_binary_enc(lamexp_tools_lookup("fhgaacenc.exe")),
+       m_binary_dll(lamexp_tools_lookup("enc_fhgaac.dll"))
 {
        if(m_binary_enc.isEmpty() || m_binary_dll.isEmpty())
        {
-               throw "Error initializing FhgAacEnc. Tool 'fhgaacenc.exe' is not registred!";
+               MUTILS_THROW("Error initializing FhgAacEnc. Tool 'fhgaacenc.exe' is not registred!");
        }
 
        m_configProfile = 0;
@@ -134,7 +141,7 @@ FHGAACEncoder::~FHGAACEncoder(void)
 {
 }
 
-bool FHGAACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInfo, const QString &outputFile, volatile bool *abortFlag)
+bool FHGAACEncoder::encode(const QString &sourceFile, const AudioFileModel_MetaInfo &metaInfo, const unsigned int duration, const QString &outputFile, volatile bool *abortFlag)
 {
        QProcess process;
        QStringList args;
@@ -168,7 +175,7 @@ bool FHGAACEncoder::encode(const QString &sourceFile, const AudioFileModel &meta
                args << "--vbr" << QString::number(qBound(1, m_configBitrate + 1, 6));
                break;
        default:
-               throw "Bad rate-control mode!";
+               MUTILS_THROW("Bad rate-control mode!");
                break;
        }
 
@@ -247,11 +254,6 @@ bool FHGAACEncoder::encode(const QString &sourceFile, const AudioFileModel &meta
        return true;
 }
 
-QString FHGAACEncoder::extension(void)
-{
-       return "mp4";
-}
-
 bool FHGAACEncoder::isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion)
 {
        if(containerType.compare("Wave", Qt::CaseInsensitive) == 0)