OSDN Git Service

Updated FAAD binary to v2.8.6 (2017-10-10), compiled with ICL 18.0 and MSVC 15.5.
authorLoRd_MuldeR <mulder2@gmx.de>
Sat, 16 Dec 2017 18:16:14 +0000 (19:16 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Sat, 16 Dec 2017 18:16:14 +0000 (19:16 +0100)
17 files changed:
LameXP_VS2017.vcxproj
LameXP_VS2017.vcxproj.filters
doc/Changelog.html
doc/Changelog.md
etc/Patches/FAAD-v2.8.6-Win32-BufferOverflow-Fix.diff [new file with mode: 0644]
etc/Patches/FAAD-v2.8.6-Win32-ByteSwap-Fix.diff [new file with mode: 0644]
etc/Patches/FAAD-v2.8.6-Win32-Flush-Fix.diff [new file with mode: 0644]
etc/Patches/FAAD-v2.8.6-Win32-Unicode-Support.diff [new file with mode: 0644]
etc/Patches/deprecated/FAAD-v2.7-CVS20161111-UTF8+Flush+BuildFixes.V3.diff [moved from etc/Patches/FAAD-v2.7-CVS20161111-UTF8+Flush+BuildFixes.V3.diff with 100% similarity]
res/Tools.faad-avx.qrc [new file with mode: 0644]
res/_ALL.qrc
res/tools/faad.avx.exe [new file with mode: 0644]
res/tools/faad.i686.exe
res/tools/faad.sse2.exe
src/Config.h
src/Dialog_About.cpp
src/Tools.h

index ee54aca..763833d 100644 (file)
@@ -462,6 +462,11 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\$(PlatformToolset)\Shared\plugins\i
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">false</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="tmp\LameXP\QRC_Tools.faad-avx.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">false</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="tmp\LameXP\QRC_Tools.faad-i686.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@@ -2397,6 +2402,21 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\$(PlatformToolset)\Shared\plugins\i
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
     </CustomBuild>
+    <CustomBuild Include="res\Tools.faad-avx.qrc">
+      <FileType>Document</FileType>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"</Command>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"</Message>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"</Message>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"</Message>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)</Outputs>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)</Outputs>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_Static|Win32'">false</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+    </CustomBuild>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="LameXP.rc">
index 2a75490..7aa44d4 100644 (file)
     <ClCompile Include="tmp\LameXP\QRC_Tools.refalac-sse2.cpp">
       <Filter>Generated Files\QRC</Filter>
     </ClCompile>
+    <ClCompile Include="tmp\LameXP\QRC_Tools.faad-avx.cpp">
+      <Filter>Generated Files\QRC</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="src\Config.h">
     <CustomBuild Include="res\_ALL.qrc">
       <Filter>Resources</Filter>
     </CustomBuild>
+    <CustomBuild Include="res\Tools.refalac-sse2.qrc" />
   </ItemGroup>
   <ItemGroup>
     <None Include="ReadMe.txt" />
     <None Include="res\MainIcon.ico">
       <Filter>Miscellaneous</Filter>
     </None>
-    <None Include="res\Tools.refalac-sse2.qrc">
+    <None Include="res\Tools.faad-avx.qrc">
       <Filter>Resources</Filter>
     </None>
   </ItemGroup>
index 2f16be9..9e6f622 100644 (file)
@@ -3,7 +3,7 @@
 h='&#x67;&#x6d;&#120;';a='&#64;';n='&#x6d;&#x75;&#108;&#100;&#x65;&#114;&#50;';e=n+a+h;
 document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\/'+'a'+'>');
 // -->
-</script><noscript>&#x6d;&#x75;&#108;&#100;&#x65;&#114;&#50;&#32;&#x61;&#116;&#32;&#x67;&#x6d;&#120;</noscript>&gt; | <a href="http://muldersoft.com/" class="uri">http://muldersoft.com/</a></h2> </header> <nav id="TOC"> <ul> <li><a href="#lamexp-v4.xx-history"><span class="toc-section-number">1</span> LameXP v4.xx History</a><ul> <li><a href="#lamexp-v4.16-unreleased">LameXP v4.16 [UNRELEASED]</a></li> <li><a href="#lamexp-v4.15-2017-05-31">LameXP v4.15 [2017-05-31]</a></li> <li><a href="#lamexp-v4.14-2016-11-19">LameXP v4.14 [2016-11-19]</a></li> <li><a href="#lamexp-v4.13-2015-12-12">LameXP v4.13 [2015-12-12]</a></li> <li><a href="#lamexp-v4.12-2015-10-23">LameXP v4.12 [2015-10-23]</a></li> <li><a href="#lamexp-v4.11-2015-04-05">LameXP v4.11 [2015-04-05]</a></li> <li><a href="#lamexp-v4.10-2014-06-23">LameXP v4.10 [2014-06-23]</a></li> <li><a href="#lamexp-v4.09-2014-01-26">LameXP v4.09 [2014-01-26]</a></li> <li><a href="#lamexp-v4.08-2013-09-04">LameXP v4.08 [2013-09-04]</a></li> <li><a href="#lamexp-v4.07-2013-04-28">LameXP v4.07 [2013-04-28]</a></li> <li><a href="#lamexp-v4.06-2012-11-04">LameXP v4.06 [2012-11-04]</a></li> <li><a href="#lamexp-v4.05-2012-09-03">LameXP v4.05 [2012-09-03]</a></li> <li><a href="#lamexp-v4.04-2012-04-26">LameXP v4.04 [2012-04-26]</a></li> <li><a href="#lamexp-v4.03-2011-11-12">LameXP v4.03 [2011-11-12]</a></li> <li><a href="#lamexp-v4.02-2011-06-14">LameXP v4.02 [2011-06-14]</a></li> <li><a href="#lamexp-v4.01-2011-04-04">LameXP v4.01 [2011-04-04]</a></li> <li><a href="#lamexp-v4.00-2011-02-21">LameXP v4.00 [2011-02-21]</a></li> </ul></li> <li><a href="#lamexp-v3.xx-history"><span class="toc-section-number">2</span> LameXP v3.xx History</a><ul> <li><a href="#lamexp-v3.19-2010-07-12">LameXP v3.19 [2010-07-12]</a></li> <li><a href="#lamexp-v3.18-2010-05-08">LameXP v3.18 [2010-05-08]</a></li> <li><a href="#lamexp-v3.17-2010-02-21">LameXP v3.17 [2010-02-21]</a></li> <li><a href="#lamexp-v3.16-2010-01-26">LameXP v3.16 [2010-01-26]</a></li> <li><a href="#lamexp-v3.15-2009-12-24">LameXP v3.15 [2009-12-24]</a></li> <li><a href="#lamexp-v3.14-2009-12-01">LameXP v3.14 [2009-12-01]</a></li> <li><a href="#lamexp-v3.13-2009-10-21">LameXP v3.13 [2009-10-21]</a></li> <li><a href="#lamexp-v3.12-2009-09-19">LameXP v3.12 [2009-09-19]</a></li> <li><a href="#lamexp-v3.11-2009-06-22">LameXP v3.11 [2009-06-22]</a></li> <li><a href="#lamexp-v3.10-2009-06-11">LameXP v3.10 [2009-06-11]</a></li> <li><a href="#lamexp-v3.09-2009-06-01">LameXP v3.09 [2009-06-01]</a></li> <li><a href="#lamexp-v3.08-2009-03-05">LameXP v3.08 [2009-03-05]</a></li> <li><a href="#lamexp-v3.07-2008-12-24">LameXP v3.07 [2008-12-24]</a></li> <li><a href="#lamexp-v3.06-2008-10-26">LameXP v3.06 [2008-10-26]</a></li> <li><a href="#lamexp-v3.05-2008-10-11">LameXP v3.05 [2008-10-11]</a></li> <li><a href="#lamexp-v3.04-2008-09-26">LameXP v3.04 [2008-09-26]</a></li> <li><a href="#lamexp-v3.03-2008-08-12">LameXP v3.03 [2008-08-12]</a></li> <li><a href="#lamexp-v3.02-2008-08-06">LameXP v3.02 [2008-08-06]</a></li> <li><a href="#lamexp-v3.01-2008-08-01">LameXP v3.01 [2008-08-01]</a></li> <li><a href="#lamexp-v3.00-2008-07-04">LameXP v3.00 [2008-07-04]</a></li> </ul></li> <li><a href="#lamexp-v2.xx-history"><span class="toc-section-number">3</span> LameXP v2.xx History</a><ul> <li><a href="#lamexp-v2.03-2007-08-17">LameXP v2.03 [2007-08-17]</a></li> <li><a href="#lamexp-v2.00-2007-02-19">LameXP v2.00 [2007-02-19]</a></li> </ul></li> <li><a href="#lamexp-v1.xx-history"><span class="toc-section-number">4</span> LameXP v1.xx History</a><ul> <li><a href="#lamexp-v1.00-2004-12-10">LameXP v1.00 [2004-12-10]</a></li> </ul></li> </ul> </nav> <h1 id="lamexp-v4.xx-history"><span class="header-section-number">1</span> LameXP v4.xx History</h1> <h2 id="lamexp-v4.16-unreleased" class="unnumbered">LameXP v4.16 [UNRELEASED]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2017 with Update-5</li> <li>Updated LAME encoder to v3.100 Final (2017-10-13), compiled with ICL 18.0 and MSVC 14.1</li> <li>Updated mpg123 decoder to v1.25.8 (2017-12-02), compiled with GCC 7.2.0</li> <li>Updated Opus encoder/decoder libraries to v1.2.1-35 (2017-11-16) and Opus-Tools to v0.1.10-9 (2017-05-25)</li> <li>Updated Monkey's Audio binary to v4.33 (2017-12-01), compiled with ICL 18.0 and MSVC 15.5</li> <li>Updated ALAC decoder to refalac v1.64 (2017-05-19), compiled with ICL 18.0 and MSVC 15.5</li> <li>Updated WavPack decoder to v5.1.0 (2017-01-20), compiled with ICL 18.0 and MSVC 15.5</li> <li>Updated MediaInfo to v17.10 (2017-11-02), compiled with ICL 18.0 and MSVC 14.1</li> <li>Updated GnuPG to v1.4.22 (2017-07-19), compiled with GCC 7.2.0</li> <li>Updated QAAC add-in (separate download) to QAAC v2.64 (2017-07-19), compiled with ICL 18.0 and MSVC 15.5</li> <li>Complete re-write of MediaInfo parsing code, now using XML-based MediaInfo output</li> <li>Improved auto-detection of max. parallel instances on computers with &quot;fast&quot; (i.e. SSD or similar) drive</li> <li>Some improvements to output file name generation code</li> <li>Added &quot;Visual Elements&quot; manifest for Windows 8+ &quot;Start&quot; screen tile</li> </ul> <h2 id="lamexp-v4.15-2017-05-31" class="unnumbered">LameXP v4.15 [2017-05-31]</h2> <ul> <li>Fixed a bug in auto-rename feature, that caused problems when a meta-tag contained path separators</li> <li>Fixed included MediaInfo binary not working on processor <em>without</em> SSE2 support</li> <li>Improved file name generation from meta-tags containing characters that are forbidden in file names</li> <li>Some improvements for &quot;high DPI&quot; screens: Adjust initial window size according to DPI setting</li> <li>Updated Opus encoder/decoder libraries to v1.2-beta (2017-05-26) and Opus-Tools to v0.1.10 (2017-05-25)</li> <li>Updated MediaInfo to v0.7.95 (2017-05-04), compiled with ICL 17.0 and MSVC 12.0</li> <li>Updated SoX to v14.4.2 (2015-02-22) with Dynamic Audio Normalizer v2.10 (2017-04-14) effect included</li> <li>Updated mpg123 decoder to v1.24.0 (2017-03-02), compiled with GCC 6.3.0</li> <li>Updated FAAD decoder to v2.7 from CVS in order to include latest libFAAD fixes (2016-11-11)</li> <li>Updated Monkey's Audio binary to v4.25 (2017-03-12), compiled with ICL 17.0 and MSVC 14.0</li> <li>Some tweaks to the auto-update function in order to speed-up the update check in most situations</li> </ul> <h2 id="lamexp-v4.14-2016-11-19" class="unnumbered">LameXP v4.14 [2016-11-19]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2015 with Update-3</li> <li>Fixed the location of temporary intermediate files for SoX-based audio effects</li> <li>Fixed embedding of meta tags with OggEnc2 when reading directly from OGG/FLAC input file</li> <li>Fixed encoding of <em>non</em>-Stereo sources with NeroAAC, when &quot;HE-AAC <em>v2</em> (SBR+PS)&quot; is selected</li> <li>Fixed a bug that would cause the encoding job to fail, when an audio filter is <em>skipped</em></li> <li>Enabled the &quot;built-in&quot; resampler for QAAC encoder</li> <li>The &quot;Algorithm Quality&quot; slider now also affects the QAAC encoder</li> <li>Added &quot;AVX&quot; (Advanced Vector Extensions) to CPU feature detection code</li> <li>Updated Opus encoder/decoder libraries to v1.2-alpha and Opus-Tools to v0.1.9 (2016-11-04)</li> <li>Updated LAME encoder to v3.100 Alpha-2 (2016-01-29), compiled with ICL 15.0 and MSVC 12.0</li> <li>Updated FLAC encoder/decoder to v1.3.1 (2016-10-04), compiled with ICL 17.0 and MSVC 12.0</li> <li>Updated MediaInfo to v0.7.90 (2016-10-31), compiled with ICL 17.0 and MSVC 12.0</li> <li>Updated mpg123 decoder to v1.23.8 (2016-09-27), compiled with GCC 6.2.0</li> <li>Updated ALAC decoder to refalac v1.61 (2016-10-02)</li> <li>Updated WavPack decoder to v4.80.0 (2016-03-28), compiled with ICL 15.0 and MSVC 12.0</li> <li>Updated GnuPG to v1.4.21 (2016-08-17), compiled with GCC 6.1.0</li> <li>Updated QAAC add-in to the to QAAC v2.61 (2016-10-02)</li> <li>Updated FhgAacEnc add-in to &quot;Case&quot; edition (2015-10-24)</li> <li>Improved auto-update function (faster Internet connectivity check)</li> <li>Updated language files (big thank-you to all contributors !!!)</li> </ul> <h2 id="lamexp-v4.13-2015-12-12" class="unnumbered">LameXP v4.13 [2015-12-12]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2015 with Update-1</li> <li>Apply the original file's &quot;creation&quot; and &quot;last modified&quot; date/time to the output file (optional)</li> <li>Updated Vorbis encoder to OggEnc v2.88 (2015-09-10), using libvorbis v1.3.5 and aoTuV b6.03_2015</li> <li>Updated MediaInfo to v0.7.78 (2015-10-02), compiled with ICL 15.0 and MSVC 12.0</li> <li>Fixed resampling bug with Vorbis encoder, regression in OggEnc v2.87</li> <li>Fixed creation of Monkey's Audio (APE) files, when <strong>no</strong> meta data is being embedded</li> <li>Updated language files (big thank-you to all contributors !!!)</li> </ul> <h2 id="lamexp-v4.12-2015-10-23" class="unnumbered">LameXP v4.12 [2015-10-23]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2013 with Update-5</li> <li>Updated Qt runtime libraries to v4.8.7 Final (2015-05-25), compiled with MSVC 12.0</li> <li>Added support for building LameXP and MUtilities with Visual Studio 2015</li> <li>Added Hungarian translation, contributed by Zityi's Translator Team &lt;<script type="text/javascript">
+</script><noscript>&#x6d;&#x75;&#108;&#100;&#x65;&#114;&#50;&#32;&#x61;&#116;&#32;&#x67;&#x6d;&#120;</noscript>&gt; | <a href="http://muldersoft.com/" class="uri">http://muldersoft.com/</a></h2> </header> <nav id="TOC"> <ul> <li><a href="#lamexp-v4.xx-history"><span class="toc-section-number">1</span> LameXP v4.xx History</a><ul> <li><a href="#lamexp-v4.16-unreleased">LameXP v4.16 [UNRELEASED]</a></li> <li><a href="#lamexp-v4.15-2017-05-31">LameXP v4.15 [2017-05-31]</a></li> <li><a href="#lamexp-v4.14-2016-11-19">LameXP v4.14 [2016-11-19]</a></li> <li><a href="#lamexp-v4.13-2015-12-12">LameXP v4.13 [2015-12-12]</a></li> <li><a href="#lamexp-v4.12-2015-10-23">LameXP v4.12 [2015-10-23]</a></li> <li><a href="#lamexp-v4.11-2015-04-05">LameXP v4.11 [2015-04-05]</a></li> <li><a href="#lamexp-v4.10-2014-06-23">LameXP v4.10 [2014-06-23]</a></li> <li><a href="#lamexp-v4.09-2014-01-26">LameXP v4.09 [2014-01-26]</a></li> <li><a href="#lamexp-v4.08-2013-09-04">LameXP v4.08 [2013-09-04]</a></li> <li><a href="#lamexp-v4.07-2013-04-28">LameXP v4.07 [2013-04-28]</a></li> <li><a href="#lamexp-v4.06-2012-11-04">LameXP v4.06 [2012-11-04]</a></li> <li><a href="#lamexp-v4.05-2012-09-03">LameXP v4.05 [2012-09-03]</a></li> <li><a href="#lamexp-v4.04-2012-04-26">LameXP v4.04 [2012-04-26]</a></li> <li><a href="#lamexp-v4.03-2011-11-12">LameXP v4.03 [2011-11-12]</a></li> <li><a href="#lamexp-v4.02-2011-06-14">LameXP v4.02 [2011-06-14]</a></li> <li><a href="#lamexp-v4.01-2011-04-04">LameXP v4.01 [2011-04-04]</a></li> <li><a href="#lamexp-v4.00-2011-02-21">LameXP v4.00 [2011-02-21]</a></li> </ul></li> <li><a href="#lamexp-v3.xx-history"><span class="toc-section-number">2</span> LameXP v3.xx History</a><ul> <li><a href="#lamexp-v3.19-2010-07-12">LameXP v3.19 [2010-07-12]</a></li> <li><a href="#lamexp-v3.18-2010-05-08">LameXP v3.18 [2010-05-08]</a></li> <li><a href="#lamexp-v3.17-2010-02-21">LameXP v3.17 [2010-02-21]</a></li> <li><a href="#lamexp-v3.16-2010-01-26">LameXP v3.16 [2010-01-26]</a></li> <li><a href="#lamexp-v3.15-2009-12-24">LameXP v3.15 [2009-12-24]</a></li> <li><a href="#lamexp-v3.14-2009-12-01">LameXP v3.14 [2009-12-01]</a></li> <li><a href="#lamexp-v3.13-2009-10-21">LameXP v3.13 [2009-10-21]</a></li> <li><a href="#lamexp-v3.12-2009-09-19">LameXP v3.12 [2009-09-19]</a></li> <li><a href="#lamexp-v3.11-2009-06-22">LameXP v3.11 [2009-06-22]</a></li> <li><a href="#lamexp-v3.10-2009-06-11">LameXP v3.10 [2009-06-11]</a></li> <li><a href="#lamexp-v3.09-2009-06-01">LameXP v3.09 [2009-06-01]</a></li> <li><a href="#lamexp-v3.08-2009-03-05">LameXP v3.08 [2009-03-05]</a></li> <li><a href="#lamexp-v3.07-2008-12-24">LameXP v3.07 [2008-12-24]</a></li> <li><a href="#lamexp-v3.06-2008-10-26">LameXP v3.06 [2008-10-26]</a></li> <li><a href="#lamexp-v3.05-2008-10-11">LameXP v3.05 [2008-10-11]</a></li> <li><a href="#lamexp-v3.04-2008-09-26">LameXP v3.04 [2008-09-26]</a></li> <li><a href="#lamexp-v3.03-2008-08-12">LameXP v3.03 [2008-08-12]</a></li> <li><a href="#lamexp-v3.02-2008-08-06">LameXP v3.02 [2008-08-06]</a></li> <li><a href="#lamexp-v3.01-2008-08-01">LameXP v3.01 [2008-08-01]</a></li> <li><a href="#lamexp-v3.00-2008-07-04">LameXP v3.00 [2008-07-04]</a></li> </ul></li> <li><a href="#lamexp-v2.xx-history"><span class="toc-section-number">3</span> LameXP v2.xx History</a><ul> <li><a href="#lamexp-v2.03-2007-08-17">LameXP v2.03 [2007-08-17]</a></li> <li><a href="#lamexp-v2.00-2007-02-19">LameXP v2.00 [2007-02-19]</a></li> </ul></li> <li><a href="#lamexp-v1.xx-history"><span class="toc-section-number">4</span> LameXP v1.xx History</a><ul> <li><a href="#lamexp-v1.00-2004-12-10">LameXP v1.00 [2004-12-10]</a></li> </ul></li> </ul> </nav> <h1 id="lamexp-v4.xx-history"><span class="header-section-number">1</span> LameXP v4.xx History</h1> <h2 id="lamexp-v4.16-unreleased" class="unnumbered">LameXP v4.16 [UNRELEASED]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2017 with Update-5</li> <li>Updated LAME encoder to v3.100 Final (2017-10-13), compiled with ICL 18.0 and MSVC 14.1</li> <li>Updated mpg123 decoder to v1.25.8 (2017-12-02), compiled with GCC 7.2.0</li> <li>Updated Opus encoder/decoder libraries to v1.2.1-35 (2017-11-16) and Opus-Tools to v0.1.10-9 (2017-05-25)</li> <li>Updated Monkey's Audio binary to v4.33 (2017-12-01), compiled with ICL 18.0 and MSVC 15.5</li> <li>Updated FAAD decoder to v2.8.6 (2017-10-10), compiled with ICL 18.0 and MSVC 15.5</li> <li>Updated ALAC decoder to refalac v1.64 (2017-05-19), compiled with ICL 18.0 and MSVC 15.5</li> <li>Updated WavPack decoder to v5.1.0 (2017-01-20), compiled with ICL 18.0 and MSVC 15.5</li> <li>Updated MediaInfo to v17.10 (2017-11-02), compiled with ICL 18.0 and MSVC 14.1</li> <li>Updated GnuPG to v1.4.22 (2017-07-19), compiled with GCC 7.2.0</li> <li>Updated QAAC add-in (separate download) to QAAC v2.64 (2017-07-19), compiled with ICL 18.0 and MSVC 15.5</li> <li>Complete re-write of MediaInfo parsing code, now using XML-based MediaInfo output</li> <li>Improved auto-detection of max. parallel instances on computers with &quot;fast&quot; (i.e. SSD or similar) drive</li> <li>Some improvements to output file name generation code</li> <li>Added &quot;Visual Elements&quot; manifest for Windows 8+ &quot;Start&quot; screen tile</li> </ul> <h2 id="lamexp-v4.15-2017-05-31" class="unnumbered">LameXP v4.15 [2017-05-31]</h2> <ul> <li>Fixed a bug in auto-rename feature, that caused problems when a meta-tag contained path separators</li> <li>Fixed included MediaInfo binary not working on processor <em>without</em> SSE2 support</li> <li>Improved file name generation from meta-tags containing characters that are forbidden in file names</li> <li>Some improvements for &quot;high DPI&quot; screens: Adjust initial window size according to DPI setting</li> <li>Updated Opus encoder/decoder libraries to v1.2-beta (2017-05-26) and Opus-Tools to v0.1.10 (2017-05-25)</li> <li>Updated MediaInfo to v0.7.95 (2017-05-04), compiled with ICL 17.0 and MSVC 12.0</li> <li>Updated SoX to v14.4.2 (2015-02-22) with Dynamic Audio Normalizer v2.10 (2017-04-14) effect included</li> <li>Updated mpg123 decoder to v1.24.0 (2017-03-02), compiled with GCC 6.3.0</li> <li>Updated FAAD decoder to v2.7 from CVS in order to include latest libFAAD fixes (2016-11-11)</li> <li>Updated Monkey's Audio binary to v4.25 (2017-03-12), compiled with ICL 17.0 and MSVC 14.0</li> <li>Some tweaks to the auto-update function in order to speed-up the update check in most situations</li> </ul> <h2 id="lamexp-v4.14-2016-11-19" class="unnumbered">LameXP v4.14 [2016-11-19]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2015 with Update-3</li> <li>Fixed the location of temporary intermediate files for SoX-based audio effects</li> <li>Fixed embedding of meta tags with OggEnc2 when reading directly from OGG/FLAC input file</li> <li>Fixed encoding of <em>non</em>-Stereo sources with NeroAAC, when &quot;HE-AAC <em>v2</em> (SBR+PS)&quot; is selected</li> <li>Fixed a bug that would cause the encoding job to fail, when an audio filter is <em>skipped</em></li> <li>Enabled the &quot;built-in&quot; resampler for QAAC encoder</li> <li>The &quot;Algorithm Quality&quot; slider now also affects the QAAC encoder</li> <li>Added &quot;AVX&quot; (Advanced Vector Extensions) to CPU feature detection code</li> <li>Updated Opus encoder/decoder libraries to v1.2-alpha and Opus-Tools to v0.1.9 (2016-11-04)</li> <li>Updated LAME encoder to v3.100 Alpha-2 (2016-01-29), compiled with ICL 15.0 and MSVC 12.0</li> <li>Updated FLAC encoder/decoder to v1.3.1 (2016-10-04), compiled with ICL 17.0 and MSVC 12.0</li> <li>Updated MediaInfo to v0.7.90 (2016-10-31), compiled with ICL 17.0 and MSVC 12.0</li> <li>Updated mpg123 decoder to v1.23.8 (2016-09-27), compiled with GCC 6.2.0</li> <li>Updated ALAC decoder to refalac v1.61 (2016-10-02)</li> <li>Updated WavPack decoder to v4.80.0 (2016-03-28), compiled with ICL 15.0 and MSVC 12.0</li> <li>Updated GnuPG to v1.4.21 (2016-08-17), compiled with GCC 6.1.0</li> <li>Updated QAAC add-in to the to QAAC v2.61 (2016-10-02)</li> <li>Updated FhgAacEnc add-in to &quot;Case&quot; edition (2015-10-24)</li> <li>Improved auto-update function (faster Internet connectivity check)</li> <li>Updated language files (big thank-you to all contributors !!!)</li> </ul> <h2 id="lamexp-v4.13-2015-12-12" class="unnumbered">LameXP v4.13 [2015-12-12]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2015 with Update-1</li> <li>Apply the original file's &quot;creation&quot; and &quot;last modified&quot; date/time to the output file (optional)</li> <li>Updated Vorbis encoder to OggEnc v2.88 (2015-09-10), using libvorbis v1.3.5 and aoTuV b6.03_2015</li> <li>Updated MediaInfo to v0.7.78 (2015-10-02), compiled with ICL 15.0 and MSVC 12.0</li> <li>Fixed resampling bug with Vorbis encoder, regression in OggEnc v2.87</li> <li>Fixed creation of Monkey's Audio (APE) files, when <strong>no</strong> meta data is being embedded</li> <li>Updated language files (big thank-you to all contributors !!!)</li> </ul> <h2 id="lamexp-v4.12-2015-10-23" class="unnumbered">LameXP v4.12 [2015-10-23]</h2> <ul> <li>Upgraded build environment to Microsoft Visual Studio 2013 with Update-5</li> <li>Updated Qt runtime libraries to v4.8.7 Final (2015-05-25), compiled with MSVC 12.0</li> <li>Added support for building LameXP and MUtilities with Visual Studio 2015</li> <li>Added Hungarian translation, contributed by Zityi's Translator Team &lt;<script type="text/javascript">
 <!--
 h='&#x67;&#x6d;&#x61;&#x69;&#108;&#46;&#x63;&#x6f;&#x6d;';a='&#64;';n='&#122;&#x69;&#116;&#x79;&#x69;&#x73;&#x6f;&#102;&#116;';e=n+a+h;
 document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\/'+'a'+'>');
index 96898b9..daa502e 100644 (file)
@@ -11,6 +11,7 @@ LameXP Audio-Encoder Front-End &ndash; Changelog
 * Updated mpg123 decoder to v1.25.8 (2017-12-02), compiled with GCC 7.2.0
 * Updated Opus encoder/decoder libraries to v1.2.1-35 (2017-11-16) and Opus-Tools to v0.1.10-9 (2017-05-25)
 * Updated Monkey's Audio binary to v4.33 (2017-12-01), compiled with ICL 18.0 and MSVC 15.5
+* Updated FAAD decoder to v2.8.6 (2017-10-10), compiled with ICL 18.0 and MSVC 15.5
 * Updated ALAC decoder to refalac v1.64 (2017-05-19), compiled with ICL 18.0 and MSVC 15.5
 * Updated WavPack decoder to v5.1.0 (2017-01-20), compiled with ICL 18.0 and MSVC 15.5
 * Updated MediaInfo to v17.10 (2017-11-02), compiled with ICL 18.0 and MSVC 14.1
diff --git a/etc/Patches/FAAD-v2.8.6-Win32-BufferOverflow-Fix.diff b/etc/Patches/FAAD-v2.8.6-Win32-BufferOverflow-Fix.diff
new file mode 100644 (file)
index 0000000..6248043
--- /dev/null
@@ -0,0 +1,51 @@
+ frontend/main.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/frontend/main.c b/frontend/main.c
+index 34d4eab..0453bbe 100644
+--- a/frontend/main.c
++++ b/frontend/main.c
+@@ -70,6 +70,7 @@
+ #define MAX_CHANNELS 6 /* make this higher to support files with
+                           more channels */
++#define MAX_PERCENTS 384
+ static int quiet = 0;
+@@ -469,7 +470,7 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
+     NeAACDecFrameInfo frameInfo;
+     NeAACDecConfigurationPtr config;
+-    char percents[200];
++    char percents[MAX_PERCENTS];
+     int percent, old_percent = -1;
+     int bread, fileread;
+     int header_type = 0;
+@@ -734,7 +735,7 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
+         if (percent > old_percent)
+         {
+             old_percent = percent;
+-            sprintf(percents, "%d%% decoding %s.", percent, aacfile);
++            snprintf(percents, MAX_PERCENTS, "%d%% decoding %s.", percent, aacfile);
+             faad_fprintf(stderr, "%s\r", percents);
+ #ifdef _WIN32
+             SetConsoleTitle(percents);
+@@ -802,7 +803,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
+     NeAACDecFrameInfo frameInfo;
+     mp4AudioSpecificConfig mp4ASC;
+-    char percents[200];
++    char percents[MAX_PERCENTS];
+     int percent, old_percent = -1;
+     int first_time = 1;
+@@ -979,7 +980,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
+         if (percent > old_percent)
+         {
+             old_percent = percent;
+-            sprintf(percents, "%d%% decoding %s.", percent, mp4file);
++            snprintf(percents, MAX_PERCENTS, "%d%% decoding %s.", percent, mp4file);
+             faad_fprintf(stderr, "%s\r", percents);
+ #ifdef _WIN32
+             SetConsoleTitle(percents);
diff --git a/etc/Patches/FAAD-v2.8.6-Win32-ByteSwap-Fix.diff b/etc/Patches/FAAD-v2.8.6-Win32-ByteSwap-Fix.diff
new file mode 100644 (file)
index 0000000..9607d76
--- /dev/null
@@ -0,0 +1,40 @@
+ frontend/mp4read.c | 18 +++++++++++++++---
+ 1 file changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/frontend/mp4read.c b/frontend/mp4read.c
+index 9d92bf5..c8ca530 100644
+--- a/frontend/mp4read.c
++++ b/frontend/mp4read.c
+@@ -45,17 +45,29 @@ mp4config_t mp4config = { 0 };
+ static FILE *g_fin = NULL;
+-static inline uint32_t bswap32(uint32_t u32)
++static inline uint32_t bswap32(const uint32_t u32)
+ {
+ #ifndef WORDS_BIGENDIAN
++#ifdef _MSC_VER
++      return _byteswap_ulong(u32);
++#else
+     return __builtin_bswap32(u32);
+ #endif
++#else
++      return u32;
++#endif
+ }
+-static inline uint16_t bswap16(uint16_t u16)
++static inline uint16_t bswap16(const uint16_t u16)
+ {
+ #ifndef WORDS_BIGENDIAN
+-    return __builtin_bswap16(u16);
++#ifdef _MSC_VER
++      return _byteswap_ushort(u16);
++#else
++      return __builtin_bswap16(u16);
++#endif
++#else
++      return u16;
+ #endif
+ }
diff --git a/etc/Patches/FAAD-v2.8.6-Win32-Flush-Fix.diff b/etc/Patches/FAAD-v2.8.6-Win32-Flush-Fix.diff
new file mode 100644 (file)
index 0000000..1d6ba66
--- /dev/null
@@ -0,0 +1,26 @@
+ frontend/main.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/frontend/main.c b/frontend/main.c
+index d433253..34d4eab 100644
+--- a/frontend/main.c
++++ b/frontend/main.c
+@@ -80,11 +80,16 @@ static void faad_fprintf(FILE *stream, const char *fmt, ...)
+     if (!quiet)
+     {
+         va_start(ap, fmt);
+-
+         vfprintf(stream, fmt, ap);
+-
+         va_end(ap);
+     }
++
++#ifdef _WIN32
++      if (!_isatty(_fileno(stream)))
++      {
++              fflush(stream); /*ensure real-time progress output on Win32*/
++      }
++#endif
+ }
+ /* FAAD file buffering routines */
diff --git a/etc/Patches/FAAD-v2.8.6-Win32-Unicode-Support.diff b/etc/Patches/FAAD-v2.8.6-Win32-Unicode-Support.diff
new file mode 100644 (file)
index 0000000..96a1170
--- /dev/null
@@ -0,0 +1,408 @@
+ frontend/audio.c           |   7 +-
+ frontend/main.c            |  34 ++++++---
+ frontend/mp4read.c         |   7 +-
+ frontend/unicode_support.c | 172 +++++++++++++++++++++++++++++++++++++++++++++
+ frontend/unicode_support.h |  50 +++++++++++++
+ 5 files changed, 258 insertions(+), 12 deletions(-)
+
+diff --git a/frontend/audio.c b/frontend/audio.c
+index 9ab7a2a..0d94c18 100644
+--- a/frontend/audio.c
++++ b/frontend/audio.c
+@@ -38,6 +38,9 @@
+ #include <neaacdec.h>
+ #include <stdint.h>
++#ifdef _WIN32
++#include "unicode_support.h"
++#endif
+ #include "audio.h"
+@@ -74,13 +77,13 @@ audio_file *open_audio_file(char *infile, int samplerate, int channels,
+     if(infile[0] == '-')
+     {
+ #ifdef _WIN32
+-        setmode(fileno(stdout), O_BINARY);
++        _setmode(_fileno(stdout), O_BINARY);
+ #endif
+         aufile->sndfile = stdout;
+         aufile->toStdio = 1;
+     } else {
+         aufile->toStdio = 0;
+-        aufile->sndfile = fopen(infile, "wb");
++        aufile->sndfile = faad_fopen(infile, "wb");
+     }
+     if (aufile->sndfile == NULL)
+diff --git a/frontend/main.c b/frontend/main.c
+index deaa039..d433253 100644
+--- a/frontend/main.c
++++ b/frontend/main.c
+@@ -35,9 +35,11 @@
+ #ifdef _WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
++#include <io.h>
+ #ifndef __MINGW32__
+ #define off_t __int64
+ #endif
++#include "unicode_support.h"
+ #else
+ #include <time.h>
+ #endif
+@@ -479,7 +481,7 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
+     if (adts_out)
+     {
+-        adtsFile = fopen(adts_fn, "wb");
++        adtsFile = faad_fopen(adts_fn, "wb");
+         if (adtsFile == NULL)
+         {
+             faad_fprintf(stderr, "Error opening file: %s\n", adts_fn);
+@@ -491,12 +493,12 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
+     {
+       b.infile = stdin;
+ #ifdef _WIN32
+-        setmode(fileno(stdin), O_BINARY);
++        _setmode(_fileno(stdin), O_BINARY);
+ #endif
+     } else
+     {
+-      b.infile = fopen(aacfile, "rb");
++      b.infile = faad_fopen(aacfile, "rb");
+       if (b.infile == NULL)
+       {
+           /* unable to open file */
+@@ -833,7 +835,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
+     if (adts_out)
+     {
+-        adtsFile = fopen(adts_fn, "wb");
++        adtsFile = faad_fopen(adts_fn, "wb");
+         if (adtsFile == NULL)
+         {
+             faad_fprintf(stderr, "Error opening file: %s\n", adts_fn);
+@@ -953,7 +955,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
+                         outputFormat, fileType, aacChannelConfig2wavexChannelMask(&frameInfo));
+                 } else {
+ #ifdef _WIN32
+-                    setmode(fileno(stdout), O_BINARY);
++                    _setmode(_fileno(stdout), O_BINARY);
+ #endif
+                     aufile = open_audio_file("-", frameInfo.samplerate, frameInfo.channels,
+                         outputFormat, fileType, aacChannelConfig2wavexChannelMask(&frameInfo));
+@@ -1007,7 +1009,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
+     return frameInfo.error;
+ }
+-int main(int argc, char *argv[])
++static int faad_main(int argc, char *argv[])
+ {
+     int result;
+     int infoOnly = 0;
+@@ -1265,13 +1267,13 @@ int main(int argc, char *argv[])
+       readFromStdin = 1;
+       hMP4File  = stdin;
+ #ifdef _WIN32
+-        setmode(fileno(stdin), O_BINARY);
++        _setmode(_fileno(stdin), O_BINARY);
+ #endif
+     } else {
+       mp4file = 0;
+-      hMP4File = fopen(aacFileName, "rb");
++      hMP4File = faad_fopen(aacFileName, "rb");
+       if (!hMP4File)
+       {
+           faad_fprintf(stderr, "Error opening file: %s\n", aacFileName);
+@@ -1338,3 +1340,19 @@ int main(int argc, char *argv[])
+     return 0;
+ }
++
++int main(int argc, char *argv[])
++{
++#ifdef _WIN32
++      int argc_utf8, exit_code;
++      char **argv_utf8;
++      init_console_utf8(stderr);
++      init_commandline_arguments_utf8(&argc_utf8, &argv_utf8);
++      exit_code = faad_main(argc_utf8, argv_utf8);
++      free_commandline_arguments_utf8(&argc_utf8, &argv_utf8);
++      uninit_console_utf8();
++      return exit_code;
++#else
++      return faad_main(argc, argv);
++#endif
++}
+\ No newline at end of file
+diff --git a/frontend/mp4read.c b/frontend/mp4read.c
+index c8ca530..be8d591 100644
+--- a/frontend/mp4read.c
++++ b/frontend/mp4read.c
+@@ -24,6 +24,9 @@
+ #include <time.h>
+ #include <limits.h>
++#ifdef _WIN32
++#include "unicode_support.h"
++#endif
+ #include "mp4read.h"
+ enum ATOM_TYPE
+@@ -939,7 +942,7 @@ int mp4read_seek(int framenum)
+ static void mp4info(void)
+ {
+-    fprintf(stderr, "Modification Time:\t\%s", mp4time(mp4config.mtime));
++    fprintf(stderr, "Modification Time:\t\t%s", mp4time(mp4config.mtime));
+     fprintf(stderr, "Samplerate:\t\t%d\n", mp4config.samplerate);
+     fprintf(stderr, "Total samples:\t\t%d\n", mp4config.samples);
+     fprintf(stderr, "Total channels:\t\t%d\n", mp4config.channels);
+@@ -970,7 +973,7 @@ int mp4read_open(char *name)
+     mp4read_close();
+-    g_fin = fopen(name, "rb");
++    g_fin = faad_fopen(name, "rb");
+     if (!g_fin)
+         return ERR_FAIL;
+diff --git a/frontend/unicode_support.c b/frontend/unicode_support.c
+new file mode 100644
+index 0000000..96ea5a4
+--- /dev/null
++++ b/frontend/unicode_support.c
+@@ -0,0 +1,172 @@
++/* Copyright (c) 2004-2012 LoRd_MuldeR <mulder2@gmx.de>
++   File: unicode_support.c
++
++   This file was originally part of a patch included with LameXP,
++   released under the same license as the original audio tools.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions
++   are met:
++
++   - Redistributions of source code must retain the above copyright
++   notice, this list of conditions and the following disclaimer.
++
++   - Redistributions in binary form must reproduce the above copyright
++   notice, this list of conditions and the following disclaimer in the
++   documentation and/or other materials provided with the distribution.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
++   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++#if defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64
++
++#include "unicode_support.h"
++
++#include <windows.h>
++#include <io.h>
++
++static UINT g_old_output_cp = ((UINT)-1);
++
++char *utf16_to_utf8(const wchar_t *input)
++{
++      char *Buffer;
++      int BuffSize = 0, Result = 0;
++
++      BuffSize = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL);
++      Buffer = (char*) malloc(sizeof(char) * BuffSize);
++      if(Buffer)
++      {
++              Result = WideCharToMultiByte(CP_UTF8, 0, input, -1, Buffer, BuffSize, NULL, NULL);
++      }
++
++      return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
++}
++
++char *utf16_to_ansi(const wchar_t *input)
++{
++      char *Buffer;
++      int BuffSize = 0, Result = 0;
++
++      BuffSize = WideCharToMultiByte(CP_ACP, 0, input, -1, NULL, 0, NULL, NULL);
++      Buffer = (char*) malloc(sizeof(char) * BuffSize);
++      if(Buffer)
++      {
++              Result = WideCharToMultiByte(CP_ACP, 0, input, -1, Buffer, BuffSize, NULL, NULL);
++      }
++
++      return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
++}
++
++wchar_t *utf8_to_utf16(const char *input)
++{
++      wchar_t *Buffer;
++      int BuffSize = 0, Result = 0;
++
++      BuffSize = MultiByteToWideChar(CP_UTF8, 0, input, -1, NULL, 0);
++      Buffer = (wchar_t*) malloc(sizeof(wchar_t) * BuffSize);
++      if(Buffer)
++      {
++              Result = MultiByteToWideChar(CP_UTF8, 0, input, -1, Buffer, BuffSize);
++      }
++
++      return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
++}
++
++void init_commandline_arguments_utf8(int *argc, char ***argv)
++{
++      int i, nArgs;
++      LPWSTR *szArglist;
++
++      szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
++
++      if(NULL == szArglist)
++      {
++              fprintf(stderr, "\nFATAL: CommandLineToArgvW failed\n\n");
++              exit(-1);
++      }
++
++      *argv = (char**) malloc(sizeof(char*) * nArgs);
++      *argc = nArgs;
++
++      if(NULL == *argv)
++      {
++              fprintf(stderr, "\nFATAL: Malloc failed\n\n");
++              exit(-1);
++      }
++      
++      for(i = 0; i < nArgs; i++)
++      {
++              (*argv)[i] = utf16_to_utf8(szArglist[i]);
++              if(NULL == (*argv)[i])
++              {
++                      fprintf(stderr, "\nFATAL: utf16_to_utf8 failed\n\n");
++                      exit(-1);
++              }
++      }
++
++      LocalFree(szArglist);
++}
++
++void free_commandline_arguments_utf8(int *argc, char ***argv)
++{
++      int i = 0;
++      
++      if(*argv != NULL)
++      {
++              for(i = 0; i < *argc; i++)
++              {
++                      if((*argv)[i] != NULL)
++                      {
++                              free((*argv)[i]);
++                              (*argv)[i] = NULL;
++                      }
++              }
++              free(*argv);
++              *argv = NULL;
++      }
++}
++
++FILE *fopen_utf8(const char *filename_utf8, const char *mode_utf8)
++{
++      FILE *ret = NULL;
++      wchar_t *filename_utf16 = utf8_to_utf16(filename_utf8);
++      wchar_t *mode_utf16 = utf8_to_utf16(mode_utf8);
++      
++      if(filename_utf16 && mode_utf16)
++      {
++              ret = _wfopen(filename_utf16, mode_utf16);
++      }
++
++      if(filename_utf16) free(filename_utf16);
++      if(mode_utf16) free(mode_utf16);
++
++      return ret;
++}
++
++void init_console_utf8(FILE *const stream)
++{
++      if (_isatty(_fileno(stream)))
++      {
++              g_old_output_cp = GetConsoleOutputCP();
++              SetConsoleOutputCP(CP_UTF8);
++      }
++}
++
++void uninit_console_utf8(void)
++{
++      if(g_old_output_cp != ((UINT)-1))
++      {
++              SetConsoleOutputCP(g_old_output_cp);
++      }
++}
++
++#endif
+\ No newline at end of file
+diff --git a/frontend/unicode_support.h b/frontend/unicode_support.h
+new file mode 100644
+index 0000000..eb21877
+--- /dev/null
++++ b/frontend/unicode_support.h
+@@ -0,0 +1,50 @@
++/* Copyright (c) 2004-2012 LoRd_MuldeR <mulder2@gmx.de>
++   File: unicode_support.h
++
++   This file was originally part of a patch included with LameXP,
++   released under the same license as the original audio tools.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions
++   are met:
++
++   - Redistributions of source code must retain the above copyright
++   notice, this list of conditions and the following disclaimer.
++
++   - Redistributions in binary form must reproduce the above copyright
++   notice, this list of conditions and the following disclaimer in the
++   documentation and/or other materials provided with the distribution.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
++   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++#ifndef UNICODE_SUPPORT_H_INCLUDED
++#define UNICODE_SUPPORT_H_INCLUDED
++
++#include <stdio.h>
++
++char *utf16_to_utf8(const wchar_t *input);
++char *utf16_to_ansi(const wchar_t *input);
++wchar_t *utf8_to_utf16(const char *input);
++void init_commandline_arguments_utf8(int *argc, char ***argv);
++void free_commandline_arguments_utf8(int *argc, char ***argv);
++FILE *fopen_utf8(const char *filename_utf8, const char *mode_utf8);
++void init_console_utf8(FILE *const stream);
++void uninit_console_utf8(void);
++
++#ifdef _WIN32
++#define faad_fopen(X,Y) fopen_utf8((X),(Y))
++#else
++#define faad_fopen(X,Y) fopen((X),(Y))
++#endif
++
++#endif //UNICODE_SUPPORT_H_INCLUDED
diff --git a/res/Tools.faad-avx.qrc b/res/Tools.faad-avx.qrc
new file mode 100644 (file)
index 0000000..56f4baa
--- /dev/null
@@ -0,0 +1,2 @@
+<!DOCTYPE RCC>
+<RCC version="1.0"><qresource><file>tools/faad.avx.exe</file></qresource></RCC>
index bf535f7..00f702d 100644 (file)
     <file>tools/avs2wav.exe</file>
     <file>tools/dcaenc.exe</file>
     <file>tools/elevator.exe</file>
+    <file>tools/faad.avx.exe</file>
     <file>tools/faad.i686.exe</file>
     <file>tools/faad.sse2.exe</file>
     <file>tools/flac.x64-avx.exe</file>
diff --git a/res/tools/faad.avx.exe b/res/tools/faad.avx.exe
new file mode 100644 (file)
index 0000000..80c7727
Binary files /dev/null and b/res/tools/faad.avx.exe differ
index 2b03b84..b0d4668 100644 (file)
Binary files a/res/tools/faad.i686.exe and b/res/tools/faad.i686.exe differ
index 6138216..94a9713 100644 (file)
Binary files a/res/tools/faad.sse2.exe and b/res/tools/faad.sse2.exe differ
index 6b01853..b90d70b 100644 (file)
@@ -35,7 +35,7 @@
 #define VER_LAMEXP_MINOR_LO                                    6
 #define VER_LAMEXP_TYPE                                                Beta
 #define VER_LAMEXP_PATCH                                       2
-#define VER_LAMEXP_BUILD                                       2078
+#define VER_LAMEXP_BUILD                                       2079
 #define VER_LAMEXP_CONFG                                       2002
 
 ///////////////////////////////////////////////////////////////////////////////
index 91f84a1..f3e8f5f 100644 (file)
@@ -721,9 +721,9 @@ void AboutDialog::initSoftwareTab(void)
        moreAboutText += makeToolText
        (
                tr("FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder"),
-               "faad.exe", "v?.?",
+               "faad.exe", "v?.?.?",
                tr("Released under the terms of the GNU General Public License."),
-               "http://www.audiocoding.com/"
+               "https://sourceforge.net/projects/faac/"        //"http://www.audiocoding.com/"
        );
        moreAboutText += makeToolText
        (
index 3debc47..f140e0c 100644 (file)
@@ -71,8 +71,9 @@ g_lamexp_tools[] =
        {"4558728999a05f12fe88566e8308cba0ada200814c2a1bfe2507f49faf8f3994b0d52a829148f5c6321d24faa2718439", CPU_TYPE_ALL_ALL, "avs2wav.exe", 13, ""},
        {"07834b1b8ecac2f3db79ad048005eca3a284cb759e15d399eb1a560a403122e20db5f08e60319759b8463aeef2410d02", CPU_TYPE_ALL_ALL, "dcaenc.exe", 20120419, ""},
        {"7c249f507b96967bedabdd7e631638807a7595ebff58eaaadf63530783d515eda9660bc2b1a0457fddae7e3eaef8a074", CPU_TYPE_ALL_ALL, "elevator.exe", UINT_MAX, ""},
-       {"5c4a5cdd708b5857bcb064558be81a2dfb16401e796b296f6eee7c63042acbeae12e1e2f1f3d0fd096eaf73201b54e10", CPU_TYPE_ALL_GEN, "faad.i686.exe", 27, ""},
-       {"72447794cf411e1e4ce71facf5f60023f001d203894cf40185a0ee13e144e93d72ac99f2ed30a9168450ce5bf882f99f", CPU_TYPE_ALL_SSX, "faad.sse2.exe", 27, ""},
+       {"bb3dd1f872dd5a3110ee1f8199a8318d54cd872b602fc2716e2acfb3eb803c241c7d39b0133462ac0534455309723869", CPU_TYPE_ALL_GEN, "faad.i686.exe", 286, ""},
+       {"86c8e6b8effe8325c14c9b3705494429a5bd1e39a2080bdfa8f0f6bf0a9ae1827c5c5c371b568dc788249ef82143ecd1", CPU_TYPE_ALL_SSE, "faad.sse2.exe", 286, ""},
+       {"5a45cd99ed8ee5df8b4914f5017b1345174c0e896f04ee9dd9aa78eaac712f1a9d807019f31a6138545ec8803d4f005c", CPU_TYPE_ALL_AVX, "faad.avx.exe",  286, ""},
        {"735654150f5d123660aa8493d322a7181cfd6d6c3e584a53c94c27a5163659b6aab3dd84230f684f8cec3cb565223482", CPU_TYPE_X86_GEN, "flac.x86-i686.exe", 132, ""},
        {"2ee22f174131615cf342cb3031a4c93adfff0997d84eb1b6794c133c8f19d109c43e67a3f60638705c7afb93427a07f8", CPU_TYPE_X86_SSX, "flac.x86-sse2.exe", 132, ""},
        {"323ba94d1d3a8f82f4e5a6adf859d0f11d7b0c69fa0254e620724f879edd9d7017e3d2fa78ffe0a615539d8798606a46", CPU_TYPE_X64_NVX, "flac.x64-sse2.exe", 132, ""},