1
0
mirror of https://github.com/nu774/fdkaac.git synced 2025-06-05 23:29:14 +02:00

11 Commits

Author SHA1 Message Date
f2f9c1b4bb bump version 1.0.0 2018-09-04 02:04:36 +09:00
836367a7fe Fix LD/ELD issue: priming samples are too short to be discarded
When discarded, cannot reconstruct the beginning.
Now we changed to activate smartpadding only for LC/HE/HEv2.
(padding is not nice for low delay codec anyway)

LD and ELD are two short
2018-09-04 01:30:08 +09:00
ca65cffdd3 FDKv2 API change: encoderDelay -> nDelay/nDelayCore 2018-09-03 22:59:24 +09:00
36424b121c update MSVC projects for FDKv2 2018-09-03 20:58:17 +09:00
2329b4b1eb use different IntDir for fdk-aac build 2018-09-03 20:27:42 +09:00
4c963ef139 remove zombies from fdk-aac.vcxproj.filters 2018-09-03 20:26:32 +09:00
3f7b6abd20 fix: -L option was not working (resulted in segfault) 2018-09-03 20:25:28 +09:00
4571d9d76a MSVC projects: update for VS2017 2017-03-16 20:51:30 +09:00
4682fe4961 address issue#26
try to link with libcharset when locale_charset() is not present in
libiconv
2017-01-16 15:20:09 +09:00
c37edc6051 remove aacenc_hcr.* from MSVC project 2016-08-27 23:51:48 +09:00
07c06b4c3e update ChangeLog 2016-08-26 21:47:20 +09:00
9 changed files with 186 additions and 83 deletions

View File

@ -1,6 +1,44 @@
2016-08-26 nu774 <honeycomb77@gmail.com>
* update ChangeLog [HEAD -> master]
* bump [origin/master]
* Ticket #23: quit supporting MPEG-2 AOT
2016-08-25 nu774 <honeycomb77@gmail.com>
* fix libfdkaac encoder version check for SBR_RATIO availability
* Use our SBR signaling implementation on old libfdkaac
2015-10-10 nu774 <honeycomb77@gmail.com>
* improve MSVC project
2015-09-21 nu774 <honeycomb77@gmail.com>
* fix indents
* update compat layer, mainly for MSVC14 issue
2015-07-22 nu774 <honeycomb77@gmail.com>
* add platformtoolset in vcxproj
* fix build issue on MSVC14
2015-06-12 nu774 <honeycomb77@gmail.com>
* remove an unused variable decl
* remove an unused variable decl
* m4af: move internal struct m4af_itmf_entry_t from header
2015-02-14 nu774 <honeycomb77@gmail.com> 2015-02-14 nu774 <honeycomb77@gmail.com>
* update ChangeLog [HEAD] * update ChangeLog
* bump version [v0.6.2] * bump version [v0.6.2]
@ -10,9 +48,9 @@
2014-09-13 nu774 <honeycomb77@gmail.com> 2014-09-13 nu774 <honeycomb77@gmail.com>
* update ChangeLog [origin/master] * update ChangeLog
* bump version * bump version [v0.6.1]
2014-09-12 nu774 <honeycomb77@gmail.com> 2014-09-12 nu774 <honeycomb77@gmail.com>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
@ -24,10 +24,13 @@
<RootNamespace>fdk-aac</RootNamespace> <RootNamespace>fdk-aac</RootNamespace>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath14)' != ''">v140_xp</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '15.0'">v141_xp</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath12)' != ''">v120_xp</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '14.0'">v140_xp</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath11)' != ''">v110_xp</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '12.0'">v120_xp</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == ''">v100</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '11.0'">v110_xp</PlatformToolset>
</PropertyGroup>
<PropertyGroup>
<IntDir>fdk-aac\$(Platform)\$(Configuration)</IntDir>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
@ -50,7 +53,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>WIN32;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../fdk-aac/libaacenc/include;../fdk-aac/libFDK/include;../fdk-aac/libMpegTPEnc/include;../fdk-aac/libPCMutils/include;../fdk-aac/libSBRenc/include;../fdk-aac/libSYS/include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../fdk-aac/libaacenc/include;../fdk-aac/libFDK/include;../fdk-aac/libMpegTPEnc/include;../fdk-aac/libPCMutils/include;../fdk-aac/libSACenc/include;../fdk-aac/libSBRenc/include;../fdk-aac/libSYS/include</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
@ -71,7 +74,6 @@
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\fdk-aac\libAACenc\src\aacenc.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\aacenc.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_hcr.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_lib.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_lib.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_pns.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_pns.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\aacEnc_ram.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\aacEnc_ram.cpp" />
@ -91,6 +93,7 @@
<ClCompile Include="..\fdk-aac\libAACenc\src\line_pe.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\line_pe.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\metadata_compressor.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\metadata_compressor.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\metadata_main.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\metadata_main.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\mps_main.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\ms_stereo.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\ms_stereo.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\noisedet.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\noisedet.cpp" />
<ClCompile Include="..\fdk-aac\libAACenc\src\pnsparam.cpp" /> <ClCompile Include="..\fdk-aac\libAACenc\src\pnsparam.cpp" />
@ -109,6 +112,8 @@
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_core.cpp" /> <ClCompile Include="..\fdk-aac\libFDK\src\FDK_core.cpp" />
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_crc.cpp" /> <ClCompile Include="..\fdk-aac\libFDK\src\FDK_crc.cpp" />
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_hybrid.cpp" /> <ClCompile Include="..\fdk-aac\libFDK\src\FDK_hybrid.cpp" />
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_lpc.cpp" />
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_matrixCalloc.cpp" />
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_tools_rom.cpp" /> <ClCompile Include="..\fdk-aac\libFDK\src\FDK_tools_rom.cpp" />
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_trigFcts.cpp" /> <ClCompile Include="..\fdk-aac\libFDK\src\FDK_trigFcts.cpp" />
<ClCompile Include="..\fdk-aac\libFDK\src\fft.cpp" /> <ClCompile Include="..\fdk-aac\libFDK\src\fft.cpp" />
@ -122,7 +127,20 @@
<ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_asc.cpp" /> <ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_asc.cpp" />
<ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_latm.cpp" /> <ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_latm.cpp" />
<ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_lib.cpp" /> <ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_lib.cpp" />
<ClCompile Include="..\fdk-aac\libPCMutils\src\pcmutils_lib.cpp" /> <ClCompile Include="..\fdk-aac\libPCMutils\src\pcm_utils.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_bitstream.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_delay.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_dmx_tdom_enh.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_filter.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_framewindowing.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_huff_tab.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_lib.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_nlc_enc.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_onsetdetect.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_paramextract.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_staticgain.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_tree.cpp" />
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_vectorfunctions.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\bit_sbr.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\bit_sbr.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\code_env.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\code_env.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\env_bit.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\env_bit.cpp" />
@ -136,19 +154,18 @@
<ClCompile Include="..\fdk-aac\libSBRenc\src\ps_main.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\ps_main.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\resampler.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\resampler.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbrenc_freq_sca.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\sbrenc_freq_sca.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbrenc_ram.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbrenc_rom.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_encoder.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_encoder.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_misc.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_misc.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_ram.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_rom.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\ton_corr.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\ton_corr.cpp" />
<ClCompile Include="..\fdk-aac\libSBRenc\src\tran_det.cpp" /> <ClCompile Include="..\fdk-aac\libSBRenc\src\tran_det.cpp" />
<ClCompile Include="..\fdk-aac\libSYS\src\conv_string.cpp" />
<ClCompile Include="..\fdk-aac\libSYS\src\genericStds.cpp" /> <ClCompile Include="..\fdk-aac\libSYS\src\genericStds.cpp" />
<ClCompile Include="..\fdk-aac\libSYS\src\syslib_channelMapDescr.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\fdk-aac\libAACenc\include\aacenc_lib.h" /> <ClInclude Include="..\fdk-aac\libAACenc\include\aacenc_lib.h" />
<ClInclude Include="..\fdk-aac\libAACenc\src\aacenc.h" /> <ClInclude Include="..\fdk-aac\libAACenc\src\aacenc.h" />
<ClInclude Include="..\fdk-aac\libAACenc\src\aacenc_hcr.h" />
<ClInclude Include="..\fdk-aac\libAACenc\src\aacenc_pns.h" /> <ClInclude Include="..\fdk-aac\libAACenc\src\aacenc_pns.h" />
<ClInclude Include="..\fdk-aac\libAACenc\src\aacEnc_ram.h" /> <ClInclude Include="..\fdk-aac\libAACenc\src\aacEnc_ram.h" />
<ClInclude Include="..\fdk-aac\libAACenc\src\aacEnc_rom.h" /> <ClInclude Include="..\fdk-aac\libAACenc\src\aacEnc_rom.h" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Source Files"> <Filter Include="Source Files">
@ -18,9 +18,6 @@
<ClCompile Include="..\fdk-aac\libAACenc\src\aacenc.cpp"> <ClCompile Include="..\fdk-aac\libAACenc\src\aacenc.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_hcr.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_lib.cpp"> <ClCompile Include="..\fdk-aac\libAACenc\src\aacenc_lib.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@ -171,9 +168,6 @@
<ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_lib.cpp"> <ClCompile Include="..\fdk-aac\libMpegTPEnc\src\tpenc_lib.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\fdk-aac\libPCMutils\src\pcmutils_lib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSBRenc\src\bit_sbr.cpp"> <ClCompile Include="..\fdk-aac\libSBRenc\src\bit_sbr.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@ -219,22 +213,73 @@
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_misc.cpp"> <ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_misc.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_ram.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbr_rom.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSBRenc\src\ton_corr.cpp"> <ClCompile Include="..\fdk-aac\libSBRenc\src\ton_corr.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\fdk-aac\libSBRenc\src\tran_det.cpp"> <ClCompile Include="..\fdk-aac\libSBRenc\src\tran_det.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\fdk-aac\libSYS\src\conv_string.cpp"> <ClCompile Include="..\fdk-aac\libSYS\src\genericStds.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\fdk-aac\libSYS\src\genericStds.cpp"> <ClCompile Include="..\fdk-aac\libPCMutils\src\pcm_utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbrenc_ram.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSBRenc\src\sbrenc_rom.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_bitstream.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_delay.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_dmx_tdom_enh.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_filter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_framewindowing.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_huff_tab.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_lib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_nlc_enc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_onsetdetect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_paramextract.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_staticgain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_tree.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSACenc\src\sacenc_vectorfunctions.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libAACenc\src\mps_main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libSYS\src\syslib_channelMapDescr.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_matrixCalloc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\fdk-aac\libFDK\src\FDK_lpc.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
@ -245,9 +290,6 @@
<ClInclude Include="..\fdk-aac\libAACenc\src\aacenc.h"> <ClInclude Include="..\fdk-aac\libAACenc\src\aacenc.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\fdk-aac\libAACenc\src\aacenc_hcr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\fdk-aac\libAACenc\src\aacenc_pns.h"> <ClInclude Include="..\fdk-aac\libAACenc\src\aacenc_pns.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>

View File

@ -24,10 +24,10 @@
<RootNamespace>fdkaac</RootNamespace> <RootNamespace>fdkaac</RootNamespace>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath14)' != ''">v140_xp</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '15.0'">v141_xp</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath12)' != ''">v120_xp</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '14.0'">v140_xp</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath11)' != ''">v110_xp</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '12.0'">v120_xp</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == ''">v100</PlatformToolset> <PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '11.0'">v110_xp</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
@ -55,11 +55,13 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
<PreBuildEvent> <PreBuildEvent>
<Command>copy ..\fdk-aac\libAACdec\include\aacdecoder_lib.h include\fdk-aac\ <Command>copy ..\fdk-aac\libAACdec\include\aacdecoder_lib.h include\fdk-aac\
copy ..\fdk-aac\libAACenc\include\aacenc_lib.h include\fdk-aac\ copy ..\fdk-aac\libAACenc\include\aacenc_lib.h include\fdk-aac\
copy ..\fdk-aac\libSYS\include\FDK_Audio.h include\fdk-aac\ copy ..\fdk-aac\libSYS\include\FDK_Audio.h include\fdk-aac\
copy ..\fdk-aac\libSYS\include\genericStds.h include\fdk-aac\ copy ..\fdk-aac\libSYS\include\genericStds.h include\fdk-aac\
copy ..\fdk-aac\libSYS\include\machine_type.h include\fdk-aac\ </Command> copy ..\fdk-aac\libSYS\include\machine_type.h include\fdk-aac\
copy ..\fdk-aac\libSYS\include\syslib_channelMapDescr.h include\fdk-aac\
</Command>
</PreBuildEvent> </PreBuildEvent>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">

View File

@ -23,7 +23,7 @@ fdkaac_SOURCES = \
dist_man_MANS = man/fdkaac.1 dist_man_MANS = man/fdkaac.1
fdkaac_LDADD = \ fdkaac_LDADD = \
@LIBICONV@ -lfdk-aac -lm @LIBICONV@ @CHARSET_LIB@ -lfdk-aac -lm
if FDK_PLATFORM_POSIX if FDK_PLATFORM_POSIX
fdkaac_SOURCES += \ fdkaac_SOURCES += \

View File

@ -13,7 +13,7 @@ AC_PROG_CC
AM_PROG_CC_C_O AM_PROG_CC_C_O
AC_CHECK_HEADERS([sys/time.h]) AC_CHECK_HEADERS([sys/time.h])
AC_CHECK_HEADERS([localcharset.h langinfo.h endian.h byteswap.h]) AC_CHECK_HEADERS([libcharset.h langinfo.h endian.h byteswap.h])
AC_CHECK_HEADERS([fdk-aac/aacenc_lib.h], , AC_CHECK_HEADERS([fdk-aac/aacenc_lib.h], ,
AC_MSG_ERROR([libfdk-aac is required])) AC_MSG_ERROR([libfdk-aac is required]))
@ -38,6 +38,12 @@ AC_CHECK_FUNC(getopt_long)
AM_CONDITIONAL([FDK_NO_GETOPT_LONG],[test "$ac_cv_func_getopt_long" != "yes"]) AM_CONDITIONAL([FDK_NO_GETOPT_LONG],[test "$ac_cv_func_getopt_long" != "yes"])
AC_SEARCH_LIBS([aacEncOpen],[fdk-aac],[],[],[]) AC_SEARCH_LIBS([aacEncOpen],[fdk-aac],[],[],[])
CHARSET_LIB=
AC_CHECK_LIB([iconv], [locale_charset],
[CHARSET_LIB=-liconv],
[AC_CHECK_LIB([charset], [locale_charset], [CHARSET_LIB=-lcharset])])
AC_SUBST([CHARSET_LIB])
AC_CANONICAL_HOST AC_CANONICAL_HOST
X_PLATFORM=posix X_PLATFORM=posix

View File

@ -59,8 +59,8 @@ char *aacenc_to_utf8(const char *s)
#include <errno.h> #include <errno.h>
#include <iconv.h> #include <iconv.h>
#if HAVE_LOCALCHARSET_H #if HAVE_LIBCHARSET_H
#include <localcharset.h> #include <libcharset.h>
#elif HAVE_LANGINFO_H #elif HAVE_LANGINFO_H
#include <langinfo.h> #include <langinfo.h>
static const char *locale_charset(void) static const char *locale_charset(void)

View File

@ -289,7 +289,7 @@ int parse_options(int argc, char **argv, aacenc_param_ex_t *params)
params->afterburner = 1; params->afterburner = 1;
aacenc_getmainargs(&argc, &argv); aacenc_getmainargs(&argc, &argv);
while ((ch = getopt_long(argc, argv, "hp:b:m:w:a:Ls:f:CP:G:Io:SR", while ((ch = getopt_long(argc, argv, "hp:b:m:w:a:L:s:f:CP:G:Io:SR",
long_options, 0)) != EOF) { long_options, 0)) != EOF) {
switch (ch) { switch (ch) {
case 'h': case 'h':
@ -503,6 +503,11 @@ int write_sample(FILE *ofp, m4af_ctx_t *m4af, aacenc_frame_t *frame)
return 0; return 0;
} }
static int do_smart_padding(int profile)
{
return profile == 2 || profile == 5 || profile == 29;
}
static static
int encode(aacenc_param_ex_t *params, pcm_reader_t *reader, int encode(aacenc_param_ex_t *params, pcm_reader_t *reader,
HANDLE_AACENCODER encoder, uint32_t frame_length, HANDLE_AACENCODER encoder, uint32_t frame_length,
@ -517,15 +522,12 @@ int encode(aacenc_param_ex_t *params, pcm_reader_t *reader,
int frames_written = 0, encoded = 0; int frames_written = 0, encoded = 0;
aacenc_progress_t progress = { 0 }; aacenc_progress_t progress = { 0 };
const pcm_sample_description_t *fmt = pcm_get_format(reader); const pcm_sample_description_t *fmt = pcm_get_format(reader);
const int is_padding = do_smart_padding(params->profile);
ibuf = malloc(frame_length * fmt->bytes_per_frame); ibuf = malloc(frame_length * fmt->bytes_per_frame);
aacenc_progress_init(&progress, pcm_get_length(reader), fmt->sample_rate); aacenc_progress_init(&progress, pcm_get_length(reader), fmt->sample_rate);
for (;;) { for (;;) {
/*
* Since we delay the write, we cannot just exit loop when interrupted.
* Instead, we regard it as EOF.
*/
if (g_interrupted) if (g_interrupted)
nread = 0; nread = 0;
if (nread > 0) { if (nread > 0) {
@ -548,7 +550,7 @@ int encode(aacenc_param_ex_t *params, pcm_reader_t *reader,
remaining -= consumed; remaining -= consumed;
ip += consumed * fmt->channels_per_frame; ip += consumed * fmt->channels_per_frame;
flip ^= 1; if (is_padding) {
/* /*
* As we pad 1 frame at beginning and ending by our extrapolator, * As we pad 1 frame at beginning and ending by our extrapolator,
* we want to drop them. * we want to drop them.
@ -557,25 +559,26 @@ int encode(aacenc_param_ex_t *params, pcm_reader_t *reader,
* Since sbr_header is included in the first frame (in case of * Since sbr_header is included in the first frame (in case of
* SBR), we cannot discard first frame. So we pick second instead. * SBR), we cannot discard first frame. So we pick second instead.
*/ */
++encoded; flip ^= 1;
if (encoded == 1 || encoded == 3) ++encoded;
continue; if (encoded == 1 || encoded == 3)
continue;
}
if (write_sample(params->output_fp, m4af, &obuf[flip]) < 0) if (write_sample(params->output_fp, m4af, &obuf[flip]) < 0)
goto END; goto END;
++frames_written; ++frames_written;
} while (remaining > 0); } while (remaining > 0);
/*
* When interrupted, we haven't pulled out last extrapolated frames
* from the reader. Therefore, we have to write the final outcome.
*/
if (g_interrupted) {
if (write_sample(params->output_fp, m4af, &obp[flip^1]) < 0)
goto END;
++frames_written;
}
} }
DONE: DONE:
/*
* When interrupted, we haven't pulled out last extrapolated frames
* from the reader. Therefore, we have to write the final outcome.
*/
if (g_interrupted) {
if (write_sample(params->output_fp, m4af, &obp[flip^1]) < 0)
goto END;
++frames_written;
}
if (!params->silent) if (!params->silent)
aacenc_progress_finish(&progress, pcm_get_position(reader)); aacenc_progress_finish(&progress, pcm_get_position(reader));
rc = frames_written; rc = frames_written;
@ -755,8 +758,10 @@ pcm_reader_t *open_input(aacenc_param_ex_t *params)
reader = pcm_open_native_converter(reader); reader = pcm_open_native_converter(reader);
if (reader && PCM_IS_FLOAT(pcm_get_format(reader))) if (reader && PCM_IS_FLOAT(pcm_get_format(reader)))
reader = limiter_open(reader); reader = limiter_open(reader);
if (reader && (reader = pcm_open_sint16_converter(reader)) != 0) if (reader && (reader = pcm_open_sint16_converter(reader)) != 0) {
reader = extrapolater_open(reader); if (do_smart_padding(params->profile))
reader = extrapolater_open(reader);
}
return reader; return reader;
FAIL: FAIL:
return 0; return 0;
@ -846,29 +851,22 @@ int main(int argc, char **argv)
m4af_set_priming_mode(m4af, params.gapless_mode + 1); m4af_set_priming_mode(m4af, params.gapless_mode + 1);
m4af_begin_write(m4af); m4af_begin_write(m4af);
} }
if (scale_shift && (aacinfo.encoderDelay & 1)) {
/*
* Since odd delay cannot be exactly expressed in downsampled scale,
* we push one zero frame to the encoder here, to make delay even
*/
int16_t zero[8] = { 0 };
aacenc_frame_t frame = { 0 };
aac_encode_frame(encoder, sample_format, zero, 1, &frame);
free(frame.data);
}
frame_count = encode(&params, reader, encoder, aacinfo.frameLength, m4af); frame_count = encode(&params, reader, encoder, aacinfo.frameLength, m4af);
if (frame_count < 0) if (frame_count < 0)
goto END; goto END;
if (m4af) { if (m4af) {
uint32_t delay = aacinfo.encoderDelay;
uint32_t padding; uint32_t padding;
#if AACENCODER_LIB_VL0 < 4
uint32_t delay = aacinfo.encoderDelay;
if (sbr_mode && params.profile != AOT_ER_AAC_ELD
&& !params.include_sbr_delay)
delay -= 481 << scale_shift;
#else
uint32_t delay = params.include_sbr_delay ? aacinfo.nDelay
: aacinfo.nDelayCore;
#endif
int64_t frames_read = pcm_get_position(reader); int64_t frames_read = pcm_get_position(reader);
if (sbr_mode && params.profile != AOT_ER_AAC_ELD &&
!params.include_sbr_delay)
delay -= 481 << scale_shift;
if (scale_shift && (delay & 1))
++delay;
padding = frame_count * aacinfo.frameLength - frames_read - delay; padding = frame_count * aacinfo.frameLength - frames_read - delay;
m4af_set_priming(m4af, 0, delay >> scale_shift, padding >> scale_shift); m4af_set_priming(m4af, 0, delay >> scale_shift, padding >> scale_shift);
if (finalize_m4a(m4af, &params, encoder) < 0) if (finalize_m4a(m4af, &params, encoder) < 0)

View File

@ -1,4 +1,4 @@
#ifndef VERSION_H #ifndef VERSION_H
#define VERSION_H #define VERSION_H
const char *fdkaac_version = "0.6.3"; const char *fdkaac_version = "1.0.0";
#endif #endif