Added optional support for the libfdk-aac encoder, using the fdkaac front-end by nu774.

This commit is contained in:
LoRd_MuldeR 2015-04-24 20:36:05 +02:00
parent 3deacf11df
commit 99b68fcccb
25 changed files with 232 additions and 97 deletions

View File

@ -297,6 +297,7 @@ copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.manifest
<ClCompile Include="src\Dialog_Update.cpp" />
<ClCompile Include="src\Dialog_WorkingBanner.cpp" />
<ClCompile Include="src\Encoder_AAC.cpp" />
<ClCompile Include="src\Encoder_AAC_FDK.cpp" />
<ClCompile Include="src\Encoder_AAC_FHG.cpp" />
<ClCompile Include="src\Encoder_AAC_QAAC.cpp" />
<ClCompile Include="src\Encoder_Abstract.cpp" />
@ -357,6 +358,7 @@ copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.manifest
<ClCompile Include="tmp\LameXP\MOC_Dialog_Update.cpp" />
<ClCompile Include="tmp\LameXP\MOC_Dialog_WorkingBanner.cpp" />
<ClCompile Include="tmp\LameXP\MOC_Encoder_AAC.cpp" />
<ClCompile Include="tmp\LameXP\MOC_Encoder_AAC_FDK.cpp" />
<ClCompile Include="tmp\LameXP\MOC_Encoder_AAC_FHG.cpp" />
<ClCompile Include="tmp\LameXP\MOC_Encoder_AAC_QAAC.cpp" />
<ClCompile Include="tmp\LameXP\MOC_Encoder_Abstract.cpp" />
@ -407,6 +409,17 @@ copy /Y "$(SolutionDir)\..\Prerequisites\VisualLeakDetector\bin\Win32\*.manifest
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\Config.h" />
<CustomBuild Include="src\Encoder_AAC_FDK.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp" "%(FullPath)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp" "%(FullPath)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp" "%(FullPath)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp"</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp"</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp"</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\$(ProjectName)\MOC_%(Filename).cpp;%(Outputs)</Outputs>
</CustomBuild>
<ClInclude Include="src\IPCCommands.h" />
<ClInclude Include="tmp\LameXP\UIC_AboutDialog.h" />
<ClInclude Include="tmp\LameXP\UIC_CueSheetImport.h" />

View File

@ -409,6 +409,12 @@
<ClCompile Include="tmp\LameXP\QRC_Tools_Decd_B.cpp">
<Filter>Generated Files\QRC</Filter>
</ClCompile>
<ClCompile Include="src\Encoder_AAC_FDK.cpp">
<Filter>Source Files\Encoders</Filter>
</ClCompile>
<ClCompile Include="tmp\LameXP\MOC_Encoder_AAC_FDK.cpp">
<Filter>Generated Files\MOC</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\Config.h">
@ -540,6 +546,9 @@
<ClInclude Include="src\IPCCommands.h">
<Filter>Header Files\Misc</Filter>
</ClInclude>
<ClInclude Include="src\Encoder_AAC_FDK.h">
<Filter>Header Files\Encoders</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="gui\DropBox.ui">

View File

@ -88,6 +88,7 @@ h='&#x67;&#x6d;&#x61;&#x69;&#108;&#46;&#x63;&#x6f;&#x6d;';a='&#64;';n='&#122;&#x
document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+e+'<\/'+'a'+'>');
// -->
</script><noscript>&#122;&#x69;&#116;&#x79;&#x69;&#x73;&#x6f;&#102;&#116;&#32;&#x61;&#116;&#32;&#x67;&#x6d;&#x61;&#x69;&#108;&#32;&#100;&#x6f;&#116;&#32;&#x63;&#x6f;&#x6d;</noscript><br /></li>
<li>Added optional support for the <em>libfdk-aac</em> encoder, using the <a href="https://github.com/nu774/fdkaac">fdkaac</a> front-end by nu774<br /></li>
<li>Updated ALAC decoder to refalac v1.47 (2015-02-15), based on reference implementation by Apple<br /></li>
<li>Fixed potential deadlock in Cue Sheet import dialog when &quot;Browse...&quot; button is clicked</li>
</ul>

View File

@ -5,6 +5,7 @@
## LameXP v4.12 [xxxx-xx-xx] ## {-}
* Added Hungarian translation, thanks to Zityi's Translator Team <zityisoft@gmail.com>
* Added optional support for the *libfdk-aac* encoder, using the [fdkaac](https://github.com/nu774/fdkaac) front-end by nu774
* Updated ALAC decoder to refalac v1.47 (2015-02-15), based on reference implementation by Apple
* Fixed potential deadlock in Cue Sheet import dialog when "Browse..." button is clicked

View File

@ -2551,32 +2551,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation type="unfinished"></translation>
</message>

View File

@ -1282,7 +1282,7 @@
<translation>Verzeichnis konnte nicht erstellt werden</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP wird bereits ausgeführt. Bitte benutzen Sie die laufende Instanz!</translation>
</message>
@ -1484,7 +1484,7 @@
<translation>Diese Demo (Test) Version von LameXP ist am %1. abgelaufen.</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Wird bereits ausgeführt</translation>
</message>
@ -2450,22 +2450,22 @@
<translation>Bei existierender Zieldatei:</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Überschreiben Modus</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>Achtung: Dieser Modus überschreibt möglicherweise existierende Dateien!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Fortfahren</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>Zurück</translation>
</message>

View File

@ -1410,12 +1410,12 @@
<translation>¡El disco es de solo lectura o no se tienen los derechos suficientes!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Ya se está ejecutando</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>¡LameXP ya se está ejecutando, use esa instancia por favor!</translation>
</message>
@ -2450,22 +2450,22 @@
<translation>Si el archivo de destino ya existe:</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Modo de sobreescritura</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>Aviso: ¡Este modo sobreescribirá los archivos existentes sin ninguna posibilidad de recuperarlos!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Continuar</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>Revertir</translation>
</message>

View File

@ -1415,12 +1415,12 @@ Votre dossier TEMP est situé ici:</translation>
<translation>Le lecteur est en lecture seule ou en droits d&apos;accès insuffisants!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Déjà en cours d&apos;exécution</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP est déjà en cours d&apos;exécution, veuillez utiliser cette instance!</translation>
</message>
@ -2458,22 +2458,22 @@ Ouvrir le dossier récursivement...</translation>
<translation>Si le fichier cible existe déjà :</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Mode d&apos;écrasement</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>AVERTISSEMENT : Ce mode peut remplacer les fichiers existants sans aucun moyen de revenir en arrière !</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Continuer</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>Revenir</translation>
</message>

View File

@ -2551,32 +2551,32 @@
<translation>Nem lehet írni a kiválasztott könyvtárba. Kérjük válasszon egy másik könyvtárat!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Felülírási mód</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>Figyelem: Ez a mód felülírja a már létező fájlokat, amelyeket azt követően nem tud visszaállítani!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Folytatás</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>Visszaállítás</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Már fut</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>A LameXP már fut. Kérjük, használja a futó példányt!</translation>
</message>

View File

@ -1282,7 +1282,7 @@
<translation>Creazione della cartella non riuscita</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP è già in esecuzione, per favore usa la sessione già aperta!</translation>
</message>
@ -1484,7 +1484,7 @@
<translation type="unfinished">Questa versione dimostrativa (Test) di LameXP è scaduta il %1.</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Già in Esecuzione</translation>
</message>
@ -2450,22 +2450,22 @@
<translation>Se il file di destinazione esiste già:</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Modalità sovrascrittura</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation type="unfinished">Attenzione: Questa modalità potrebbe sovrascrivere i file esistenti senza possibilità di recupero!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Continuare</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation type="unfinished">Annulla</translation>
</message>

View File

@ -1713,12 +1713,12 @@
<translation type="unfinished"> - !</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation type="unfinished">LameXP가 . !</translation>
</message>
@ -2446,22 +2446,22 @@
<translation type="unfinished"> :</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation type="unfinished">경고: !</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation type="unfinished"></translation>
</message>

View File

@ -2568,32 +2568,32 @@
<translation type="unfinished">Nie można zapisać do wybranej lokalizacji. Prosze wybierz inną lokalizację!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation type="unfinished">Tryb nadpisywania</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation type="unfinished">Ostrzeżenie: W tym trybie istniejące pliki będą nadpisywane bez możliwości ich odzyskania!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation type="unfinished">Kontynuuj</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation type="unfinished">Cofnij</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation type="unfinished">Już działa</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation type="unfinished">LameXP już działa, przejdź do działającego procesu!</translation>
</message>

View File

@ -1645,12 +1645,12 @@
<translation>Диск только для чтения или недостаточно прав для записи!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Уже запущено</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP уже запущена, пожалуйста, используйте запущенную копию программы!</translation>
</message>
@ -2460,22 +2460,22 @@
<translation>Если файл уже существует:</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Ркжим перезаписи</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>Предупреждение: В этом режиме безвозвратно будут перезаписываться уже существующие файлы, если таковые есть!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Да</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>Отмена</translation>
</message>

View File

@ -2560,32 +2560,32 @@
<translation>Kan inte skriva till den specificerade mappen. Välj en annan destination!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Överskrivningsläge</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>Varning! Det här läget kan skriva över befintliga filer, utan möjlighet att återskapa!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Fortsätt</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>Återställ</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Körs redan</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP körs redan, använd den redan startade instansen!</translation>
</message>

View File

@ -1406,12 +1406,12 @@
<translation> !</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP ,使 !</translation>
</message>
@ -2446,22 +2446,22 @@
<translation>: </translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>警告: 這種模式可能會覆蓋現有的文件無法恢復!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation></translation>
</message>

View File

@ -1609,12 +1609,12 @@
<translation>Носій в режимі &apos;лише для читання&apos; або використовуються недостатні права доступу!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation>Вже запущено</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP вже запущено, тому використовуйте запущену копію програми!</translation>
</message>
@ -2453,22 +2453,22 @@
<translation>Якщо цільовий файл вже існує:</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation>Режим перезапису</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>Попередження: Цей режим може перезаписати існуючі файли без можливості відмінити зміни!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation>Продовжити</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>Відмінити</translation>
</message>

View File

@ -1406,12 +1406,12 @@
<translation>访!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>Already Running</source>
<translation></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4196"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4197"/>
<source>LameXP is already running, please use the running instance!</source>
<translation>LameXP ,使!</translation>
</message>
@ -2446,22 +2446,22 @@
<translation>:</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Overwrite Mode</source>
<translation></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Warning: This mode may overwrite existing files with no way to revert!</source>
<translation>警告: 这种模式可能会覆盖现有的文件且无法恢复!</translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Continue</source>
<translation></translation>
</message>
<message>
<location filename="../../src/Dialog_MainWindow.cpp" line="4123"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4124"/>
<source>Revert</source>
<translation>退</translation>
</message>

View File

@ -35,7 +35,7 @@
#define VER_LAMEXP_MINOR_LO 2
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 1
#define VER_LAMEXP_BUILD 1708
#define VER_LAMEXP_BUILD 1710
#define VER_LAMEXP_CONFG 1700
///////////////////////////////////////////////////////////////////////////////
@ -51,6 +51,7 @@
#define VER_LAMEXP_TOOL_NEROAAC 1540
#define VER_LAMEXP_TOOL_FHGAACENC 20120806
#define VER_LAMEXP_TOOL_FDKAACENC 62
#define VER_LAMEXP_TOOL_QAAC 244
#define VER_LAMEXP_TOOL_COREAUDIO 7980

View File

@ -4044,14 +4044,15 @@ void MainWindow::customParamsHelpRequested(QWidget *obj, QEvent *event)
{
switch(EncoderRegistry::getAacEncoder())
{
case SettingsModel::AAC_ENCODER_QAAC: showCustomParamsHelpScreen("qaac.exe", "--help"); break;
case SettingsModel::AAC_ENCODER_FHG : showCustomParamsHelpScreen("fhgaacenc.exe", ""); break;
case SettingsModel::AAC_ENCODER_NERO: showCustomParamsHelpScreen("neroAacEnc.exe", "-help"); break;
case SettingsModel::AAC_ENCODER_QAAC: showCustomParamsHelpScreen("qaac.exe", "--help"); break;
case SettingsModel::AAC_ENCODER_FHG : showCustomParamsHelpScreen("fhgaacenc.exe", "" ); break;
case SettingsModel::AAC_ENCODER_FDK : showCustomParamsHelpScreen("fdkaac.exe", "--help"); break;
case SettingsModel::AAC_ENCODER_NERO: showCustomParamsHelpScreen("neroAacEnc.exe", "-help" ); break;
default: MUtils::Sound::beep(MUtils::Sound::BEEP_ERR); break;
}
}
else if(obj == ui->helpCustomParamFLAC) showCustomParamsHelpScreen("flac.exe", "--help");
else if(obj == ui->helpCustomParamAften) showCustomParamsHelpScreen("aften.exe", "-h");
else if(obj == ui->helpCustomParamFLAC) showCustomParamsHelpScreen("flac.exe", "--help");
else if(obj == ui->helpCustomParamAften) showCustomParamsHelpScreen("aften.exe", "-h" );
else if(obj == ui->helpCustomParamOpus) showCustomParamsHelpScreen("opusenc.exe", "--help");
else MUtils::Sound::beep(MUtils::Sound::BEEP_ERR);
}

View File

@ -61,6 +61,7 @@ bool lamexp_version_demo (void);
const QDate& lamexp_version_expires (void);
unsigned int lamexp_toolver_neroaac (void);
unsigned int lamexp_toolver_fhgaacenc(void);
unsigned int lamexp_toolver_fdkaacenc(void);
unsigned int lamexp_toolver_qaacenc (void);
unsigned int lamexp_toolver_coreaudio(void);

View File

@ -67,6 +67,7 @@ static const char *g_lamexp_tracker_url = "https://github.com/lordmulder/LameXP/
//Tool versions (expected versions!)
static const unsigned int g_lamexp_toolver_neroaac = VER_LAMEXP_TOOL_NEROAAC;
static const unsigned int g_lamexp_toolver_fhgaacenc = VER_LAMEXP_TOOL_FHGAACENC;
static const unsigned int g_lamexp_toolver_fdkaacenc = VER_LAMEXP_TOOL_FDKAACENC;
static const unsigned int g_lamexp_toolver_qaacenc = VER_LAMEXP_TOOL_QAAC;
static const unsigned int g_lamexp_toolver_coreaudio = VER_LAMEXP_TOOL_COREAUDIO;
@ -84,6 +85,7 @@ unsigned int lamexp_version_confg(void) { return g_lamexp_version_confg;
const char* lamexp_version_release(void) { return g_lamexp_version_rname; }
unsigned int lamexp_toolver_neroaac(void) { return g_lamexp_toolver_neroaac; }
unsigned int lamexp_toolver_fhgaacenc(void) { return g_lamexp_toolver_fhgaacenc; }
unsigned int lamexp_toolver_fdkaacenc(void) { return g_lamexp_toolver_fdkaacenc; }
unsigned int lamexp_toolver_qaacenc(void) { return g_lamexp_toolver_qaacenc; }
unsigned int lamexp_toolver_coreaudio(void) { return g_lamexp_toolver_coreaudio; }

View File

@ -93,7 +93,8 @@ public:
AAC_ENCODER_NONE = 0,
AAC_ENCODER_NERO = 1,
AAC_ENCODER_FHG = 2,
AAC_ENCODER_QAAC = 3,
AAC_ENCODER_FDK = 3,
AAC_ENCODER_QAAC = 4,
};
//Consts

View File

@ -26,6 +26,7 @@
#include "Model_Settings.h"
#include "Encoder_AAC.h"
#include "Encoder_AAC_FHG.h"
#include "Encoder_AAC_FDK.h"
#include "Encoder_AAC_QAAC.h"
#include "Encoder_AC3.h"
#include "Encoder_DCA.h"
@ -106,6 +107,13 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
encoder = aacEncoder;
}
break;
case SettingsModel::AAC_ENCODER_FDK:
{
FDKAACEncoder *aacEncoder = new FDKAACEncoder();
aacEncoder->setProfile(settings->aacEncProfile());
encoder = aacEncoder;
}
break;
case SettingsModel::AAC_ENCODER_NERO:
{
AACEncoder *aacEncoder = new AACEncoder();
@ -198,20 +206,21 @@ const AbstractEncoderInfo *EncoderRegistry::getEncoderInfo(const int encoderId)
switch(encoderId)
{
case SettingsModel::MP3Encoder: info = MP3Encoder::getEncoderInfo(); break;
case SettingsModel::MP3Encoder: info = MP3Encoder ::getEncoderInfo(); break;
case SettingsModel::VorbisEncoder: info = VorbisEncoder::getEncoderInfo(); break;
case SettingsModel::AC3Encoder: info = AC3Encoder::getEncoderInfo(); break;
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::AC3Encoder: info = AC3Encoder ::getEncoderInfo(); break;
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_QAAC: info = QAACEncoder ::getEncoderInfo(); break;
case SettingsModel::AAC_ENCODER_FHG: info = FHGAACEncoder::getEncoderInfo(); break;
case SettingsModel::AAC_ENCODER_NERO: info = AACEncoder::getEncoderInfo(); break;
case SettingsModel::AAC_ENCODER_FDK: info = FDKAACEncoder::getEncoderInfo(); break;
case SettingsModel::AAC_ENCODER_NERO: info = AACEncoder ::getEncoderInfo(); break;
default: MUTILS_THROW("Unknown AAC encoder specified!");
}
break;
@ -480,6 +489,10 @@ int EncoderRegistry::getAacEncoder(void)
{
return SettingsModel::AAC_ENCODER_QAAC;
}
else if(lamexp_tools_check("fdkaac.exe"))
{
return SettingsModel::AAC_ENCODER_FDK;
}
else if(lamexp_tools_check("fhgaacenc.exe") && lamexp_tools_check("enc_fhgaac.dll") && lamexp_tools_check("nsutil.dll") && lamexp_tools_check("libmp4v2.dll"))
{
return SettingsModel::AAC_ENCODER_FHG;

View File

@ -403,6 +403,7 @@ double InitializationThread::doInit(const size_t threadCount)
//Look for AAC encoders
initAacEnc_Nero();
initAacEnc_FHG();
initAacEnc_FDK();
initAacEnc_QAAC();
m_bSuccess = true;
@ -522,7 +523,7 @@ void InitializationThread::initAacEnc_Nero(void)
{
if(!MUtils::OS::is_executable_file(neroFileInfo[i].canonicalFilePath()))
{
qDebug("%s executbale is invalid -> NeroAAC encoding support will be disabled!\n", MUTILS_UTF8(neroFileInfo[i].fileName()));
qDebug("%s executable is invalid -> NeroAAC encoding support will be disabled!\n", MUTILS_UTF8(neroFileInfo[i].fileName()));
return;
}
}
@ -645,7 +646,7 @@ void InitializationThread::initAacEnc_FHG(void)
if(!MUtils::OS::is_executable_file(fhgFileInfo[0].canonicalFilePath()))
{
qDebug("FhgAacEnc executbale is invalid -> FhgAacEnc support will be disabled!\n");
qDebug("FhgAacEnc executable is invalid -> FhgAacEnc support will be disabled!\n");
return;
}
@ -728,6 +729,96 @@ void InitializationThread::initAacEnc_FHG(void)
}
}
void InitializationThread::initAacEnc_FDK(void)
{
const QString appPath = QDir(QCoreApplication::applicationDirPath()).canonicalPath();
const QFileInfo fdkFileInfo(QString("%1/fdkaac.exe").arg(appPath));
if(!(fdkFileInfo.exists() && fdkFileInfo.isFile()))
{
qDebug("FdkAac encoder binary not found -> FdkAac encoding support will be disabled!\n");
return;
}
if(!MUtils::OS::is_executable_file(fdkFileInfo.canonicalFilePath()))
{
qDebug("%s executable is invalid -> FdkAac encoding support will be disabled!\n", MUTILS_UTF8(fdkFileInfo.fileName()));
return;
}
qDebug("Found FdkAac encoder binary:\n%s\n", MUTILS_UTF8(fdkFileInfo.canonicalFilePath()));
//Lock the fdkaac binaries
QScopedPointer<LockedFile> fdkAacBin;
try
{
fdkAacBin.reset(new LockedFile(fdkFileInfo.canonicalFilePath()));
}
catch(...)
{
qWarning("Failed to get excluive lock to FdkAac encoder binary -> FdkAac encoding support will be disabled!");
return;
}
QProcess process;
MUtils::init_process(process, fdkFileInfo.absolutePath());
process.start(fdkFileInfo.canonicalFilePath(), QStringList() << "--help");
if(!process.waitForStarted())
{
qWarning("FdkAac process failed to create!");
qWarning("Error message: \"%s\"\n", process.errorString().toLatin1().constData());
process.kill();
process.waitForFinished(-1);
return;
}
quint32 fdkAacVersion = 0;
QRegExp fdkAacSig("fdkaac\\s+(\\d)\\.(\\d)\\.(\\d)", Qt::CaseInsensitive);
while(process.state() != QProcess::NotRunning)
{
if(!process.waitForReadyRead())
{
if(process.state() == QProcess::Running)
{
qWarning("fdkaac process time out -> killing!");
process.kill();
process.waitForFinished(-1);
return;
}
}
while(process.canReadLine())
{
QString line = QString::fromUtf8(process.readLine().constData()).simplified();
if(fdkAacSig.lastIndexIn(line) >= 0)
{
quint32 tmp[3];
if(MUtils::regexp_parse_uint32(fdkAacSig, tmp, 3))
{
fdkAacVersion = (qBound(0U, tmp[0], 9U) * 100U) + (qBound(0U, tmp[1], 9U) * 10U) + qBound(0U, tmp[2], 9U);
}
}
}
}
if(fdkAacVersion <= 0)
{
qWarning("fdkaac version could not be determined -> fdkaac encoding support will be disabled!");
return;
}
else if(fdkAacVersion < lamexp_toolver_fdkaacenc())
{
qWarning("fdkaac version is too much outdated (%s) -> fdkaac support will be disabled!", MUTILS_UTF8(lamexp_version2string("v?.?.?", fdkAacVersion, "N/A")));
qWarning("Minimum required fdkaac version currently is: %s\n", MUTILS_UTF8(lamexp_version2string("v?.?.?", lamexp_toolver_fdkaacenc(), "N/A")));
return;
}
qDebug("Enabled fdkaac encoder %s.\n", MUTILS_UTF8(lamexp_version2string("v?.?.?", fdkAacVersion, "N/A")));
lamexp_tools_register(fdkFileInfo.fileName(), fdkAacBin.take(), fdkAacVersion);
}
void InitializationThread::initAacEnc_QAAC(void)
{
const QString appPath = QDir(QCoreApplication::applicationDirPath()).canonicalPath();
@ -756,7 +847,7 @@ void InitializationThread::initAacEnc_QAAC(void)
if(!MUtils::OS::is_executable_file(qaacFileInfo[0].canonicalFilePath()))
{
qDebug("QAAC executbale is invalid -> QAAC support will be disabled!\n");
qDebug("QAAC executable is invalid -> QAAC support will be disabled!\n");
return;
}

View File

@ -56,6 +56,7 @@ private:
void initTranslations(void);
void initAacEnc_Nero(void);
void initAacEnc_FHG(void);
void initAacEnc_FDK(void);
void initAacEnc_QAAC(void);
bool m_bSuccess;