Experimental support for dcaenc, by Alexander E. Patrakov <patrakov@gmail.com>.
This commit is contained in:
parent
a392864916
commit
a0a29b9551
@ -275,6 +275,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="src\Encoder_AAC_QAAC.cpp" />
|
||||
<ClCompile Include="src\Encoder_Abstract.cpp" />
|
||||
<ClCompile Include="src\Encoder_AC3.cpp" />
|
||||
<ClCompile Include="src\Encoder_DCA.cpp" />
|
||||
<ClCompile Include="src\Encoder_FLAC.cpp" />
|
||||
<ClCompile Include="src\Encoder_MP3.cpp" />
|
||||
<ClCompile Include="src\Encoder_Vorbis.cpp" />
|
||||
@ -327,6 +328,7 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<ClCompile Include="tmp\MOC_Encoder_AAC_QAAC.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_Abstract.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_AC3.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_DCA.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_FLAC.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_MP3.cpp" />
|
||||
<ClCompile Include="tmp\MOC_Encoder_Vorbis.cpp" />
|
||||
@ -451,6 +453,17 @@ del "$(TargetDir)imageformats\q???d4.dll"
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_DCA.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MOC "$(SolutionDir)tmp\MOC_%(Filename).cpp"</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\MOC_%(Filename).cpp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="src\Tools.h" />
|
||||
<CustomBuild Include="src\Tool_WaveProperties.h">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" -o "$(SolutionDir)tmp\MOC_%(Filename).cpp" "%(FullPath)"</Command>
|
||||
|
@ -346,6 +346,12 @@
|
||||
<ClCompile Include="tmp\MOC_Tool_WaveProperties.cpp">
|
||||
<Filter>Generated Files\MOC</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Encoder_DCA.cpp">
|
||||
<Filter>Source Files\Encoders</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tmp\MOC_Encoder_DCA.cpp">
|
||||
<Filter>Generated Files\MOC</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\Config.h">
|
||||
@ -644,6 +650,9 @@
|
||||
<CustomBuild Include="src\Tool_WaveProperties.h">
|
||||
<Filter>Header Files\Misc</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\Encoder_DCA.h">
|
||||
<Filter>Header Files\Encoders</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="res\MainIcon.ico" />
|
||||
|
@ -19,6 +19,7 @@ a:visited { color: #0000EE; }
|
||||
<a name="4.04"></a>Changes between v4.03 and v4.04:<br><ul>
|
||||
<li>Added support for the QAAC Encoder, requires QuickTime v7.7.1 or newer (see <a href="FAQ.html#71a113b0" target="_blank">FAQ doc</a> for details)
|
||||
<li>Added Chinese and Taiwanese translations, thanks to 456Vv <123@456vv.com>
|
||||
<li>Added experimental support for dcaenc, created by Alexander E. Patrakov <patrakov@gmail.com>
|
||||
<li>Updated Qt runtime libraries to v4.8.0 (2011-12-15), compiled with MSVC 10.0
|
||||
<li>Updated LAME encoder to v3.99.2 Final (2011-11-18), compiled with ICL 12.1.7 and MSVC 10.0 (<a href="http://lame.cvs.sourceforge.net/viewvc/lame/lame/doc/html/history.html?revision=1.134" target="_blank">details</a>)
|
||||
<li>Updated MediaInfo to v0.7.52 (2011-12-19), compiled with ICL 12.1.6 and MSVC 10.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -87,10 +87,6 @@
|
||||
<source>Open and patent-free lossless audio compression technology.</source>
|
||||
<translation>Offene und patentfreie Technlogie zur verlustfreien Audiokompression.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation>Von Mark James, veröffentlicht unter der Creative Commons 'by' Lizenz.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Third-party Software</source>
|
||||
<translation>Über Drittsoftware</translation>
|
||||
@ -191,10 +187,6 @@
|
||||
<source>GNU Wget - Software for retrieving files using HTTP</source>
|
||||
<translation>GNU Wget - Software für den Datei-Download über HTTP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation>Silk Icons - Über 700 Symbole im PNG Format</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Note: This demo (pre-release) version of LameXP will expire at %1. Still %2 days left.</source>
|
||||
<translation>Hinweise: Diese Demo (Test) Version von LameXP läuft am %1 ab. Noch %2 Tage übrig.</translation>
|
||||
@ -227,6 +219,14 @@
|
||||
<source>avs2wav - Avisynth to Wave Audio converter</source>
|
||||
<translation>avs2wav - Avisynth zu Wave Audio Konverter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1730,6 +1730,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>Update-Überprüfung wird übersprungen, bitte warten...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -87,10 +87,6 @@
|
||||
<source>Open and patent-free lossless audio compression technology.</source>
|
||||
<translation>Tecnología de codificación de audio sin pérdidas, abierta y libre de patentes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation>Por Mark James, distribuido bajo Licencia Creative Commons.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Third-party Software</source>
|
||||
<translation>Acerca del Software de terceros</translation>
|
||||
@ -167,10 +163,6 @@
|
||||
<source>GnuPG - The GNU Privacy Guard</source>
|
||||
<translation>GnuPG - Guardián de privacidad GNU</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation>Silk Icons - Más de 700 iconos en formato PNG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nero AAC Reference MPEG-4 Encoder</source>
|
||||
<translation>Codificador MPEG-4 Nero AAC</translation>
|
||||
@ -227,6 +219,14 @@
|
||||
<source>avs2wav - Avisynth to Wave Audio converter</source>
|
||||
<translation>avs2wav - Conversor de Avisynth a WAV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1729,6 +1729,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -88,10 +88,6 @@
|
||||
<source>Open and patent-free lossless audio compression technology.</source>
|
||||
<translation>Technologie de compression audio sans perte ouverte et libre de brevets.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation>Par Mark James, publié sous licence Creative Commons.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Third-party Software</source>
|
||||
<translation>A propos des logiciels tiers</translation>
|
||||
@ -171,10 +167,6 @@
|
||||
<source>GnuPG - The GNU Privacy Guard</source>
|
||||
<translation>GnuPG - The GNU Privacy Guard</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation>Silk Icons - Plus de 700 icônes au format PNG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nero AAC Reference MPEG-4 Encoder</source>
|
||||
<translation>Encodeur de référence MPEG-4 Nero AAC</translation>
|
||||
@ -231,6 +223,14 @@
|
||||
<source>avs2wav - Avisynth to Wave Audio converter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1739,6 +1739,10 @@ Ouvrir le dossier récursivement...</translation>
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -87,10 +87,6 @@
|
||||
<source>Open and patent-free lossless audio compression technology.</source>
|
||||
<translation>Tecnologia di compressione audio libera e non vincolata da brevetti.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation>Di Mark James, rilasciato sotto Licenza 'by' Creative Commons.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Third-party Software</source>
|
||||
<translation>Riguardo Software Terze Parti</translation>
|
||||
@ -167,10 +163,6 @@
|
||||
<source>GnuPG - The GNU Privacy Guard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nero AAC Reference MPEG-4 Encoder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -227,6 +219,14 @@
|
||||
<source>avs2wav - Avisynth to Wave Audio converter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1730,6 +1730,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -175,14 +175,6 @@
|
||||
<source>GNU Wget - Software for retrieving files using HTTP</source>
|
||||
<translation type="unfinished">GNU Wget - HTTP를 사용하여 파일을 검색하기 위한 소프트웨어</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation type="unfinished">Silk Icons - PNG 형식의 700 이상의 아이콘 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation type="unfinished">By Mark James, 크리에이티브 커먼즈 'by' 라이센스 하에 출시됨.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors.</source>
|
||||
<translation type="unfinished">LameXP 전체는 LoRd_MuldeR에게 저작권이 있습니다. LameXP에 사용된 타사 소프트웨어는 각 소프트웨어의 저작자에게 저작권이 있습니다.</translation>
|
||||
@ -227,6 +219,14 @@
|
||||
<source>avs2wav - Avisynth to Wave Audio converter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1729,6 +1729,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -175,14 +175,6 @@
|
||||
<source>GNU Wget - Software for retrieving files using HTTP</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors.</source>
|
||||
<translation type="unfinished">LameXP защищена авторским правом LoRd_MuldeR. Авторское право на программное обеспечение третьих сторон, используемое в LameXP, принадлежит индивидуальным авторам.</translation>
|
||||
@ -227,6 +219,14 @@
|
||||
<source>avs2wav - Avisynth to Wave Audio converter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1735,6 +1735,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -87,10 +87,6 @@
|
||||
<source>Open and patent-free lossless audio compression technology.</source>
|
||||
<translation>打開和專利自由無損音頻壓縮技術.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation>By Mark James,在知識共享的許可證發布.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Third-party Software</source>
|
||||
<translation>關于第三方軟件</translation>
|
||||
@ -163,10 +159,6 @@
|
||||
<source>GnuPG - The GNU Privacy Guard</source>
|
||||
<translation>GnuPG - GNU 隱私</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation>Silk Icons - 超過 700 圖標 PNG 格式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nero AAC Reference MPEG-4 Encoder</source>
|
||||
<translation>Nero AAC 參考 MPEG-4 編碼器</translation>
|
||||
@ -227,6 +219,14 @@
|
||||
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors.</source>
|
||||
<translation>LameXP是作為一個整體版權由 LoRd_MuldeR 保護.在 LameXP 中使用的第三方軟件作著權屬于第三方.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1729,6 +1729,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>跳過檢查更新的時間,請耐心等待...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -175,14 +175,6 @@
|
||||
<source>GNU Wget - Software for retrieving files using HTTP</source>
|
||||
<translation>GNU Wget - Software for retrieving files using HTTP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation>Silk Icons - Більш ніж 700 іконок в форматі PNG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation>Створено Mark James, випущено під ліцензією Creative Commons 'by' License.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors.</source>
|
||||
<translation>Всі права на LameXP належать LoRd_MuldeR. Права на стороннє ПЗ, що використовується в LameXP, належать авторам цього ПЗ.</translation>
|
||||
@ -228,6 +220,14 @@
|
||||
<source>avs2wav - Avisynth to Wave Audio converter</source>
|
||||
<translation>avs2wav - аудіоконвертер у Wave аудіо, що базується на Avisynth</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1730,6 +1730,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -87,10 +87,6 @@
|
||||
<source>Open and patent-free lossless audio compression technology.</source>
|
||||
<translation>打开和专利自由无损音频压缩技术.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>By Mark James, released under the Creative Commons 'by' License.</source>
|
||||
<translation>By Mark James,在知识共享的许可证发布.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Third-party Software</source>
|
||||
<translation>关于第三方软件</translation>
|
||||
@ -163,10 +159,6 @@
|
||||
<source>GnuPG - The GNU Privacy Guard</source>
|
||||
<translation>GnuPG - GNU 隐私</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Silk Icons - Over 700 icons in PNG format</source>
|
||||
<translation>Silk Icons - 超过 700 图标 PNG 格式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nero AAC Reference MPEG-4 Encoder</source>
|
||||
<translation>Nero AAC 参考 MPEG-4 编码器</translation>
|
||||
@ -227,6 +219,14 @@
|
||||
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors.</source>
|
||||
<translation>LameXP是作为一个整体版权由 LoRd_MuldeR 保护.在 LameXP 中使用的第三方软件作著权属于第三方.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>dcaenc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AudioFileModel</name>
|
||||
@ -1729,6 +1729,10 @@
|
||||
<source>Skipping update check this time, please be patient...</source>
|
||||
<translation>跳过检查更新的时间,请耐心等待...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DCA Enc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -770,7 +770,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<item row="0" column="7">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderPCM">
|
||||
<property name="text">
|
||||
<string>Wave (PCM)</string>
|
||||
@ -807,6 +807,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<widget class="QRadioButton" name="radioButtonEncoderDCA">
|
||||
<property name="text">
|
||||
<string>DCA Enc</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@ -1099,8 +1106,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>602</width>
|
||||
<height>1515</height>
|
||||
<width>604</width>
|
||||
<height>1524</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_22">
|
||||
|
@ -4,6 +4,7 @@
|
||||
<file>tools/aften.i386.exe</file>
|
||||
<file>tools/aften.sse2.exe</file>
|
||||
<file>tools/aften.x64.exe</file>
|
||||
<file>tools/dcaenc.exe</file>
|
||||
<file>tools/flac.exe</file>
|
||||
<file>tools/lame.i386.exe</file>
|
||||
<file>tools/lame.sse2.exe</file>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -29,8 +29,8 @@
|
||||
#define VER_LAMEXP_MINOR_HI 0
|
||||
#define VER_LAMEXP_MINOR_LO 4
|
||||
#define VER_LAMEXP_TYPE Alpha
|
||||
#define VER_LAMEXP_PATCH 11
|
||||
#define VER_LAMEXP_BUILD 827
|
||||
#define VER_LAMEXP_PATCH 12
|
||||
#define VER_LAMEXP_BUILD 830
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Tool versions (minimum expected versions!)
|
||||
|
@ -430,7 +430,7 @@ void AboutDialog::showMoreAbout(void)
|
||||
);
|
||||
moreAboutText += QString
|
||||
(
|
||||
"</ul></td><td><ul>"
|
||||
"</ul></td><td><ul>" /* ----------------------------------------- */
|
||||
);
|
||||
moreAboutText += makeToolText
|
||||
(
|
||||
@ -475,6 +475,13 @@ void AboutDialog::showMoreAbout(void)
|
||||
"http://forum.doom9.org/showthread.php?t=70882"
|
||||
);
|
||||
moreAboutText += makeToolText
|
||||
(
|
||||
tr("dcaenc"),
|
||||
"dcaenc.exe", "????-??-??",
|
||||
tr("Copyright (c) 2008-2011 Alexander E. Patrakov. Distributed under the LGPL."),
|
||||
"http://gitorious.org/dtsenc/dtsenc/trees/master"
|
||||
);
|
||||
moreAboutText += makeToolText
|
||||
(
|
||||
tr("MediaInfo - Media File Analysis Tool"),
|
||||
"mediainfo.exe", "v?.?.??",
|
||||
@ -502,13 +509,13 @@ void AboutDialog::showMoreAbout(void)
|
||||
tr("Released under the terms of the GNU Lesser General Public License."),
|
||||
"http://www.gnu.org/software/wget/"
|
||||
);
|
||||
moreAboutText += makeToolText
|
||||
(
|
||||
tr("Silk Icons - Over 700 icons in PNG format"),
|
||||
QString(), "v1.3",
|
||||
tr("By Mark James, released under the Creative Commons 'by' License."),
|
||||
"http://www.famfamfam.com/lab/icons/silk/"
|
||||
);
|
||||
//moreAboutText += makeToolText
|
||||
//(
|
||||
// tr("Silk Icons - Over 700 icons in PNG format"),
|
||||
// QString(), "v1.3",
|
||||
// tr("By Mark James, released under the Creative Commons 'by' License."),
|
||||
// "http://www.famfamfam.com/lab/icons/silk/"
|
||||
//);
|
||||
moreAboutText += QString("</ul></td><td> </td></tr></table></div><i>%1</i><br>").arg
|
||||
(
|
||||
NOBR(tr("LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors."))
|
||||
|
@ -203,6 +203,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderAAC, SettingsModel::AACEncoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderAC3, SettingsModel::AC3Encoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderFLAC, SettingsModel::FLACEncoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderDCA, SettingsModel::DCAEncoder);
|
||||
m_encoderButtonGroup->addButton(radioButtonEncoderPCM, SettingsModel::PCMEncoder);
|
||||
m_modeButtonGroup = new QButtonGroup(this);
|
||||
m_modeButtonGroup->addButton(radioButtonModeQuality, SettingsModel::VBRMode);
|
||||
@ -214,6 +215,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
||||
radioButtonEncoderAAC->setChecked((m_settings->compressionEncoder() == SettingsModel::AACEncoder) && (m_neroEncoderAvailable || m_fhgEncoderAvailable || m_qaacEncoderAvailable));
|
||||
radioButtonEncoderAC3->setChecked(m_settings->compressionEncoder() == SettingsModel::AC3Encoder);
|
||||
radioButtonEncoderFLAC->setChecked(m_settings->compressionEncoder() == SettingsModel::FLACEncoder);
|
||||
radioButtonEncoderDCA->setChecked(m_settings->compressionEncoder() == SettingsModel::DCAEncoder);
|
||||
radioButtonEncoderPCM->setChecked(m_settings->compressionEncoder() == SettingsModel::PCMEncoder);
|
||||
radioButtonModeQuality->setChecked(m_settings->compressionRCMode() == SettingsModel::VBRMode);
|
||||
radioButtonModeAverageBitrate->setChecked(m_settings->compressionRCMode() == SettingsModel::ABRMode);
|
||||
@ -1217,6 +1219,7 @@ void MainWindow::encodeButtonClicked(void)
|
||||
case SettingsModel::AACEncoder:
|
||||
case SettingsModel::AC3Encoder:
|
||||
case SettingsModel::FLACEncoder:
|
||||
case SettingsModel::DCAEncoder:
|
||||
case SettingsModel::PCMEncoder:
|
||||
break;
|
||||
default:
|
||||
@ -2481,6 +2484,13 @@ void MainWindow::updateEncoder(int id)
|
||||
radioButtonConstBitrate->setEnabled(true);
|
||||
sliderBitrate->setEnabled(true);
|
||||
break;
|
||||
case SettingsModel::DCAEncoder:
|
||||
radioButtonModeQuality->setEnabled(false);
|
||||
radioButtonModeAverageBitrate->setEnabled(false);
|
||||
radioButtonConstBitrate->setEnabled(true);
|
||||
radioButtonConstBitrate->setChecked(true);
|
||||
sliderBitrate->setEnabled(true);
|
||||
break;
|
||||
default:
|
||||
radioButtonModeQuality->setEnabled(true);
|
||||
radioButtonModeAverageBitrate->setEnabled(true);
|
||||
@ -2557,6 +2567,10 @@ void MainWindow::updateRCMode(int id)
|
||||
sliderBitrate->setMinimum(0);
|
||||
sliderBitrate->setMaximum(8);
|
||||
break;
|
||||
case SettingsModel::DCAEncoder:
|
||||
sliderBitrate->setMinimum(1);
|
||||
sliderBitrate->setMaximum(192);
|
||||
break;
|
||||
case SettingsModel::PCMEncoder:
|
||||
sliderBitrate->setMinimum(0);
|
||||
sliderBitrate->setMaximum(2);
|
||||
@ -2638,6 +2652,9 @@ void MainWindow::updateBitrate(int value)
|
||||
case SettingsModel::AC3Encoder:
|
||||
labelBitrate->setText(QString("%1 kbps").arg(SettingsModel::ac3Bitrates[value]));
|
||||
break;
|
||||
case SettingsModel::DCAEncoder:
|
||||
labelBitrate->setText(QString("%1 kbps").arg(value * 32));
|
||||
break;
|
||||
case SettingsModel::PCMEncoder:
|
||||
labelBitrate->setText(tr("Uncompressed"));
|
||||
break;
|
||||
|
@ -31,13 +31,14 @@
|
||||
#include "Thread_RAMObserver.h"
|
||||
#include "Thread_DiskObserver.h"
|
||||
#include "Dialog_LogView.h"
|
||||
#include "Encoder_MP3.h"
|
||||
#include "Encoder_Vorbis.h"
|
||||
#include "Encoder_AAC.h"
|
||||
#include "Encoder_AAC_FHG.h"
|
||||
#include "Encoder_AAC_QAAC.h"
|
||||
#include "Encoder_AC3.h"
|
||||
#include "Encoder_DCA.h"
|
||||
#include "Encoder_FLAC.h"
|
||||
#include "Encoder_MP3.h"
|
||||
#include "Encoder_Vorbis.h"
|
||||
#include "Encoder_Wave.h"
|
||||
#include "Filter_Downmix.h"
|
||||
#include "Filter_Normalize.h"
|
||||
@ -638,10 +639,66 @@ void ProcessingDialog::startNextJob(void)
|
||||
|
||||
m_currentFile++;
|
||||
AudioFileModel currentFile = updateMetaInfo(m_pendingJobs.takeFirst());
|
||||
AbstractEncoder *encoder = NULL;
|
||||
bool nativeResampling = false;
|
||||
|
||||
//Create encoder instance
|
||||
AbstractEncoder *encoder = makeEncoder(&nativeResampling);
|
||||
|
||||
//Create processing thread
|
||||
ProcessThread *thread = new ProcessThread
|
||||
(
|
||||
currentFile,
|
||||
(m_settings->outputToSourceDir() ? QFileInfo(currentFile.filePath()).absolutePath() : m_settings->outputDir()),
|
||||
(m_settings->customTempPathEnabled() ? m_settings->customTempPath() : lamexp_temp_folder2()),
|
||||
encoder,
|
||||
m_settings->prependRelativeSourcePath() && (!m_settings->outputToSourceDir())
|
||||
);
|
||||
|
||||
//Add audio filters
|
||||
if(m_settings->forceStereoDownmix())
|
||||
{
|
||||
thread->addFilter(new DownmixFilter());
|
||||
}
|
||||
if((m_settings->samplingRate() > 0) && !nativeResampling)
|
||||
{
|
||||
if(SettingsModel::samplingRates[m_settings->samplingRate()] != currentFile.formatAudioSamplerate() || currentFile.formatAudioSamplerate() == 0)
|
||||
{
|
||||
thread->addFilter(new ResampleFilter(SettingsModel::samplingRates[m_settings->samplingRate()]));
|
||||
}
|
||||
}
|
||||
if((m_settings->toneAdjustBass() != 0) || (m_settings->toneAdjustTreble() != 0))
|
||||
{
|
||||
thread->addFilter(new ToneAdjustFilter(m_settings->toneAdjustBass(), m_settings->toneAdjustTreble()));
|
||||
}
|
||||
if(m_settings->normalizationFilterEnabled())
|
||||
{
|
||||
thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume(), m_settings->normalizationFilterEqualizationMode()));
|
||||
}
|
||||
if(m_settings->renameOutputFilesEnabled() && (!m_settings->renameOutputFilesPattern().simplified().isEmpty()))
|
||||
{
|
||||
thread->setRenamePattern(m_settings->renameOutputFilesPattern());
|
||||
}
|
||||
|
||||
m_threadList.append(thread);
|
||||
m_allJobs.append(thread->getId());
|
||||
|
||||
//Connect thread signals
|
||||
connect(thread, SIGNAL(finished()), this, SLOT(doneEncoding()), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processStateInitialized(QUuid,QString,QString,int)), m_progressModel, SLOT(addJob(QUuid,QString,QString,int)), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processStateChanged(QUuid,QString,int)), m_progressModel, SLOT(updateJob(QUuid,QString,int)), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processStateFinished(QUuid,QString,bool)), this, SLOT(processFinished(QUuid,QString,bool)), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processMessageLogged(QUuid,QString)), m_progressModel, SLOT(appendToLog(QUuid,QString)), Qt::QueuedConnection);
|
||||
|
||||
//Give it a go!
|
||||
m_runningThreads++;
|
||||
thread->start();
|
||||
}
|
||||
|
||||
AbstractEncoder *ProcessingDialog::makeEncoder(bool *nativeResampling)
|
||||
{
|
||||
AbstractEncoder *encoder = NULL;
|
||||
*nativeResampling = false;
|
||||
|
||||
switch(m_settings->compressionEncoder())
|
||||
{
|
||||
case SettingsModel::MP3Encoder:
|
||||
@ -657,7 +714,7 @@ void ProcessingDialog::startNextJob(void)
|
||||
if(m_settings->samplingRate() > 0)
|
||||
{
|
||||
mp3Encoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]);
|
||||
nativeResampling = true;
|
||||
*nativeResampling = true;
|
||||
}
|
||||
mp3Encoder->setChannelMode(m_settings->lameChannelMode());
|
||||
mp3Encoder->setCustomParams(m_settings->customParametersLAME());
|
||||
@ -676,7 +733,7 @@ void ProcessingDialog::startNextJob(void)
|
||||
if(m_settings->samplingRate() > 0)
|
||||
{
|
||||
vorbisEncoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]);
|
||||
nativeResampling = true;
|
||||
*nativeResampling = true;
|
||||
}
|
||||
vorbisEncoder->setCustomParams(m_settings->customParametersOggEnc());
|
||||
encoder = vorbisEncoder;
|
||||
@ -736,6 +793,14 @@ void ProcessingDialog::startNextJob(void)
|
||||
encoder = flacEncoder;
|
||||
}
|
||||
break;
|
||||
case SettingsModel::DCAEncoder:
|
||||
{
|
||||
DCAEncoder *dcaEncoder = new DCAEncoder();
|
||||
dcaEncoder->setBitrate(m_settings->compressionBitrate());
|
||||
dcaEncoder->setRCMode(m_settings->compressionRCMode());
|
||||
encoder = dcaEncoder;
|
||||
}
|
||||
break;
|
||||
case SettingsModel::PCMEncoder:
|
||||
{
|
||||
WaveEncoder *waveEncoder = new WaveEncoder();
|
||||
@ -748,54 +813,7 @@ void ProcessingDialog::startNextJob(void)
|
||||
throw "Unsupported encoder!";
|
||||
}
|
||||
|
||||
//Create processing thread
|
||||
ProcessThread *thread = new ProcessThread
|
||||
(
|
||||
currentFile,
|
||||
(m_settings->outputToSourceDir() ? QFileInfo(currentFile.filePath()).absolutePath() : m_settings->outputDir()),
|
||||
(m_settings->customTempPathEnabled() ? m_settings->customTempPath() : lamexp_temp_folder2()),
|
||||
encoder,
|
||||
m_settings->prependRelativeSourcePath() && (!m_settings->outputToSourceDir())
|
||||
);
|
||||
|
||||
//Add audio filters
|
||||
if(m_settings->forceStereoDownmix())
|
||||
{
|
||||
thread->addFilter(new DownmixFilter());
|
||||
}
|
||||
if((m_settings->samplingRate() > 0) && !nativeResampling)
|
||||
{
|
||||
if(SettingsModel::samplingRates[m_settings->samplingRate()] != currentFile.formatAudioSamplerate() || currentFile.formatAudioSamplerate() == 0)
|
||||
{
|
||||
thread->addFilter(new ResampleFilter(SettingsModel::samplingRates[m_settings->samplingRate()]));
|
||||
}
|
||||
}
|
||||
if((m_settings->toneAdjustBass() != 0) || (m_settings->toneAdjustTreble() != 0))
|
||||
{
|
||||
thread->addFilter(new ToneAdjustFilter(m_settings->toneAdjustBass(), m_settings->toneAdjustTreble()));
|
||||
}
|
||||
if(m_settings->normalizationFilterEnabled())
|
||||
{
|
||||
thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume(), m_settings->normalizationFilterEqualizationMode()));
|
||||
}
|
||||
if(m_settings->renameOutputFilesEnabled() && (!m_settings->renameOutputFilesPattern().simplified().isEmpty()))
|
||||
{
|
||||
thread->setRenamePattern(m_settings->renameOutputFilesPattern());
|
||||
}
|
||||
|
||||
m_threadList.append(thread);
|
||||
m_allJobs.append(thread->getId());
|
||||
|
||||
//Connect thread signals
|
||||
connect(thread, SIGNAL(finished()), this, SLOT(doneEncoding()), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processStateInitialized(QUuid,QString,QString,int)), m_progressModel, SLOT(addJob(QUuid,QString,QString,int)), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processStateChanged(QUuid,QString,int)), m_progressModel, SLOT(updateJob(QUuid,QString,int)), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processStateFinished(QUuid,QString,bool)), this, SLOT(processFinished(QUuid,QString,bool)), Qt::QueuedConnection);
|
||||
connect(thread, SIGNAL(processMessageLogged(QUuid,QString)), m_progressModel, SLOT(appendToLog(QUuid,QString)), Qt::QueuedConnection);
|
||||
|
||||
//Give it a go!
|
||||
m_runningThreads++;
|
||||
thread->start();
|
||||
return encoder;
|
||||
}
|
||||
|
||||
void ProcessingDialog::writePlayList(void)
|
||||
|
@ -36,6 +36,7 @@ class SettingsModel;
|
||||
class CPUObserverThread;
|
||||
class RAMObserverThread;
|
||||
class DiskObserverThread;
|
||||
class AbstractEncoder;
|
||||
|
||||
enum shutdownFlag_t
|
||||
{
|
||||
@ -79,6 +80,7 @@ protected:
|
||||
private:
|
||||
void setCloseButtonEnabled(bool enabled);
|
||||
void startNextJob(void);
|
||||
AbstractEncoder *makeEncoder(bool *nativeResampling);
|
||||
AudioFileModel updateMetaInfo(const AudioFileModel &audioFile);
|
||||
void writePlayList(void);
|
||||
bool shutdownComputer(void);
|
||||
|
152
src/Encoder_DCA.cpp
Normal file
152
src/Encoder_DCA.cpp
Normal file
@ -0,0 +1,152 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// LameXP - Audio Encoder Front-End
|
||||
// Copyright (C) 2004-2011 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.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
//
|
||||
// http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "Encoder_DCA.h"
|
||||
|
||||
#include "Global.h"
|
||||
#include "Model_Settings.h"
|
||||
|
||||
#include <QProcess>
|
||||
#include <QDir>
|
||||
#include <limits.h>
|
||||
|
||||
DCAEncoder::DCAEncoder(void)
|
||||
:
|
||||
m_binary(lamexp_lookup_tool("dcaenc.exe"))
|
||||
{
|
||||
if(m_binary.isEmpty())
|
||||
{
|
||||
throw "Error initializing DCA encoder. Tool 'dcaenc.exe' is not registred!";
|
||||
}
|
||||
}
|
||||
|
||||
DCAEncoder::~DCAEncoder(void)
|
||||
{
|
||||
}
|
||||
|
||||
bool DCAEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInfo, const QString &outputFile, volatile bool *abortFlag)
|
||||
{
|
||||
QProcess process;
|
||||
QStringList args;
|
||||
|
||||
int bitrate = qBound(32, m_configBitrate * 32, 6144);
|
||||
|
||||
args << QDir::toNativeSeparators(sourceFile);
|
||||
args << QDir::toNativeSeparators(outputFile);
|
||||
args << QString::number(bitrate);
|
||||
|
||||
if(!startProcess(process, m_binary, args))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool bTimeout = false;
|
||||
bool bAborted = false;
|
||||
int prevProgress = -1;
|
||||
|
||||
QRegExp regExp("\\[(\\d+)\\.(\\d+)%\\]");
|
||||
|
||||
while(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
if(*abortFlag)
|
||||
{
|
||||
process.kill();
|
||||
bAborted = true;
|
||||
emit messageLogged("\nABORTED BY USER !!!");
|
||||
break;
|
||||
}
|
||||
process.waitForReadyRead(m_processTimeoutInterval);
|
||||
if(!process.bytesAvailable() && process.state() == QProcess::Running)
|
||||
{
|
||||
process.kill();
|
||||
qWarning("DCAENC process timed out <-- killing!");
|
||||
emit messageLogged("\nPROCESS TIMEOUT !!!");
|
||||
bTimeout = true;
|
||||
break;
|
||||
}
|
||||
while(process.bytesAvailable() > 0)
|
||||
{
|
||||
QByteArray line = process.readLine();
|
||||
QString text = QString::fromUtf8(line.constData()).simplified();
|
||||
if(regExp.lastIndexIn(text) >= 0)
|
||||
{
|
||||
bool ok = false;
|
||||
int progress = regExp.cap(1).toInt(&ok);
|
||||
if(ok && (progress > prevProgress))
|
||||
{
|
||||
emit statusUpdated(progress);
|
||||
prevProgress = qMin(progress + 2, 99);
|
||||
}
|
||||
}
|
||||
else if(!text.isEmpty())
|
||||
{
|
||||
emit messageLogged(text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
process.waitForFinished();
|
||||
if(process.state() != QProcess::NotRunning)
|
||||
{
|
||||
process.kill();
|
||||
process.waitForFinished(-1);
|
||||
}
|
||||
|
||||
emit statusUpdated(100);
|
||||
emit messageLogged(QString().sprintf("\nExited with code: 0x%04X", process.exitCode()));
|
||||
|
||||
if(bTimeout || bAborted || process.exitCode() != EXIT_SUCCESS)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
QString DCAEncoder::extension(void)
|
||||
{
|
||||
return "dts";
|
||||
}
|
||||
|
||||
bool DCAEncoder::isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion)
|
||||
{
|
||||
if(containerType.compare("Wave", Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
if(formatType.compare("PCM", Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
const unsigned int *DCAEncoder::supportedSamplerates(void)
|
||||
{
|
||||
static const unsigned int supportedRates[] = {48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, NULL};
|
||||
return supportedRates;
|
||||
}
|
||||
|
||||
const unsigned int *DCAEncoder::supportedBitdepths(void)
|
||||
{
|
||||
static const unsigned int supportedBPS[] = {16, 32, NULL};
|
||||
return supportedBPS;
|
||||
}
|
45
src/Encoder_DCA.h
Normal file
45
src/Encoder_DCA.h
Normal file
@ -0,0 +1,45 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// LameXP - Audio Encoder Front-End
|
||||
// Copyright (C) 2004-2011 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.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
//
|
||||
// http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Encoder_Abstract.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class DCAEncoder : public AbstractEncoder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DCAEncoder(void);
|
||||
~DCAEncoder(void);
|
||||
|
||||
virtual bool encode(const QString &sourceFile, const AudioFileModel &metaInfo, const QString &outputFile, volatile bool *abortFlag);
|
||||
virtual bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion);
|
||||
virtual QString extension(void);
|
||||
virtual const unsigned int *supportedBitdepths(void);
|
||||
virtual const unsigned int *supportedSamplerates(void);
|
||||
|
||||
private:
|
||||
const QString m_binary;
|
||||
int clipBitrate(int bitrate);
|
||||
};
|
@ -62,7 +62,8 @@ public:
|
||||
AACEncoder = 2,
|
||||
AC3Encoder = 3,
|
||||
FLACEncoder = 4,
|
||||
PCMEncoder = 5
|
||||
DCAEncoder = 5,
|
||||
PCMEncoder = 6
|
||||
};
|
||||
enum RCMode
|
||||
{
|
||||
|
@ -420,7 +420,7 @@ void ProcessThread::insertDownsampleFilter(void)
|
||||
for(int i = 0; supportedRates[i]; i++)
|
||||
{
|
||||
currentDiff = DIFF(inputRate, supportedRates[i]);
|
||||
if(currentDiff < minimumDiff)
|
||||
if((currentDiff < minimumDiff) || ((currentDiff == minimumDiff) && (bestRate < supportedRates[i])))
|
||||
{
|
||||
bestRate = supportedRates[i];
|
||||
minimumDiff = currentDiff;
|
||||
@ -446,7 +446,7 @@ void ProcessThread::insertDownsampleFilter(void)
|
||||
for(int i = 0; supportedBPS[i]; i++)
|
||||
{
|
||||
currentDiff = DIFF(inputBPS, supportedBPS[i]);
|
||||
if(currentDiff < minimumDiff)
|
||||
if((currentDiff < minimumDiff) || ((currentDiff == minimumDiff) && (bestBPS < supportedBPS[i])))
|
||||
{
|
||||
bestBPS = supportedBPS[i];
|
||||
minimumDiff = currentDiff;
|
||||
|
@ -56,6 +56,7 @@ g_lamexp_tools[] =
|
||||
{"29da0d3e810bc3e8d2cddb3db452325eefca0d0c1fff1379fa17806ad447752be1b88e2f", CPU_TYPE_X64_ALL, "aften.x64.exe", 8},
|
||||
{"1cca303fabd889a18fc01c32a7fd861194cfcac60ba63740ea2d7c55d049dbf8f59259fa", CPU_TYPE_ALL_ALL, "alac.exe", 20},
|
||||
{"6d22d4bbd7ce2162e38f70ac9187bc84eb28233b36ee6c0492d0a6195318782d7f05c444", CPU_TYPE_ALL_ALL, "avs2wav.exe", 13},
|
||||
{"d94bea403cbd24a890d91f55a4e4fed47898b21b62de3ba1202da55dc0917187304171f6", CPU_TYPE_ALL_ALL, "dcaenc.exe", 20111222},
|
||||
{"e53a787d4a0319453f4fe48c3145f190fcce7ac4802e521db908771437f6250746116e6c", CPU_TYPE_ALL_ALL, "elevator.exe", UINT_MAX},
|
||||
{"9ae98a3fc779f69ee876a3b477fbc35a709ba5066823b2eb62eeb015057c38807e4be51f", CPU_TYPE_ALL_ALL, "faad.exe", 27},
|
||||
{"446054f9a7f705f1aadc9053ca7b8a86a775499ef159978954ebdea92de056c34f8841f7", CPU_TYPE_ALL_ALL, "flac.exe", 121},
|
||||
|
Loading…
Reference in New Issue
Block a user