ref: 4139a363f7759de8928a833de7b7b29613817b1e
parent: fffe3e713df85d20c43ac99b0a475963cbff20b5
author: menno <menno>
date: Thu Dec 26 17:51:12 EST 2002
Small changes Changed to use multithreaded dll runtime libraries
--- a/aacDECdrop/aacDECdrop/aacDECdrop.dsp
+++ b/aacDECdrop/aacDECdrop/aacDECdrop.dsp
@@ -43,7 +43,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /GX /O2 /I "..\..\include" /I "..\..\common\libsndfile\src" /I "..\..\common\mp4v2" /I "..\..\common\libsndfile\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /QaxK /Qsox- /Qip /c
+# ADD CPP /nologo /G6 /MD /GX /O2 /I "..\..\include" /I "..\..\common\libsndfile\src" /I "..\..\common\mp4v2" /I "..\..\common\libsndfile\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /QaxK /Qsox- /Qip /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
--- a/aacDECdrop/aacDECdrop/aacDECdrop.vcproj
+++ b/aacDECdrop/aacDECdrop/aacDECdrop.vcproj
@@ -20,7 +20,7 @@
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/QaxK /GA /Qwp_ipo "
+ AdditionalOptions="/QaxK /GA /Qwp_ipo"
Optimization="2"
GlobalOptimizations="TRUE"
InlineFunctionExpansion="1"
@@ -31,7 +31,7 @@
AdditionalIncludeDirectories="..\..\include,..\..\common\libsndfile\src,..\..\common\mp4v2,..\..\common\libsndfile\win32"
PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/aacDECdrop.pch"
AssemblerListingLocation=".\Release/"
@@ -39,7 +39,18 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ GlobalOptimizations="1"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "..\..\include" /I "..\..\common\libsndfile\src" /I "..\..\common\mp4v2" /I "..\..\common\libsndfile\win32" /nologo /W3 /O2 /Og /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/aacDECdrop.pch" /Fo".\Release/" /Fd".\Release/" /Gd /QaxK /GA /Qwp_ipo"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -51,7 +62,10 @@
SuppressStartupBanner="TRUE"
IgnoreDefaultLibraryNames=""
ProgramDatabaseFile=".\Release/aacDECdrop.pdb"
- SubSystem="2"/>
+ SubSystem="2">
+ <IntelOptions
+ AllOptions="/NOLOGO /OUT:".\Release/aacDECdrop.exe" /INCREMENTAL:NO odbc32.lib odbccp32.lib winmm.lib ws2_32.lib /PDB:".\Release/aacDECdrop.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
@@ -99,7 +113,14 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ MinimalRebuild="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="5"
+ AllOptions="/c /I "..\..\include" /I "..\..\common\libsndfile\src" /I "..\..\common\mp4v2" /I "..\..\common\libsndfile\win32" /ZI /nologo /W3 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Gm /EHsc /RTC1 /MLd /YX"StdAfx.h" /Fp".\Debug/aacDECdrop.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -111,7 +132,10 @@
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\Debug/aacDECdrop.pdb"
- SubSystem="2"/>
+ SubSystem="2">
+ <IntelOptions
+ AllOptions="/NOLOGO /OUT:".\Debug/aacDECdrop.exe" /INCREMENTAL odbc32.lib odbccp32.lib winmm.lib ws2_32.lib svml_disp.lib /DEBUG /PDB:".\Debug/aacDECdrop.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
@@ -140,76 +164,55 @@
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
- RelativePath="..\audio.c">
- </File>
+ RelativePath="..\audio.c"/>
<File
- RelativePath="..\decode.c">
- </File>
+ RelativePath="..\decode.c"/>
<File
- RelativePath="..\decthread.c">
- </File>
+ RelativePath="..\decthread.c"/>
<File
- RelativePath="..\main.c">
- </File>
+ RelativePath="..\main.c"/>
<File
- RelativePath="..\misc.c">
- </File>
+ RelativePath="..\misc.c"/>
<File
- RelativePath="..\wave_out.c">
- </File>
+ RelativePath="..\wave_out.c"/>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
- RelativePath="..\audio.h">
- </File>
+ RelativePath="..\audio.h"/>
<File
- RelativePath="..\decode.h">
- </File>
+ RelativePath="..\decode.h"/>
<File
- RelativePath="..\decthread.h">
- </File>
+ RelativePath="..\decthread.h"/>
<File
- RelativePath="..\misc.h">
- </File>
+ RelativePath="..\misc.h"/>
<File
- RelativePath="..\resource.h">
- </File>
+ RelativePath="..\resource.h"/>
<File
- RelativePath="..\wave_out.h">
- </File>
+ RelativePath="..\wave_out.h"/>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
<File
- RelativePath="..\resource\AAC01.bmp">
- </File>
+ RelativePath="..\resource\AAC01.bmp"/>
<File
- RelativePath="..\resource\AAC01.ico">
- </File>
+ RelativePath="..\resource\AAC01.ico"/>
<File
- RelativePath="..\resource\AAC02.bmp">
- </File>
+ RelativePath="..\resource\AAC02.bmp"/>
<File
- RelativePath="..\resource\AAC03.bmp">
- </File>
+ RelativePath="..\resource\AAC03.bmp"/>
<File
- RelativePath="..\resource\AAC04.bmp">
- </File>
+ RelativePath="..\resource\AAC04.bmp"/>
<File
- RelativePath="..\resource\AAC05.bmp">
- </File>
+ RelativePath="..\resource\AAC05.bmp"/>
<File
- RelativePath="..\resource\AAC06.bmp">
- </File>
+ RelativePath="..\resource\AAC06.bmp"/>
<File
- RelativePath="..\resource\AAC07.bmp">
- </File>
+ RelativePath="..\resource\AAC07.bmp"/>
<File
- RelativePath="..\resource\AAC08.bmp">
- </File>
+ RelativePath="..\resource\AAC08.bmp"/>
<File
RelativePath="..\Script.rc">
<FileConfiguration
@@ -227,6 +230,5 @@
</File>
</Filter>
</Files>
- <Globals>
- </Globals>
+ <Globals/>
</VisualStudioProject>
--- a/common/id3lib/libprj/id3lib.dsp
+++ b/common/id3lib/libprj/id3lib.dsp
@@ -40,8 +40,9 @@
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I ".\\" /I "..\\" /I "..\include" /I "..\include\id3" /I "..\zlib\include" /I "..\win32" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_WINDOWS" /D "HAVE_CONFIG_H" /D "ID3LIB_COMPILATION" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".\\" /I "..\\" /I "..\include" /I "..\include\id3" /I "..\zlib\include" /I "..\win32" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_WINDOWS" /D "HAVE_CONFIG_H" /D "ID3LIB_COMPILATION" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
@@ -63,6 +64,7 @@
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I ".\\" /I "..\\" /I "..\include" /I "..\include\id3" /I "..\zlib\include" /I "..\win32" /D "_DEBUG" /D "ID3LIB_COMPILATION" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_WINDOWS" /D "HAVE_CONFIG_H" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
--- a/common/id3lib/libprj/id3lib.vcproj
+++ b/common/id3lib/libprj/id3lib.vcproj
@@ -34,13 +34,23 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ MinimalRebuild="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ AllOptions="/c /I ".\\" /I "..\\" /I "..\include" /I "..\include\id3" /I "..\zlib\include" /I "..\win32" /ZI /nologo /W3 /Od /D "_DEBUG" /D "ID3LIB_COMPILATION" /D "WIN32" /D "_LIB" /D "_WINDOWS" /D "HAVE_CONFIG_H" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /YX"StdAfx.h" /Fp".\Debug/id3lib.pch" /Fo".\Debug/" /Fd".\Debug/" /FR".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\id3lib.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:"..\id3lib.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -70,7 +80,7 @@
AdditionalIncludeDirectories=".\,..\,..\include,..\include\id3,..\zlib\include,..\win32"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,_WINDOWS,HAVE_CONFIG_H,ID3LIB_COMPILATION"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/id3lib.pch"
@@ -79,13 +89,26 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I ".\\" /I "..\\" /I "..\include" /I "..\include\id3" /I "..\zlib\include" /I "..\win32" /nologo /W3 /O2 /Ob1 /Oy /D "NDEBUG" /D "WIN32" /D "_LIB" /D "_WINDOWS" /D "HAVE_CONFIG_H" /D "ID3LIB_COMPILATION" /D "_MBCS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/id3lib.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\id3lib.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:"..\id3lib.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -107,149 +130,102 @@
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
- RelativePath="..\src\c_wrapper.cpp">
- </File>
+ RelativePath="..\src\c_wrapper.cpp"/>
<File
- RelativePath="..\src\error.cpp">
- </File>
+ RelativePath="..\src\error.cpp"/>
<File
- RelativePath="..\src\field.cpp">
- </File>
+ RelativePath="..\src\field.cpp"/>
<File
- RelativePath="..\src\field_binary.cpp">
- </File>
+ RelativePath="..\src\field_binary.cpp"/>
<File
- RelativePath="..\src\field_integer.cpp">
- </File>
+ RelativePath="..\src\field_integer.cpp"/>
<File
- RelativePath="..\src\field_string_ascii.cpp">
- </File>
+ RelativePath="..\src\field_string_ascii.cpp"/>
<File
- RelativePath="..\src\field_string_unicode.cpp">
- </File>
+ RelativePath="..\src\field_string_unicode.cpp"/>
<File
- RelativePath="..\src\frame.cpp">
- </File>
+ RelativePath="..\src\frame.cpp"/>
<File
- RelativePath="..\src\frame_parse.cpp">
- </File>
+ RelativePath="..\src\frame_parse.cpp"/>
<File
- RelativePath="..\src\frame_render.cpp">
- </File>
+ RelativePath="..\src\frame_render.cpp"/>
<File
- RelativePath="..\src\globals.cpp">
- </File>
+ RelativePath="..\src\globals.cpp"/>
<File
- RelativePath="..\src\header.cpp">
- </File>
+ RelativePath="..\src\header.cpp"/>
<File
- RelativePath="..\src\header_frame.cpp">
- </File>
+ RelativePath="..\src\header_frame.cpp"/>
<File
- RelativePath="..\src\header_tag.cpp">
- </File>
+ RelativePath="..\src\header_tag.cpp"/>
<File
- RelativePath="..\src\misc_support.cpp">
- </File>
+ RelativePath="..\src\misc_support.cpp"/>
<File
- RelativePath="..\src\spec.cpp">
- </File>
+ RelativePath="..\src\spec.cpp"/>
<File
- RelativePath="..\src\tag.cpp">
- </File>
+ RelativePath="..\src\tag.cpp"/>
<File
- RelativePath="..\src\tag_file.cpp">
- </File>
+ RelativePath="..\src\tag_file.cpp"/>
<File
- RelativePath="..\src\tag_find.cpp">
- </File>
+ RelativePath="..\src\tag_find.cpp"/>
<File
- RelativePath="..\src\tag_parse.cpp">
- </File>
+ RelativePath="..\src\tag_parse.cpp"/>
<File
- RelativePath="..\src\tag_parse_lyrics3.cpp">
- </File>
+ RelativePath="..\src\tag_parse_lyrics3.cpp"/>
<File
- RelativePath="..\src\tag_parse_v1.cpp">
- </File>
+ RelativePath="..\src\tag_parse_v1.cpp"/>
<File
- RelativePath="..\src\tag_render.cpp">
- </File>
+ RelativePath="..\src\tag_render.cpp"/>
<File
- RelativePath="..\src\tag_sync.cpp">
- </File>
+ RelativePath="..\src\tag_sync.cpp"/>
<File
- RelativePath="..\src\uint28.cpp">
- </File>
+ RelativePath="..\src\uint28.cpp"/>
<File
- RelativePath="..\src\utils.cpp">
- </File>
+ RelativePath="..\src\utils.cpp"/>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
- RelativePath="E:\Program Files\Microsoft Visual Studio\VC98\Include\BASETSD.H">
- </File>
+ RelativePath="E:\Program Files\Microsoft Visual Studio\VC98\Include\BASETSD.H"/>
<File
- RelativePath="..\config.h">
- </File>
+ RelativePath="..\win32\config.h"/>
<File
- RelativePath="..\win32\config.h">
- </File>
+ RelativePath="..\config.h"/>
<File
- RelativePath="..\include\id3\error.h">
- </File>
+ RelativePath="..\include\id3\error.h"/>
<File
- RelativePath="..\include\id3\field.h">
- </File>
+ RelativePath="..\include\id3\field.h"/>
<File
- RelativePath="..\include\id3\flags.h">
- </File>
+ RelativePath="..\include\id3\flags.h"/>
<File
- RelativePath="..\include\id3\frame.h">
- </File>
+ RelativePath="..\include\id3\frame.h"/>
<File
- RelativePath="..\include\id3\globals.h">
- </File>
+ RelativePath="..\include\id3\globals.h"/>
<File
- RelativePath="..\include\id3\header.h">
- </File>
+ RelativePath="..\include\id3\header.h"/>
<File
- RelativePath="..\include\id3\header_frame.h">
- </File>
+ RelativePath="..\include\id3\header_frame.h"/>
<File
- RelativePath="..\include\id3\header_tag.h">
- </File>
+ RelativePath="..\include\id3\header_tag.h"/>
<File
- RelativePath="..\include\id3.h">
- </File>
+ RelativePath="..\include\id3.h"/>
<File
- RelativePath="..\include\id3\misc_support.h">
- </File>
+ RelativePath="..\include\id3\misc_support.h"/>
<File
- RelativePath="..\include\id3\sized_types.h">
- </File>
+ RelativePath="..\include\id3\sized_types.h"/>
<File
- RelativePath="..\include\id3\spec.h">
- </File>
+ RelativePath="..\include\id3\spec.h"/>
<File
- RelativePath="..\include\id3\tag.h">
- </File>
+ RelativePath="..\include\id3\tag.h"/>
<File
- RelativePath="..\include\id3\uint28.h">
- </File>
+ RelativePath="..\include\id3\uint28.h"/>
<File
- RelativePath="..\include\id3\utils.h">
- </File>
+ RelativePath="..\include\id3\utils.h"/>
<File
- RelativePath="..\zlib\include\zconf.h">
- </File>
+ RelativePath="..\zlib\include\zconf.h"/>
<File
- RelativePath="..\zlib\include\zlib.h">
- </File>
+ RelativePath="..\zlib\include\zlib.h"/>
</Filter>
</Files>
- <Globals>
- </Globals>
+ <Globals/>
</VisualStudioProject>
--- a/common/id3lib/zlib/prj/zlib.dsp
+++ b/common/id3lib/zlib/prj/zlib.dsp
@@ -42,8 +42,9 @@
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE RSC /l 0x809
# ADD RSC /l 0x809
BSC32=bscmake.exe
@@ -65,6 +66,7 @@
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /FR /YX /FD /c
# ADD BASE RSC /l 0x809
@@ -88,6 +90,7 @@
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /MDd /W3 /GX /Z7 /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE RSC /l 0x809
@@ -111,6 +114,7 @@
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE RSC /l 0x809
--- a/common/id3lib/zlib/prj/zlib.vcproj
+++ b/common/id3lib/zlib/prj/zlib.vcproj
@@ -31,13 +31,26 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="1"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "..\include" /Z7 /nologo /W3 /Od /Ob1 /Oy /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /GF /FD /EHsc /MDd /GS /Gy /YX"StdAfx.h" /Fp".\Debug/zlib.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\zlib.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:"..\zlib.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -75,13 +88,23 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ MinimalRebuild="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="5"
+ AllOptions="/c /I "..\include" /ZI /nologo /W3 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_LIB" /D "_MBCS" /Gm /EHsc /RTC1 /MLd /YX"StdAfx.h" /Fp".\Debug/zlib.pch" /Fo".\Debug/" /Fd".\Debug/" /FR".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile=".\Debug\zlib.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:".\Debug\zlib.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -112,7 +135,7 @@
AdditionalIncludeDirectories="..\include"
PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/zlib.pch"
@@ -121,13 +144,27 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ GlobalOptimizations="1"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "..\include" /nologo /W3 /O2 /Og /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/zlib.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile=".\Release\zlib.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:".\Release\zlib.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -164,13 +201,26 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "..\include" /nologo /W3 /O2 /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/zlib.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\zlib.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:"..\zlib.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -191,86 +241,60 @@
Name="source"
Filter="">
<File
- RelativePath="..\src\adler32.c">
- </File>
+ RelativePath="..\src\adler32.c"/>
<File
- RelativePath="..\src\compress.c">
- </File>
+ RelativePath="..\src\compress.c"/>
<File
- RelativePath="..\src\crc32.c">
- </File>
+ RelativePath="..\src\crc32.c"/>
<File
- RelativePath="..\src\deflate.c">
- </File>
+ RelativePath="..\src\deflate.c"/>
<File
- RelativePath="..\src\gzio.c">
- </File>
+ RelativePath="..\src\gzio.c"/>
<File
- RelativePath="..\src\infblock.c">
- </File>
+ RelativePath="..\src\infblock.c"/>
<File
- RelativePath="..\src\infcodes.c">
- </File>
+ RelativePath="..\src\infcodes.c"/>
<File
- RelativePath="..\src\inffast.c">
- </File>
+ RelativePath="..\src\inffast.c"/>
<File
- RelativePath="..\src\inflate.c">
- </File>
+ RelativePath="..\src\inflate.c"/>
<File
- RelativePath="..\src\inftrees.c">
- </File>
+ RelativePath="..\src\inftrees.c"/>
<File
- RelativePath="..\src\infutil.c">
- </File>
+ RelativePath="..\src\infutil.c"/>
<File
- RelativePath="..\src\trees.c">
- </File>
+ RelativePath="..\src\trees.c"/>
<File
- RelativePath="..\src\uncompr.c">
- </File>
+ RelativePath="..\src\uncompr.c"/>
<File
- RelativePath="..\src\zutil.c">
- </File>
+ RelativePath="..\src\zutil.c"/>
</Filter>
<Filter
Name="include"
Filter="">
<File
- RelativePath="..\include\deflate.h">
- </File>
+ RelativePath="..\include\deflate.h"/>
<File
- RelativePath="..\include\infblock.h">
- </File>
+ RelativePath="..\include\infblock.h"/>
<File
- RelativePath="..\include\infcodes.h">
- </File>
+ RelativePath="..\include\infcodes.h"/>
<File
- RelativePath="..\include\inffast.h">
- </File>
+ RelativePath="..\include\inffast.h"/>
<File
- RelativePath="..\include\inffixed.h">
- </File>
+ RelativePath="..\include\inffixed.h"/>
<File
- RelativePath="..\include\inftrees.h">
- </File>
+ RelativePath="..\include\inftrees.h"/>
<File
- RelativePath="..\include\infutil.h">
- </File>
+ RelativePath="..\include\infutil.h"/>
<File
- RelativePath="..\include\trees.h">
- </File>
+ RelativePath="..\include\trees.h"/>
<File
- RelativePath="..\include\zconf.h">
- </File>
+ RelativePath="..\include\zconf.h"/>
<File
- RelativePath="..\include\zlib.h">
- </File>
+ RelativePath="..\include\zlib.h"/>
<File
- RelativePath="..\include\zutil.h">
- </File>
+ RelativePath="..\include\zutil.h"/>
</Filter>
</Files>
- <Globals>
- </Globals>
+ <Globals/>
</VisualStudioProject>
--- a/common/mp4av/libmp4av_st.dsp
+++ b/common/mp4av/libmp4av_st.dsp
@@ -25,7 +25,7 @@
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
-CPP=cl.exe
+CPP=xicl6.exe
RSC=rc.exe
!IF "$(CFG)" == "libmp4av_st - Win32 Release"
@@ -40,14 +40,15 @@
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\mp4v2" /I ".\\" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\mp4v2" /I ".\\" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LIB32=link.exe -lib
+LIB32=xilink6.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
@@ -63,6 +64,7 @@
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\mp4v2" /I ".\\" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -70,7 +72,7 @@
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LIB32=link.exe -lib
+LIB32=xilink6.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
--- a/common/mp4av/libmp4av_st.vcproj
+++ b/common/mp4av/libmp4av_st.vcproj
@@ -25,7 +25,7 @@
AdditionalIncludeDirectories="..\mp4v2,.\"
PreprocessorDefinitions="WIN32,NDEBUG,_LIB"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/libmp4av_st.pch"
@@ -34,13 +34,26 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "..\mp4v2" /I ".\\" /nologo /W3 /O2 /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/libmp4av_st.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile=".\Release\libmp4av_st.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:".\Release\libmp4av_st.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -79,13 +92,23 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ MinimalRebuild="1"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ AllOptions="/c /I "..\mp4v2" /I ".\\" /ZI /nologo /W3 /Od /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_MBCS" /Gm /EHsc /MTd /YX"StdAfx.h" /Fp".\Debug/libmp4av_st.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile=".\Debug\libmp4av_st.lib"
- SuppressStartupBanner="TRUE"/>
+ SuppressStartupBanner="TRUE">
+ <IntelOptions
+ AllOptions="/OUT:".\Debug\libmp4av_st.lib" /NOLOGO"/>
+ </Tool>
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -107,74 +130,52 @@
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
- RelativePath=".\aac.cpp">
- </File>
+ RelativePath=".\aac.cpp"/>
<File
- RelativePath=".\adts.cpp">
- </File>
+ RelativePath=".\adts.cpp"/>
<File
- RelativePath=".\audio_hinters.cpp">
- </File>
+ RelativePath=".\audio_hinters.cpp"/>
<File
- RelativePath=".\l16.cpp">
- </File>
+ RelativePath=".\l16.cpp"/>
<File
- RelativePath=".\mbs.cpp">
- </File>
+ RelativePath=".\mbs.cpp"/>
<File
- RelativePath=".\mp3.cpp">
- </File>
+ RelativePath=".\mp3.cpp"/>
<File
- RelativePath=".\mpeg3.cpp">
- </File>
+ RelativePath=".\mpeg3.cpp"/>
<File
- RelativePath=".\mpeg4.cpp">
- </File>
+ RelativePath=".\mpeg4.cpp"/>
<File
- RelativePath=".\rfc2250.cpp">
- </File>
+ RelativePath=".\rfc2250.cpp"/>
<File
- RelativePath=".\rfc3016.cpp">
- </File>
+ RelativePath=".\rfc3016.cpp"/>
<File
- RelativePath=".\rfc3119.cpp">
- </File>
+ RelativePath=".\rfc3119.cpp"/>
<File
- RelativePath=".\rfcisma.cpp">
- </File>
+ RelativePath=".\rfcisma.cpp"/>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
- RelativePath=".\audio_hinters.h">
- </File>
+ RelativePath=".\audio_hinters.h"/>
<File
- RelativePath=".\mbs.h">
- </File>
+ RelativePath=".\mbs.h"/>
<File
- RelativePath=".\mp4av.h">
- </File>
+ RelativePath=".\mp4av.h"/>
<File
- RelativePath=".\mp4av_aac.h">
- </File>
+ RelativePath=".\mp4av_aac.h"/>
<File
- RelativePath=".\mp4av_adts.h">
- </File>
+ RelativePath=".\mp4av_adts.h"/>
<File
- RelativePath=".\mp4av_common.h">
- </File>
+ RelativePath=".\mp4av_common.h"/>
<File
- RelativePath=".\mp4av_hinters.h">
- </File>
+ RelativePath=".\mp4av_hinters.h"/>
<File
- RelativePath=".\mp4av_mp3.h">
- </File>
+ RelativePath=".\mp4av_mp3.h"/>
<File
- RelativePath=".\mp4av_mpeg4.h">
- </File>
+ RelativePath=".\mp4av_mpeg4.h"/>
</Filter>
</Files>
- <Globals>
- </Globals>
+ <Globals/>
</VisualStudioProject>
--- a/common/mp4v2/isma.cpp
+++ b/common/mp4v2/isma.cpp
@@ -1,827 +1,863 @@
-/*
- * The contents of this file are subject to the Mozilla Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is MPEG4IP.
- *
- * The Initial Developer of the Original Code is Cisco Systems Inc.
- * Portions created by Cisco Systems Inc. are
- * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved.
- *
- * Contributor(s):
- * Dave Mackie [email protected]
- */
-
-#include "mp4common.h"
-
-static u_int8_t BifsV2Config[3] = {
- 0x00, 0x00, 0x60 // IsCommandStream = 1, PixelMetric = 1
-};
-
-void MP4File::MakeIsmaCompliant(bool addIsmaComplianceSdp)
-{
- ProtectWriteOperation("MP4MakeIsmaCompliant");
-
- if (m_useIsma) {
- // already done
- return;
- }
- m_useIsma = true;
-
- // find first audio and/or video tracks
-
- MP4TrackId audioTrackId = MP4_INVALID_TRACK_ID;
- try {
- audioTrackId = FindTrackId(0, MP4_AUDIO_TRACK_TYPE);
- }
- catch (MP4Error* e) {
- delete e;
- }
-
- MP4TrackId videoTrackId = MP4_INVALID_TRACK_ID;
- try {
- videoTrackId = FindTrackId(0, MP4_VIDEO_TRACK_TYPE);
- }
- catch (MP4Error* e) {
- delete e;
- }
-
- u_int64_t fileMsDuration =
- ConvertFromMovieDuration(GetDuration(), MP4_MSECS_TIME_SCALE);
-
- // delete any existing OD track
- if (m_odTrackId != MP4_INVALID_TRACK_ID) {
- DeleteTrack(m_odTrackId);
- }
-
- AddODTrack();
- SetODProfileLevel(0xFF);
-
- if (audioTrackId != MP4_INVALID_TRACK_ID) {
- AddTrackToOd(audioTrackId);
- }
-
- if (videoTrackId != MP4_INVALID_TRACK_ID) {
- AddTrackToOd(videoTrackId);
- }
-
- // delete any existing scene track
- MP4TrackId sceneTrackId = MP4_INVALID_TRACK_ID;
- try {
- sceneTrackId = FindTrackId(0, MP4_SCENE_TRACK_TYPE);
- }
- catch (MP4Error *e) {
- delete e;
- }
- if (sceneTrackId != MP4_INVALID_TRACK_ID) {
- DeleteTrack(sceneTrackId);
- }
-
- // add scene track
- sceneTrackId = AddSceneTrack();
- SetSceneProfileLevel(0xFF);
- SetGraphicsProfileLevel(0xFF);
- SetTrackIntegerProperty(sceneTrackId,
- "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr.objectTypeId",
- MP4SystemsV2ObjectType);
-
- SetTrackESConfiguration(sceneTrackId,
- BifsV2Config, sizeof(BifsV2Config));
-
- u_int8_t* pBytes = NULL;
- u_int64_t numBytes = 0;
-
- // write OD Update Command
- CreateIsmaODUpdateCommandFromFileForFile(
- m_odTrackId,
- audioTrackId,
- videoTrackId,
- &pBytes,
- &numBytes);
-
- WriteSample(m_odTrackId, pBytes, numBytes, fileMsDuration);
-
- MP4Free(pBytes);
- pBytes = NULL;
-
- // write BIFS Scene Replace Command
- CreateIsmaSceneCommand(
- MP4_IS_VALID_TRACK_ID(audioTrackId),
- MP4_IS_VALID_TRACK_ID(videoTrackId),
- &pBytes,
- &numBytes);
-
- WriteSample(sceneTrackId, pBytes, numBytes, fileMsDuration);
-
- MP4Free(pBytes);
- pBytes = NULL;
-
- // add session level sdp
- CreateIsmaIodFromFile(
- m_odTrackId,
- sceneTrackId,
- audioTrackId,
- videoTrackId,
- &pBytes,
- &numBytes);
-
- char* iodBase64 = MP4ToBase64(pBytes, numBytes);
-
- char* sdpBuf = (char*)MP4Calloc(strlen(iodBase64) + 256);
-
- if (addIsmaComplianceSdp) {
- strcpy(sdpBuf, "a=isma-compliance:1,1.0,1\015\012");
- }
-
- sprintf(&sdpBuf[strlen(sdpBuf)],
- "a=mpeg4-iod: \042data:application/mpeg4-iod;base64,%s\042\015\012",
- iodBase64);
-
- SetSessionSdp(sdpBuf);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("IOD SDP = %s\n", sdpBuf));
-
- MP4Free(iodBase64);
- iodBase64 = NULL;
- MP4Free(pBytes);
- pBytes = NULL;
- MP4Free(sdpBuf);
- sdpBuf = NULL;
-}
-
-static void CloneIntegerProperty(
- MP4Descriptor* pDest,
- MP4DescriptorProperty* pSrc,
- const char* name)
-{
- MP4IntegerProperty* pGetProperty;
- MP4IntegerProperty* pSetProperty;
-
- pSrc->FindProperty(name, (MP4Property**)&pGetProperty);
- pDest->FindProperty(name, (MP4Property**)&pSetProperty);
-
- pSetProperty->SetValue(pGetProperty->GetValue());
-}
-
-void MP4File::CreateIsmaIodFromFile(
- MP4TrackId odTrackId,
- MP4TrackId sceneTrackId,
- MP4TrackId audioTrackId,
- MP4TrackId videoTrackId,
- u_int8_t** ppBytes,
- u_int64_t* pNumBytes)
-{
- MP4Descriptor* pIod = new MP4IODescriptor();
- pIod->SetTag(MP4IODescrTag);
- pIod->Generate();
-
- MP4Atom* pIodsAtom = FindAtom("moov.iods");
- ASSERT(pIodsAtom);
- MP4DescriptorProperty* pSrcIod =
- (MP4DescriptorProperty*)pIodsAtom->GetProperty(2);
-
- CloneIntegerProperty(pIod, pSrcIod, "objectDescriptorId");
- CloneIntegerProperty(pIod, pSrcIod, "ODProfileLevelId");
- CloneIntegerProperty(pIod, pSrcIod, "sceneProfileLevelId");
- CloneIntegerProperty(pIod, pSrcIod, "audioProfileLevelId");
- CloneIntegerProperty(pIod, pSrcIod, "visualProfileLevelId");
- CloneIntegerProperty(pIod, pSrcIod, "graphicsProfileLevelId");
-
- // mutate esIds from MP4ESIDIncDescrTag to MP4ESDescrTag
- MP4DescriptorProperty* pEsProperty;
- pIod->FindProperty("esIds", (MP4Property**)&pEsProperty);
- pEsProperty->SetTags(MP4ESDescrTag);
-
- MP4IntegerProperty* pSetProperty;
-
- // OD
- MP4Descriptor* pOdEsd =
- pEsProperty->AddDescriptor(MP4ESDescrTag);
- pOdEsd->Generate();
-
- pOdEsd->FindProperty("ESID",
- (MP4Property**)&pSetProperty);
- pSetProperty->SetValue(m_odTrackId);
-
- pOdEsd->FindProperty("URLFlag",
- (MP4Property**)&pSetProperty);
- pSetProperty->SetValue(1);
-
- u_int8_t* pBytes;
- u_int64_t numBytes;
-
- CreateIsmaODUpdateCommandFromFileForStream(
- audioTrackId,
- videoTrackId,
- &pBytes,
- &numBytes);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("OD data =\n"); MP4HexDump(pBytes, numBytes));
-
- char* odCmdBase64 = MP4ToBase64(pBytes, numBytes);
-
- char* urlBuf = (char*)MP4Malloc(strlen(odCmdBase64) + 64);
-
- sprintf(urlBuf,
- "data:application/mpeg4-od-au;base64,%s",
- odCmdBase64);
-
- MP4StringProperty* pUrlProperty;
- pOdEsd->FindProperty("URL",
- (MP4Property**)&pUrlProperty);
- pUrlProperty->SetValue(urlBuf);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("OD data URL = \042%s\042\n", urlBuf));
-
- MP4Free(odCmdBase64);
- odCmdBase64 = NULL;
- MP4Free(pBytes);
- pBytes = NULL;
- MP4Free(urlBuf);
- urlBuf = NULL;
-
- MP4DescriptorProperty* pSrcDcd = NULL;
-
- // HACK temporarily point to scene decoder config
- FindProperty(MakeTrackName(odTrackId,
- "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr"),
- (MP4Property**)&pSrcDcd);
- ASSERT(pSrcDcd);
- MP4Property* pOrgOdEsdProperty =
- pOdEsd->GetProperty(8);
- pOdEsd->SetProperty(8, pSrcDcd);
-
- // bufferSizeDB needs to be set appropriately
- MP4BitfieldProperty* pBufferSizeProperty = NULL;
- pOdEsd->FindProperty("decConfigDescr.bufferSizeDB",
- (MP4Property**)&pBufferSizeProperty);
- ASSERT(pBufferSizeProperty);
- pBufferSizeProperty->SetValue(numBytes);
-
- // SL config needs to change from 2 (file) to 1 (null)
- pOdEsd->FindProperty("slConfigDescr.predefined",
- (MP4Property**)&pSetProperty);
- pSetProperty->SetValue(1);
-
-
- // Scene
- MP4Descriptor* pSceneEsd =
- pEsProperty->AddDescriptor(MP4ESDescrTag);
- pSceneEsd->Generate();
-
- pSceneEsd->FindProperty("ESID",
- (MP4Property**)&pSetProperty);
- pSetProperty->SetValue(sceneTrackId);
-
- pSceneEsd->FindProperty("URLFlag",
- (MP4Property**)&pSetProperty);
- pSetProperty->SetValue(1);
-
- CreateIsmaSceneCommand(
- MP4_IS_VALID_TRACK_ID(audioTrackId),
- MP4_IS_VALID_TRACK_ID(videoTrackId),
- &pBytes,
- &numBytes);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("Scene data =\n"); MP4HexDump(pBytes, numBytes));
-
- char *sceneCmdBase64 = MP4ToBase64(pBytes, numBytes);
-
- urlBuf = (char*)MP4Malloc(strlen(sceneCmdBase64) + 64);
- sprintf(urlBuf,
- "data:application/mpeg4-bifs-au;base64,%s",
- sceneCmdBase64);
-
- pSceneEsd->FindProperty("URL",
- (MP4Property**)&pUrlProperty);
- pUrlProperty->SetValue(urlBuf);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("Scene data URL = \042%s\042\n", urlBuf));
-
- MP4Free(sceneCmdBase64);
- sceneCmdBase64 = NULL;
- MP4Free(urlBuf);
- urlBuf = NULL;
- MP4Free(pBytes);
- pBytes = NULL;
-
- // HACK temporarily point to scene decoder config
- FindProperty(MakeTrackName(sceneTrackId,
- "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr"),
- (MP4Property**)&pSrcDcd);
- ASSERT(pSrcDcd);
- MP4Property* pOrgSceneEsdProperty =
- pSceneEsd->GetProperty(8);
- pSceneEsd->SetProperty(8, pSrcDcd);
-
- // bufferSizeDB needs to be set
- pBufferSizeProperty = NULL;
- pSceneEsd->FindProperty("decConfigDescr.bufferSizeDB",
- (MP4Property**)&pBufferSizeProperty);
- ASSERT(pBufferSizeProperty);
- pBufferSizeProperty->SetValue(numBytes);
-
- // SL config needs to change from 2 (file) to 1 (null)
- pSceneEsd->FindProperty("slConfigDescr.predefined",
- (MP4Property**)&pSetProperty);
- pSetProperty->SetValue(1);
-
-
- // finally get the whole thing written to a memory
- pIod->WriteToMemory(this, ppBytes, pNumBytes);
-
-
- // now carefully replace esd properties before destroying
- pOdEsd->SetProperty(8, pOrgOdEsdProperty);
- pSceneEsd->SetProperty(8, pOrgSceneEsdProperty);
-
- delete pIod;
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("IOD data =\n"); MP4HexDump(*ppBytes, *pNumBytes));
-}
-
-void MP4File::CreateIsmaIodFromParams(
- u_int8_t videoProfile,
- u_int32_t videoBitrate,
- u_int8_t* videoConfig,
- u_int32_t videoConfigLength,
- u_int8_t audioProfile,
- u_int32_t audioBitrate,
- u_int8_t* audioConfig,
- u_int32_t audioConfigLength,
- u_int8_t** ppIodBytes,
- u_int64_t* pIodNumBytes)
-{
- MP4IntegerProperty* pInt;
- u_int8_t* pBytes = NULL;
- u_int64_t numBytes;
-
- // Create the IOD
- MP4Descriptor* pIod = new MP4IODescriptor();
- pIod->SetTag(MP4IODescrTag);
- pIod->Generate();
-
- // Set audio and video profileLevels
- pIod->FindProperty("audioProfileLevelId",
- (MP4Property**)&pInt);
- pInt->SetValue(audioProfile);
-
- pIod->FindProperty("visualProfileLevelId",
- (MP4Property**)&pInt);
- pInt->SetValue(videoProfile);
-
- // Mutate esIds from MP4ESIDIncDescrTag to MP4ESDescrTag
- MP4DescriptorProperty* pEsProperty;
- pIod->FindProperty("esIds", (MP4Property**)&pEsProperty);
- pEsProperty->SetTags(MP4ESDescrTag);
-
- // Add ES Descriptors
-
- // Scene
- CreateIsmaSceneCommand(
- (audioProfile != 0xFF),
- (videoProfile != 0xFF),
- &pBytes,
- &numBytes);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("Scene data =\n"); MP4HexDump(pBytes, numBytes));
-
- char* sceneCmdBase64 = MP4ToBase64(pBytes, numBytes);
-
- char* urlBuf =
- (char*)MP4Malloc(strlen(sceneCmdBase64) + 64);
- sprintf(urlBuf,
- "data:application/mpeg4-bifs-au;base64,%s",
- sceneCmdBase64);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("Scene data URL = \042%s\042\n", urlBuf));
-
- /* MP4Descriptor* pSceneEsd = */
- CreateESD(
- pEsProperty,
- 201, // esid
- MP4SystemsV2ObjectType,
- MP4SceneDescriptionStreamType,
- numBytes, // bufferSize
- numBytes * 8, // bitrate
- BifsV2Config,
- sizeof(BifsV2Config),
- urlBuf);
-
- MP4Free(sceneCmdBase64);
- sceneCmdBase64 = NULL;
- MP4Free(urlBuf);
- urlBuf = NULL;
- MP4Free(pBytes);
- pBytes = NULL;
-
- // OD
-
- // Video
- MP4DescriptorProperty* pVideoEsdProperty =
- new MP4DescriptorProperty();
- pVideoEsdProperty->SetTags(MP4ESDescrTag);
-
- /* MP4Descriptor* pVideoEsd = */
- CreateESD(
- pVideoEsdProperty,
- 20, // esid
- MP4_MPEG4_VIDEO_TYPE,
- MP4VisualStreamType,
- videoBitrate / 8, // bufferSize
- videoBitrate,
- videoConfig,
- videoConfigLength,
- NULL);
-
- // Audio
- MP4DescriptorProperty* pAudioEsdProperty =
- new MP4DescriptorProperty();
- pAudioEsdProperty->SetTags(MP4ESDescrTag);
-
- /* MP4Descriptor* pAudioEsd = */
- CreateESD(
- pAudioEsdProperty,
- 10, // esid
- MP4_MPEG4_AUDIO_TYPE,
- MP4AudioStreamType,
- audioBitrate / 8, // bufferSize
- audioBitrate,
- audioConfig,
- audioConfigLength,
- NULL);
-
- CreateIsmaODUpdateCommandForStream(
- pAudioEsdProperty,
- pVideoEsdProperty,
- &pBytes,
- &numBytes);
-
- // cleanup temporary descriptor properties
- delete pAudioEsdProperty;
- delete pVideoEsdProperty;
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("OD data =\n"); MP4HexDump(pBytes, numBytes));
-
- char* odCmdBase64 = MP4ToBase64(pBytes, numBytes);
-
- urlBuf = (char*)MP4Malloc(strlen(odCmdBase64) + 64);
-
- sprintf(urlBuf,
- "data:application/mpeg4-od-au;base64,%s",
- odCmdBase64);
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("OD data URL = \042%s\042\n", urlBuf));
-
- /* MP4Descriptor* pOdEsd = */
- CreateESD(
- pEsProperty,
- 101,
- MP4SystemsV1ObjectType,
- MP4ObjectDescriptionStreamType,
- numBytes, // bufferSize
- numBytes * 8, // bitrate
- NULL, // config
- 0, // configLength
- urlBuf);
-
- MP4Free(odCmdBase64);
- odCmdBase64 = NULL;
- MP4Free(pBytes);
- pBytes = NULL;
- MP4Free(urlBuf);
- urlBuf = NULL;
-
- // finally get the whole thing written to a memory
- pIod->WriteToMemory(this, ppIodBytes, pIodNumBytes);
-
- delete pIod;
-
- VERBOSE_ISMA(GetVerbosity(),
- printf("IOD data =\n"); MP4HexDump(*ppIodBytes, *pIodNumBytes));
-}
-
-MP4Descriptor* MP4File::CreateESD(
- MP4DescriptorProperty* pEsProperty,
- u_int32_t esid,
- u_int8_t objectType,
- u_int8_t streamType,
- u_int32_t bufferSize,
- u_int32_t bitrate,
- u_int8_t* pConfig,
- u_int32_t configLength,
- char* url)
-{
- MP4IntegerProperty* pInt;
- MP4StringProperty* pString;
- MP4BytesProperty* pBytes;
-
- MP4Descriptor* pEsd =
- pEsProperty->AddDescriptor(MP4ESDescrTag);
- pEsd->Generate();
-
- pEsd->FindProperty("ESID",
- (MP4Property**)&pInt);
- pInt->SetValue(esid);
-
- pEsd->FindProperty("decConfigDescr.objectTypeId",
- (MP4Property**)&pInt);
- pInt->SetValue(objectType);
-
- pEsd->FindProperty("decConfigDescr.streamType",
- (MP4Property**)&pInt);
- pInt->SetValue(streamType);
-
- pEsd->FindProperty("decConfigDescr.bufferSizeDB",
- (MP4Property**)&pInt);
- pInt->SetValue(bufferSize);
-
- pEsd->FindProperty("decConfigDescr.maxBitrate",
- (MP4Property**)&pInt);
- pInt->SetValue(bitrate);
-
- pEsd->FindProperty("decConfigDescr.avgBitrate",
- (MP4Property**)&pInt);
- pInt->SetValue(bitrate);
-
- MP4DescriptorProperty* pConfigDescrProperty;
- pEsd->FindProperty("decConfigDescr.decSpecificInfo",
- (MP4Property**)&pConfigDescrProperty);
-
- MP4Descriptor* pConfigDescr =
- pConfigDescrProperty->AddDescriptor(MP4DecSpecificDescrTag);
- pConfigDescr->Generate();
-
- pConfigDescrProperty->FindProperty("decSpecificInfo[0].info",
- (MP4Property**)&pBytes);
- pBytes->SetValue(pConfig, configLength);
-
- pEsd->FindProperty("slConfigDescr.predefined",
- (MP4Property**)&pInt);
- pInt->SetValue(1);
-
- if (url) {
- pEsd->FindProperty("URLFlag",
- (MP4Property**)&pInt);
- pInt->SetValue(1);
-
- pEsd->FindProperty("URL",
- (MP4Property**)&pString);
- pString->SetValue(url);
- }
-
- return pEsd;
-}
-
-void MP4File::CreateIsmaODUpdateCommandFromFileForFile(
- MP4TrackId odTrackId,
- MP4TrackId audioTrackId,
- MP4TrackId videoTrackId,
- u_int8_t** ppBytes,
- u_int64_t* pNumBytes)
-{
- MP4Descriptor* pCommand = CreateODCommand(MP4ODUpdateODCommandTag);
- pCommand->Generate();
-
- for (u_int8_t i = 0; i < 2; i++) {
- MP4TrackId trackId;
- u_int16_t odId;
-
- if (i == 0) {
- trackId = audioTrackId;
- odId = 10;
- } else {
- trackId = videoTrackId;
- odId = 20;
- }
-
- if (trackId == MP4_INVALID_TRACK_ID) {
- continue;
- }
-
- MP4DescriptorProperty* pOdDescrProperty =
- (MP4DescriptorProperty*)(pCommand->GetProperty(0));
-
- pOdDescrProperty->SetTags(MP4FileODescrTag);
-
- MP4Descriptor* pOd =
- pOdDescrProperty->AddDescriptor(MP4FileODescrTag);
-
- pOd->Generate();
-
- MP4BitfieldProperty* pOdIdProperty = NULL;
- pOd->FindProperty("objectDescriptorId",
- (MP4Property**)&pOdIdProperty);
- pOdIdProperty->SetValue(odId);
-
- MP4DescriptorProperty* pEsIdsDescriptorProperty = NULL;
- pOd->FindProperty("esIds",
- (MP4Property**)&pEsIdsDescriptorProperty);
- ASSERT(pEsIdsDescriptorProperty);
-
- pEsIdsDescriptorProperty->SetTags(MP4ESIDRefDescrTag);
-
- MP4Descriptor *pRefDescriptor =
- pEsIdsDescriptorProperty->AddDescriptor(MP4ESIDRefDescrTag);
- pRefDescriptor->Generate();
-
- MP4Integer16Property* pRefIndexProperty = NULL;
- pRefDescriptor->FindProperty("refIndex",
- (MP4Property**)&pRefIndexProperty);
- ASSERT(pRefIndexProperty);
-
- u_int32_t mpodIndex = FindTrackReference(
- MakeTrackName(odTrackId, "tref.mpod"), trackId);
- ASSERT(mpodIndex != 0);
-
- pRefIndexProperty->SetValue(mpodIndex);
- }
-
- pCommand->WriteToMemory(this, ppBytes, pNumBytes);
-
- delete pCommand;
-}
-
-void MP4File::CreateIsmaODUpdateCommandFromFileForStream(
- MP4TrackId audioTrackId,
- MP4TrackId videoTrackId,
- u_int8_t** ppBytes,
- u_int64_t* pNumBytes)
-{
- MP4DescriptorProperty* pAudioEsd = NULL;
- MP4Integer8Property* pAudioSLConfig = NULL;
- MP4DescriptorProperty* pVideoEsd = NULL;
- MP4Integer8Property* pVideoSLConfig = NULL;
-
- if (audioTrackId != MP4_INVALID_TRACK_ID) {
- MP4Atom* pEsdsAtom =
- FindAtom(MakeTrackName(audioTrackId,
- "mdia.minf.stbl.stsd.mp4a.esds"));
- ASSERT(pEsdsAtom);
-
- pAudioEsd = (MP4DescriptorProperty*)(pEsdsAtom->GetProperty(2));
-
- // SL config needs to change from 2 (file) to 1 (null)
- pAudioEsd->FindProperty("slConfigDescr.predefined",
- (MP4Property**)&pAudioSLConfig);
- ASSERT(pAudioSLConfig);
- pAudioSLConfig->SetValue(1);
- }
-
- if (videoTrackId != MP4_INVALID_TRACK_ID) {
- MP4Atom* pEsdsAtom =
- FindAtom(MakeTrackName(videoTrackId,
- "mdia.minf.stbl.stsd.mp4v.esds"));
- ASSERT(pEsdsAtom);
-
- pVideoEsd = (MP4DescriptorProperty*)(pEsdsAtom->GetProperty(2));
-
- // SL config needs to change from 2 (file) to 1 (null)
- pVideoEsd->FindProperty("slConfigDescr.predefined",
- (MP4Property**)&pVideoSLConfig);
- ASSERT(pVideoSLConfig);
- pVideoSLConfig->SetValue(1);
- }
-
- CreateIsmaODUpdateCommandForStream(
- pAudioEsd, pVideoEsd, ppBytes, pNumBytes);
-
- // return SL config values to 2 (file)
- if (pAudioSLConfig) {
- pAudioSLConfig->SetValue(2);
- }
- if (pVideoSLConfig) {
- pVideoSLConfig->SetValue(2);
- }
-}
-
-void MP4File::CreateIsmaODUpdateCommandForStream(
- MP4DescriptorProperty* pAudioEsdProperty,
- MP4DescriptorProperty* pVideoEsdProperty,
- u_int8_t** ppBytes,
- u_int64_t* pNumBytes)
-{
- MP4Descriptor* pAudioOd = NULL;
- MP4Descriptor* pVideoOd = NULL;
-
- MP4Descriptor* pCommand =
- CreateODCommand(MP4ODUpdateODCommandTag);
- pCommand->Generate();
-
- for (u_int8_t i = 0; i < 2; i++) {
- u_int16_t odId;
- MP4DescriptorProperty* pEsdProperty = NULL;
-
- if (i == 0) {
- odId = 10;
- pEsdProperty = pAudioEsdProperty;
- } else {
- odId = 20;
- pEsdProperty = pVideoEsdProperty;
- }
-
- if (pEsdProperty == NULL) {
- continue;
- }
-
- MP4DescriptorProperty* pOdDescrProperty =
- (MP4DescriptorProperty*)(pCommand->GetProperty(0));
-
- pOdDescrProperty->SetTags(MP4ODescrTag);
-
- MP4Descriptor* pOd =
- pOdDescrProperty->AddDescriptor(MP4ODescrTag);
- pOd->Generate();
-
- if (i == 0) {
- pAudioOd = pOd;
- } else {
- pVideoOd = pOd;
- }
-
- MP4BitfieldProperty* pOdIdProperty = NULL;
- pOd->FindProperty("objectDescriptorId",
- (MP4Property**)&pOdIdProperty);
- pOdIdProperty->SetValue(odId);
-
- delete (MP4DescriptorProperty*)pOd->GetProperty(4);
- pOd->SetProperty(4, pEsdProperty);
- }
-
- // serialize OD command
- pCommand->WriteToMemory(this, ppBytes, pNumBytes);
-
- // detach from esd descriptor params
- if (pAudioOd) {
- pAudioOd->SetProperty(4, NULL);
- }
- if (pVideoOd) {
- pVideoOd->SetProperty(4, NULL);
- }
-
- // then destroy
- delete pCommand;
-}
-
-void MP4File::CreateIsmaSceneCommand(
- bool hasAudio,
- bool hasVideo,
- u_int8_t** ppBytes,
- u_int64_t* pNumBytes)
-{
- // from ISMA 1.0 Tech Spec Appendix E
- static u_int8_t bifsAudioOnly[] = {
- 0xC0, 0x10, 0x12,
- 0x81, 0x30, 0x2A, 0x05, 0x6D, 0xC0
- };
- static u_int8_t bifsVideoOnly[] = {
- 0xC0, 0x10, 0x12,
- 0x61, 0x04,
- 0x1F, 0xC0, 0x00, 0x00,
- 0x1F, 0xC0, 0x00, 0x00,
- 0x44, 0x28, 0x22, 0x82, 0x9F, 0x80
- };
- static u_int8_t bifsAudioVideo[] = {
- 0xC0, 0x10, 0x12,
- 0x81, 0x30, 0x2A, 0x05, 0x6D, 0x26,
- 0x10, 0x41, 0xFC, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00,
- 0x04, 0x42, 0x82, 0x28, 0x29, 0xF8
- };
-
- if (hasAudio && hasVideo) {
- *pNumBytes = sizeof(bifsAudioVideo);
- *ppBytes = (u_int8_t*)MP4Malloc(*pNumBytes);
- memcpy(*ppBytes, bifsAudioVideo, sizeof(bifsAudioVideo));
-
- } else if (hasAudio) {
- *pNumBytes = sizeof(bifsAudioOnly);
- *ppBytes = (u_int8_t*)MP4Malloc(*pNumBytes);
- memcpy(*ppBytes, bifsAudioOnly, sizeof(bifsAudioOnly));
-
- } else if (hasVideo) {
- *pNumBytes = sizeof(bifsVideoOnly);
- *ppBytes = (u_int8_t*)MP4Malloc(*pNumBytes);
- memcpy(*ppBytes, bifsVideoOnly, sizeof(bifsVideoOnly));
- } else {
- *pNumBytes = 0;
- *ppBytes = NULL;
- }
-}
-
+/*
+ * The contents of this file are subject to the Mozilla Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * The Original Code is MPEG4IP.
+ *
+ * The Initial Developer of the Original Code is Cisco Systems Inc.
+ * Portions created by Cisco Systems Inc. are
+ * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Dave Mackie [email protected]
+ */
+
+#include "mp4common.h"
+
+static u_int8_t BifsV2Config[3] = {
+ 0x00, 0x00, 0x60 // IsCommandStream = 1, PixelMetric = 1
+};
+
+void MP4File::MakeIsmaCompliant(bool addIsmaComplianceSdp)
+{
+ ProtectWriteOperation("MP4MakeIsmaCompliant");
+
+ if (m_useIsma) {
+ // already done
+ return;
+ }
+ m_useIsma = true;
+
+ // find first audio and/or video tracks
+
+ MP4TrackId audioTrackId = MP4_INVALID_TRACK_ID;
+ try {
+ audioTrackId = FindTrackId(0, MP4_AUDIO_TRACK_TYPE);
+ }
+ catch (MP4Error* e) {
+ delete e;
+ }
+
+ MP4TrackId videoTrackId = MP4_INVALID_TRACK_ID;
+ try {
+ videoTrackId = FindTrackId(0, MP4_VIDEO_TRACK_TYPE);
+ }
+ catch (MP4Error* e) {
+ delete e;
+ }
+
+ u_int64_t fileMsDuration =
+ ConvertFromMovieDuration(GetDuration(), MP4_MSECS_TIME_SCALE);
+
+ // delete any existing OD track
+ if (m_odTrackId != MP4_INVALID_TRACK_ID) {
+ DeleteTrack(m_odTrackId);
+ }
+
+ AddODTrack();
+ SetODProfileLevel(0xFF);
+
+ if (audioTrackId != MP4_INVALID_TRACK_ID) {
+ AddTrackToOd(audioTrackId);
+ }
+
+ if (videoTrackId != MP4_INVALID_TRACK_ID) {
+ AddTrackToOd(videoTrackId);
+ }
+
+ // delete any existing scene track
+ MP4TrackId sceneTrackId = MP4_INVALID_TRACK_ID;
+ try {
+ sceneTrackId = FindTrackId(0, MP4_SCENE_TRACK_TYPE);
+ }
+ catch (MP4Error *e) {
+ delete e;
+ }
+ if (sceneTrackId != MP4_INVALID_TRACK_ID) {
+ DeleteTrack(sceneTrackId);
+ }
+
+ // add scene track
+ sceneTrackId = AddSceneTrack();
+ SetSceneProfileLevel(0xFF);
+ SetGraphicsProfileLevel(0xFF);
+ SetTrackIntegerProperty(sceneTrackId,
+ "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr.objectTypeId",
+ MP4SystemsV2ObjectType);
+
+ SetTrackESConfiguration(sceneTrackId,
+ BifsV2Config, sizeof(BifsV2Config));
+
+ u_int8_t* pBytes = NULL;
+ u_int64_t numBytes = 0;
+
+ // write OD Update Command
+ CreateIsmaODUpdateCommandFromFileForFile(
+ m_odTrackId,
+ audioTrackId,
+ videoTrackId,
+ &pBytes,
+ &numBytes);
+
+ WriteSample(m_odTrackId, pBytes, numBytes, fileMsDuration);
+
+ MP4Free(pBytes);
+ pBytes = NULL;
+
+ // write BIFS Scene Replace Command
+ CreateIsmaSceneCommand(
+ MP4_IS_VALID_TRACK_ID(audioTrackId),
+ MP4_IS_VALID_TRACK_ID(videoTrackId),
+ &pBytes,
+ &numBytes);
+
+ WriteSample(sceneTrackId, pBytes, numBytes, fileMsDuration);
+
+ MP4Free(pBytes);
+ pBytes = NULL;
+
+ // add session level sdp
+ CreateIsmaIodFromFile(
+ m_odTrackId,
+ sceneTrackId,
+ audioTrackId,
+ videoTrackId,
+ &pBytes,
+ &numBytes);
+
+ char* iodBase64 = MP4ToBase64(pBytes, numBytes);
+
+ char* sdpBuf = (char*)MP4Calloc(strlen(iodBase64) + 256);
+
+ if (addIsmaComplianceSdp) {
+ strcpy(sdpBuf, "a=isma-compliance:1,1.0,1\015\012");
+ }
+
+ sprintf(&sdpBuf[strlen(sdpBuf)],
+ "a=mpeg4-iod: \042data:application/mpeg4-iod;base64,%s\042\015\012",
+ iodBase64);
+
+ SetSessionSdp(sdpBuf);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("IOD SDP = %s\n", sdpBuf));
+
+ MP4Free(iodBase64);
+ iodBase64 = NULL;
+ MP4Free(pBytes);
+ pBytes = NULL;
+ MP4Free(sdpBuf);
+ sdpBuf = NULL;
+}
+
+static void CloneIntegerProperty(
+ MP4Descriptor* pDest,
+ MP4DescriptorProperty* pSrc,
+ const char* name)
+{
+ MP4IntegerProperty* pGetProperty;
+ MP4IntegerProperty* pSetProperty;
+
+ pSrc->FindProperty(name, (MP4Property**)&pGetProperty);
+ pDest->FindProperty(name, (MP4Property**)&pSetProperty);
+
+ pSetProperty->SetValue(pGetProperty->GetValue());
+}
+
+void MP4File::CreateIsmaIodFromFile(
+ MP4TrackId odTrackId,
+ MP4TrackId sceneTrackId,
+ MP4TrackId audioTrackId,
+ MP4TrackId videoTrackId,
+ u_int8_t** ppBytes,
+ u_int64_t* pNumBytes)
+{
+ MP4Descriptor* pIod = new MP4IODescriptor();
+ pIod->SetTag(MP4IODescrTag);
+ pIod->Generate();
+
+ MP4Atom* pIodsAtom = FindAtom("moov.iods");
+ ASSERT(pIodsAtom);
+ MP4DescriptorProperty* pSrcIod =
+ (MP4DescriptorProperty*)pIodsAtom->GetProperty(2);
+
+ CloneIntegerProperty(pIod, pSrcIod, "objectDescriptorId");
+ CloneIntegerProperty(pIod, pSrcIod, "ODProfileLevelId");
+ CloneIntegerProperty(pIod, pSrcIod, "sceneProfileLevelId");
+ CloneIntegerProperty(pIod, pSrcIod, "audioProfileLevelId");
+ CloneIntegerProperty(pIod, pSrcIod, "visualProfileLevelId");
+ CloneIntegerProperty(pIod, pSrcIod, "graphicsProfileLevelId");
+
+ // mutate esIds from MP4ESIDIncDescrTag to MP4ESDescrTag
+ MP4DescriptorProperty* pEsProperty;
+ pIod->FindProperty("esIds", (MP4Property**)&pEsProperty);
+ pEsProperty->SetTags(MP4ESDescrTag);
+
+ MP4IntegerProperty* pSetProperty;
+
+ // OD
+ MP4Descriptor* pOdEsd =
+ pEsProperty->AddDescriptor(MP4ESDescrTag);
+ pOdEsd->Generate();
+
+ pOdEsd->FindProperty("ESID",
+ (MP4Property**)&pSetProperty);
+ pSetProperty->SetValue(m_odTrackId);
+
+ pOdEsd->FindProperty("URLFlag",
+ (MP4Property**)&pSetProperty);
+ pSetProperty->SetValue(1);
+
+ u_int8_t* pBytes;
+ u_int64_t numBytes;
+
+ CreateIsmaODUpdateCommandFromFileForStream(
+ audioTrackId,
+ videoTrackId,
+ &pBytes,
+ &numBytes);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("OD data =\n"); MP4HexDump(pBytes, numBytes));
+
+ char* odCmdBase64 = MP4ToBase64(pBytes, numBytes);
+
+ char* urlBuf = (char*)MP4Malloc(strlen(odCmdBase64) + 64);
+
+ sprintf(urlBuf,
+ "data:application/mpeg4-od-au;base64,%s",
+ odCmdBase64);
+
+ MP4StringProperty* pUrlProperty;
+ pOdEsd->FindProperty("URL",
+ (MP4Property**)&pUrlProperty);
+ pUrlProperty->SetValue(urlBuf);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("OD data URL = \042%s\042\n", urlBuf));
+
+ MP4Free(odCmdBase64);
+ odCmdBase64 = NULL;
+ MP4Free(pBytes);
+ pBytes = NULL;
+ MP4Free(urlBuf);
+ urlBuf = NULL;
+
+ MP4DescriptorProperty* pSrcDcd = NULL;
+
+ // HACK temporarily point to scene decoder config
+ FindProperty(MakeTrackName(odTrackId,
+ "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr"),
+ (MP4Property**)&pSrcDcd);
+ ASSERT(pSrcDcd);
+ MP4Property* pOrgOdEsdProperty =
+ pOdEsd->GetProperty(8);
+ pOdEsd->SetProperty(8, pSrcDcd);
+
+ // bufferSizeDB needs to be set appropriately
+ MP4BitfieldProperty* pBufferSizeProperty = NULL;
+ pOdEsd->FindProperty("decConfigDescr.bufferSizeDB",
+ (MP4Property**)&pBufferSizeProperty);
+ ASSERT(pBufferSizeProperty);
+ pBufferSizeProperty->SetValue(numBytes);
+
+ // SL config needs to change from 2 (file) to 1 (null)
+ pOdEsd->FindProperty("slConfigDescr.predefined",
+ (MP4Property**)&pSetProperty);
+ pSetProperty->SetValue(1);
+
+
+ // Scene
+ MP4Descriptor* pSceneEsd =
+ pEsProperty->AddDescriptor(MP4ESDescrTag);
+ pSceneEsd->Generate();
+
+ pSceneEsd->FindProperty("ESID",
+ (MP4Property**)&pSetProperty);
+ pSetProperty->SetValue(sceneTrackId);
+
+ pSceneEsd->FindProperty("URLFlag",
+ (MP4Property**)&pSetProperty);
+ pSetProperty->SetValue(1);
+
+ CreateIsmaSceneCommand(
+ MP4_IS_VALID_TRACK_ID(audioTrackId),
+ MP4_IS_VALID_TRACK_ID(videoTrackId),
+ &pBytes,
+ &numBytes);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("Scene data =\n"); MP4HexDump(pBytes, numBytes));
+
+ char *sceneCmdBase64 = MP4ToBase64(pBytes, numBytes);
+
+ urlBuf = (char*)MP4Malloc(strlen(sceneCmdBase64) + 64);
+ sprintf(urlBuf,
+ "data:application/mpeg4-bifs-au;base64,%s",
+ sceneCmdBase64);
+
+ pSceneEsd->FindProperty("URL",
+ (MP4Property**)&pUrlProperty);
+ pUrlProperty->SetValue(urlBuf);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("Scene data URL = \042%s\042\n", urlBuf));
+
+ MP4Free(sceneCmdBase64);
+ sceneCmdBase64 = NULL;
+ MP4Free(urlBuf);
+ urlBuf = NULL;
+ MP4Free(pBytes);
+ pBytes = NULL;
+
+ // HACK temporarily point to scene decoder config
+ FindProperty(MakeTrackName(sceneTrackId,
+ "mdia.minf.stbl.stsd.mp4s.esds.decConfigDescr"),
+ (MP4Property**)&pSrcDcd);
+ ASSERT(pSrcDcd);
+ MP4Property* pOrgSceneEsdProperty =
+ pSceneEsd->GetProperty(8);
+ pSceneEsd->SetProperty(8, pSrcDcd);
+
+ // bufferSizeDB needs to be set
+ pBufferSizeProperty = NULL;
+ pSceneEsd->FindProperty("decConfigDescr.bufferSizeDB",
+ (MP4Property**)&pBufferSizeProperty);
+ ASSERT(pBufferSizeProperty);
+ pBufferSizeProperty->SetValue(numBytes);
+
+ // SL config needs to change from 2 (file) to 1 (null)
+ pSceneEsd->FindProperty("slConfigDescr.predefined",
+ (MP4Property**)&pSetProperty);
+ pSetProperty->SetValue(1);
+
+
+ // finally get the whole thing written to a memory
+ pIod->WriteToMemory(this, ppBytes, pNumBytes);
+
+
+ // now carefully replace esd properties before destroying
+ pOdEsd->SetProperty(8, pOrgOdEsdProperty);
+ pSceneEsd->SetProperty(8, pOrgSceneEsdProperty);
+
+ delete pIod;
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("IOD data =\n"); MP4HexDump(*ppBytes, *pNumBytes));
+}
+
+void MP4File::CreateIsmaIodFromParams(
+ u_int8_t videoProfile,
+ u_int32_t videoBitrate,
+ u_int8_t* videoConfig,
+ u_int32_t videoConfigLength,
+ u_int8_t audioProfile,
+ u_int32_t audioBitrate,
+ u_int8_t* audioConfig,
+ u_int32_t audioConfigLength,
+ u_int8_t** ppIodBytes,
+ u_int64_t* pIodNumBytes)
+{
+ MP4IntegerProperty* pInt;
+ u_int8_t* pBytes = NULL;
+ u_int64_t numBytes;
+
+ // Create the IOD
+ MP4Descriptor* pIod = new MP4IODescriptor();
+ pIod->SetTag(MP4IODescrTag);
+ pIod->Generate();
+
+ // Set audio and video profileLevels
+ pIod->FindProperty("audioProfileLevelId",
+ (MP4Property**)&pInt);
+ pInt->SetValue(audioProfile);
+
+ pIod->FindProperty("visualProfileLevelId",
+ (MP4Property**)&pInt);
+ pInt->SetValue(videoProfile);
+
+ // Mutate esIds from MP4ESIDIncDescrTag to MP4ESDescrTag
+ MP4DescriptorProperty* pEsProperty;
+ pIod->FindProperty("esIds", (MP4Property**)&pEsProperty);
+ pEsProperty->SetTags(MP4ESDescrTag);
+
+ // Add ES Descriptors
+
+ // Scene
+ CreateIsmaSceneCommand(
+ (audioProfile != 0xFF),
+ (videoProfile != 0xFF),
+ &pBytes,
+ &numBytes);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("Scene data =\n"); MP4HexDump(pBytes, numBytes));
+
+ char* sceneCmdBase64 = MP4ToBase64(pBytes, numBytes);
+
+ char* urlBuf =
+ (char*)MP4Malloc(strlen(sceneCmdBase64) + 64);
+ sprintf(urlBuf,
+ "data:application/mpeg4-bifs-au;base64,%s",
+ sceneCmdBase64);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("Scene data URL = \042%s\042\n", urlBuf));
+
+ /* MP4Descriptor* pSceneEsd = */
+ CreateESD(
+ pEsProperty,
+ 201, // esid
+ MP4SystemsV2ObjectType,
+ MP4SceneDescriptionStreamType,
+ numBytes, // bufferSize
+ numBytes * 8, // bitrate
+ BifsV2Config,
+ sizeof(BifsV2Config),
+ urlBuf);
+
+ MP4Free(sceneCmdBase64);
+ sceneCmdBase64 = NULL;
+ MP4Free(urlBuf);
+ urlBuf = NULL;
+ MP4Free(pBytes);
+ pBytes = NULL;
+
+ // OD
+
+ // Video
+ MP4DescriptorProperty* pVideoEsdProperty =
+ new MP4DescriptorProperty();
+ pVideoEsdProperty->SetTags(MP4ESDescrTag);
+
+ /* MP4Descriptor* pVideoEsd = */
+ CreateESD(
+ pVideoEsdProperty,
+ 20, // esid
+ MP4_MPEG4_VIDEO_TYPE,
+ MP4VisualStreamType,
+ videoBitrate / 8, // bufferSize
+ videoBitrate,
+ videoConfig,
+ videoConfigLength,
+ NULL);
+
+ // Audio
+ MP4DescriptorProperty* pAudioEsdProperty =
+ new MP4DescriptorProperty();
+ pAudioEsdProperty->SetTags(MP4ESDescrTag);
+
+ /* MP4Descriptor* pAudioEsd = */
+ CreateESD(
+ pAudioEsdProperty,
+ 10, // esid
+ MP4_MPEG4_AUDIO_TYPE,
+ MP4AudioStreamType,
+ audioBitrate / 8, // bufferSize
+ audioBitrate,
+ audioConfig,
+ audioConfigLength,
+ NULL);
+
+ CreateIsmaODUpdateCommandForStream(
+ pAudioEsdProperty,
+ pVideoEsdProperty,
+ &pBytes,
+ &numBytes);
+
+ // cleanup temporary descriptor properties
+ delete pAudioEsdProperty;
+ delete pVideoEsdProperty;
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("OD data =\n"); MP4HexDump(pBytes, numBytes));
+
+ char* odCmdBase64 = MP4ToBase64(pBytes, numBytes);
+
+ urlBuf = (char*)MP4Malloc(strlen(odCmdBase64) + 64);
+
+ sprintf(urlBuf,
+ "data:application/mpeg4-od-au;base64,%s",
+ odCmdBase64);
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("OD data URL = \042%s\042\n", urlBuf));
+
+ /* MP4Descriptor* pOdEsd = */
+ CreateESD(
+ pEsProperty,
+ 101,
+ MP4SystemsV1ObjectType,
+ MP4ObjectDescriptionStreamType,
+ numBytes, // bufferSize
+ numBytes * 8, // bitrate
+ NULL, // config
+ 0, // configLength
+ urlBuf);
+
+ MP4Free(odCmdBase64);
+ odCmdBase64 = NULL;
+ MP4Free(pBytes);
+ pBytes = NULL;
+ MP4Free(urlBuf);
+ urlBuf = NULL;
+
+ // finally get the whole thing written to a memory
+ pIod->WriteToMemory(this, ppIodBytes, pIodNumBytes);
+
+ delete pIod;
+
+ VERBOSE_ISMA(GetVerbosity(),
+ printf("IOD data =\n"); MP4HexDump(*ppIodBytes, *pIodNumBytes));
+}
+
+MP4Descriptor* MP4File::CreateESD(
+ MP4DescriptorProperty* pEsProperty,
+ u_int32_t esid,
+ u_int8_t objectType,
+ u_int8_t streamType,
+ u_int32_t bufferSize,
+ u_int32_t bitrate,
+ u_int8_t* pConfig,
+ u_int32_t configLength,
+ char* url)
+{
+ MP4IntegerProperty* pInt;
+ MP4StringProperty* pString;
+ MP4BytesProperty* pBytes;
+ MP4BitfieldProperty* pBits;
+
+ MP4Descriptor* pEsd =
+ pEsProperty->AddDescriptor(MP4ESDescrTag);
+ pEsd->Generate();
+
+ pEsd->FindProperty("ESID",
+ (MP4Property**)&pInt);
+ pInt->SetValue(esid);
+
+ pEsd->FindProperty("decConfigDescr.objectTypeId",
+ (MP4Property**)&pInt);
+ pInt->SetValue(objectType);
+
+ pEsd->FindProperty("decConfigDescr.streamType",
+ (MP4Property**)&pInt);
+ pInt->SetValue(streamType);
+
+ pEsd->FindProperty("decConfigDescr.bufferSizeDB",
+ (MP4Property**)&pInt);
+ pInt->SetValue(bufferSize);
+
+ pEsd->FindProperty("decConfigDescr.maxBitrate",
+ (MP4Property**)&pInt);
+ pInt->SetValue(bitrate);
+
+ pEsd->FindProperty("decConfigDescr.avgBitrate",
+ (MP4Property**)&pInt);
+ pInt->SetValue(bitrate);
+
+ MP4DescriptorProperty* pConfigDescrProperty;
+ pEsd->FindProperty("decConfigDescr.decSpecificInfo",
+ (MP4Property**)&pConfigDescrProperty);
+
+ MP4Descriptor* pConfigDescr =
+ pConfigDescrProperty->AddDescriptor(MP4DecSpecificDescrTag);
+ pConfigDescr->Generate();
+
+ pConfigDescrProperty->FindProperty("decSpecificInfo[0].info",
+ (MP4Property**)&pBytes);
+ pBytes->SetValue(pConfig, configLength);
+
+ pEsd->FindProperty("slConfigDescr.predefined",
+ (MP4Property**)&pInt);
+ // changed 12/5/02 from plugfest to value 0
+ pInt->SetValue(0);
+
+ pEsd->FindProperty("slConfig.useAccessUnitEndFlag",
+ (MP4Property **)&pBits);
+ pBits->SetValue(1);
+
+ if (url) {
+ pEsd->FindProperty("URLFlag",
+ (MP4Property**)&pInt);
+ pInt->SetValue(1);
+
+ pEsd->FindProperty("URL",
+ (MP4Property**)&pString);
+ pString->SetValue(url);
+ }
+
+ return pEsd;
+}
+
+void MP4File::CreateIsmaODUpdateCommandFromFileForFile(
+ MP4TrackId odTrackId,
+ MP4TrackId audioTrackId,
+ MP4TrackId videoTrackId,
+ u_int8_t** ppBytes,
+ u_int64_t* pNumBytes)
+{
+ MP4Descriptor* pCommand = CreateODCommand(MP4ODUpdateODCommandTag);
+ pCommand->Generate();
+
+ for (u_int8_t i = 0; i < 2; i++) {
+ MP4TrackId trackId;
+ u_int16_t odId;
+
+ if (i == 0) {
+ trackId = audioTrackId;
+ odId = 10;
+ } else {
+ trackId = videoTrackId;
+ odId = 20;
+ }
+
+ if (trackId == MP4_INVALID_TRACK_ID) {
+ continue;
+ }
+
+ MP4DescriptorProperty* pOdDescrProperty =
+ (MP4DescriptorProperty*)(pCommand->GetProperty(0));
+
+ pOdDescrProperty->SetTags(MP4FileODescrTag);
+
+ MP4Descriptor* pOd =
+ pOdDescrProperty->AddDescriptor(MP4FileODescrTag);
+
+ pOd->Generate();
+
+ MP4BitfieldProperty* pOdIdProperty = NULL;
+ pOd->FindProperty("objectDescriptorId",
+ (MP4Property**)&pOdIdProperty);
+ pOdIdProperty->SetValue(odId);
+
+ MP4DescriptorProperty* pEsIdsDescriptorProperty = NULL;
+ pOd->FindProperty("esIds",
+ (MP4Property**)&pEsIdsDescriptorProperty);
+ ASSERT(pEsIdsDescriptorProperty);
+
+ pEsIdsDescriptorProperty->SetTags(MP4ESIDRefDescrTag);
+
+ MP4Descriptor *pRefDescriptor =
+ pEsIdsDescriptorProperty->AddDescriptor(MP4ESIDRefDescrTag);
+ pRefDescriptor->Generate();
+
+ MP4Integer16Property* pRefIndexProperty = NULL;
+ pRefDescriptor->FindProperty("refIndex",
+ (MP4Property**)&pRefIndexProperty);
+ ASSERT(pRefIndexProperty);
+
+ u_int32_t mpodIndex = FindTrackReference(
+ MakeTrackName(odTrackId, "tref.mpod"), trackId);
+ ASSERT(mpodIndex != 0);
+
+ pRefIndexProperty->SetValue(mpodIndex);
+ }
+
+ pCommand->WriteToMemory(this, ppBytes, pNumBytes);
+
+ delete pCommand;
+}
+
+void MP4File::CreateIsmaODUpdateCommandFromFileForStream(
+ MP4TrackId audioTrackId,
+ MP4TrackId videoTrackId,
+ u_int8_t** ppBytes,
+ u_int64_t* pNumBytes)
+{
+ MP4DescriptorProperty* pAudioEsd = NULL;
+ MP4Integer8Property* pAudioSLConfig = NULL;
+ MP4BitfieldProperty* pAudioAccessUnitEndFlag = NULL;
+ int oldAudioUnitEndFlagValue = 0;
+ MP4DescriptorProperty* pVideoEsd = NULL;
+ MP4Integer8Property* pVideoSLConfig = NULL;
+ MP4BitfieldProperty* pVideoAccessUnitEndFlag = NULL;
+ int oldVideoUnitEndFlagValue = 0;
+
+ if (audioTrackId != MP4_INVALID_TRACK_ID) {
+ MP4Atom* pEsdsAtom =
+ FindAtom(MakeTrackName(audioTrackId,
+ "mdia.minf.stbl.stsd.mp4a.esds"));
+ ASSERT(pEsdsAtom);
+
+ pAudioEsd = (MP4DescriptorProperty*)(pEsdsAtom->GetProperty(2));
+
+ // SL config needs to change from 2 (file) to 1 (null)
+ pAudioEsd->FindProperty("slConfigDescr.predefined",
+ (MP4Property**)&pAudioSLConfig);
+ ASSERT(pAudioSLConfig);
+#if 0
+ // changed 12/05/02 wmay
+ pAudioSLConfig->SetValue(1);
+#else
+ pAudioSLConfig->SetValue(0);
+#endif
+ pAudioEsd->FindProperty("slConfigDescr.useAccessUnitEndFlag",
+ (MP4Property **)&pAudioAccessUnitEndFlag);
+ oldAudioUnitEndFlagValue =
+ pAudioAccessUnitEndFlag->GetValue();
+ pAudioAccessUnitEndFlag->SetValue(1);
+ }
+
+ if (videoTrackId != MP4_INVALID_TRACK_ID) {
+ MP4Atom* pEsdsAtom =
+ FindAtom(MakeTrackName(videoTrackId,
+ "mdia.minf.stbl.stsd.mp4v.esds"));
+ ASSERT(pEsdsAtom);
+
+ pVideoEsd = (MP4DescriptorProperty*)(pEsdsAtom->GetProperty(2));
+
+ // SL config needs to change from 2 (file) to 1 (null)
+ pVideoEsd->FindProperty("slConfigDescr.predefined",
+ (MP4Property**)&pVideoSLConfig);
+ ASSERT(pVideoSLConfig);
+#if 0
+ pVideoSLConfig->SetValue(1);
+ // changed 12/05/02 wmay
+#else
+ pVideoSLConfig->SetValue(0);
+#endif
+ pVideoEsd->FindProperty("slConfigDescr.useAccessUnitEndFlag",
+ (MP4Property **)&pVideoAccessUnitEndFlag);
+ oldVideoUnitEndFlagValue =
+ pVideoAccessUnitEndFlag->GetValue();
+ pVideoAccessUnitEndFlag->SetValue(1);
+ }
+
+ CreateIsmaODUpdateCommandForStream(
+ pAudioEsd, pVideoEsd, ppBytes, pNumBytes);
+
+ // return SL config values to 2 (file)
+ if (pAudioSLConfig) {
+ pAudioSLConfig->SetValue(2);
+ }
+ if (pAudioAccessUnitEndFlag) {
+ pAudioAccessUnitEndFlag->SetValue(oldAudioUnitEndFlagValue );
+ }
+ if (pVideoSLConfig) {
+ pVideoSLConfig->SetValue(2);
+ }
+ if (pVideoAccessUnitEndFlag) {
+ pVideoAccessUnitEndFlag->SetValue(oldVideoUnitEndFlagValue );
+ }
+}
+
+void MP4File::CreateIsmaODUpdateCommandForStream(
+ MP4DescriptorProperty* pAudioEsdProperty,
+ MP4DescriptorProperty* pVideoEsdProperty,
+ u_int8_t** ppBytes,
+ u_int64_t* pNumBytes)
+{
+ MP4Descriptor* pAudioOd = NULL;
+ MP4Descriptor* pVideoOd = NULL;
+
+ MP4Descriptor* pCommand =
+ CreateODCommand(MP4ODUpdateODCommandTag);
+ pCommand->Generate();
+
+ for (u_int8_t i = 0; i < 2; i++) {
+ u_int16_t odId;
+ MP4DescriptorProperty* pEsdProperty = NULL;
+
+ if (i == 0) {
+ odId = 10;
+ pEsdProperty = pAudioEsdProperty;
+ } else {
+ odId = 20;
+ pEsdProperty = pVideoEsdProperty;
+ }
+
+ if (pEsdProperty == NULL) {
+ continue;
+ }
+
+ MP4DescriptorProperty* pOdDescrProperty =
+ (MP4DescriptorProperty*)(pCommand->GetProperty(0));
+
+ pOdDescrProperty->SetTags(MP4ODescrTag);
+
+ MP4Descriptor* pOd =
+ pOdDescrProperty->AddDescriptor(MP4ODescrTag);
+ pOd->Generate();
+
+ if (i == 0) {
+ pAudioOd = pOd;
+ } else {
+ pVideoOd = pOd;
+ }
+
+ MP4BitfieldProperty* pOdIdProperty = NULL;
+ pOd->FindProperty("objectDescriptorId",
+ (MP4Property**)&pOdIdProperty);
+ pOdIdProperty->SetValue(odId);
+
+ delete (MP4DescriptorProperty*)pOd->GetProperty(4);
+ pOd->SetProperty(4, pEsdProperty);
+ }
+
+ // serialize OD command
+ pCommand->WriteToMemory(this, ppBytes, pNumBytes);
+
+ // detach from esd descriptor params
+ if (pAudioOd) {
+ pAudioOd->SetProperty(4, NULL);
+ }
+ if (pVideoOd) {
+ pVideoOd->SetProperty(4, NULL);
+ }
+
+ // then destroy
+ delete pCommand;
+}
+
+void MP4File::CreateIsmaSceneCommand(
+ bool hasAudio,
+ bool hasVideo,
+ u_int8_t** ppBytes,
+ u_int64_t* pNumBytes)
+{
+ // from ISMA 1.0 Tech Spec Appendix E
+ static u_int8_t bifsAudioOnly[] = {
+ 0xC0, 0x10, 0x12,
+ 0x81, 0x30, 0x2A, 0x05, 0x6D, 0xC0
+ };
+ static u_int8_t bifsVideoOnly[] = {
+ 0xC0, 0x10, 0x12,
+ 0x61, 0x04,
+ 0x1F, 0xC0, 0x00, 0x00,
+ 0x1F, 0xC0, 0x00, 0x00,
+ 0x44, 0x28, 0x22, 0x82, 0x9F, 0x80
+ };
+ static u_int8_t bifsAudioVideo[] = {
+ 0xC0, 0x10, 0x12,
+ 0x81, 0x30, 0x2A, 0x05, 0x6D, 0x26,
+ 0x10, 0x41, 0xFC, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00,
+ 0x04, 0x42, 0x82, 0x28, 0x29, 0xF8
+ };
+
+ if (hasAudio && hasVideo) {
+ *pNumBytes = sizeof(bifsAudioVideo);
+ *ppBytes = (u_int8_t*)MP4Malloc(*pNumBytes);
+ memcpy(*ppBytes, bifsAudioVideo, sizeof(bifsAudioVideo));
+
+ } else if (hasAudio) {
+ *pNumBytes = sizeof(bifsAudioOnly);
+ *ppBytes = (u_int8_t*)MP4Malloc(*pNumBytes);
+ memcpy(*ppBytes, bifsAudioOnly, sizeof(bifsAudioOnly));
+
+ } else if (hasVideo) {
+ *pNumBytes = sizeof(bifsVideoOnly);
+ *ppBytes = (u_int8_t*)MP4Malloc(*pNumBytes);
+ memcpy(*ppBytes, bifsVideoOnly, sizeof(bifsVideoOnly));
+ } else {
+ *pNumBytes = 0;
+ *ppBytes = NULL;
+ }
+}
+
--- a/common/mp4v2/libmp4v2_st60.dsp
+++ b/common/mp4v2/libmp4v2_st60.dsp
@@ -40,8 +40,9 @@
# PROP Output_Dir "ST_Release"
# PROP Intermediate_Dir "ST_Release"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I ".\\" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".\\" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE RSC /l 0x409
# ADD RSC /l 0x409
BSC32=bscmake.exe
@@ -63,6 +64,7 @@
# PROP Output_Dir "ST_Debug"
# PROP Intermediate_Dir "ST_Debug"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I ".\\" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE RSC /l 0x409
--- a/common/mp4v2/libmp4v2_st60.vcproj
+++ b/common/mp4v2/libmp4v2_st60.vcproj
@@ -24,7 +24,7 @@
AdditionalIncludeDirectories=".\"
PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\ST_Release/libmp4v2_st60.pch"
@@ -40,10 +40,10 @@
InlineFuncExpansion="1"
OmitFramePtrs="1"
StringPooling="1"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
BufferSecurityCheck="1"
FunctionLevelLinking="1"
- AllOptions="/c /I ".\\" /nologo /W3 /O2 /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /GF /FD /EHsc /MT /GS /Gy /YX"StdAfx.h" /Fp".\ST_Release/libmp4v2_st60.pch" /Fo".\ST_Release/" /Fd".\ST_Release/" /Gd"
+ AllOptions="/c /I ".\\" /nologo /W3 /O2 /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\ST_Release/libmp4v2_st60.pch" /Fo".\ST_Release/" /Fd".\ST_Release/" /Gd"
MSOriginalAdditionalOptions=""/>
</Tool>
<Tool
--- a/common/mp4v2/mp4.cpp
+++ b/common/mp4v2/mp4.cpp
@@ -2177,19 +2177,19 @@
{
if (MP4_IS_VALID_FILE_HANDLE(hFile)) {
try {
- MP4EditId editId =
+ MP4EditId newEditId =
((MP4File*)hFile)->AddTrackEdit(trackId, editId);
- if (editId != MP4_INVALID_EDIT_ID) {
+ if (newEditId != MP4_INVALID_EDIT_ID) {
((MP4File*)hFile)->SetTrackEditMediaStart(
- trackId, editId, startTime);
+ trackId, newEditId, startTime);
((MP4File*)hFile)->SetTrackEditDuration(
- trackId, editId, duration);
+ trackId, newEditId, duration);
((MP4File*)hFile)->SetTrackEditDwell(
- trackId, editId, dwell);
+ trackId, newEditId, dwell);
}
- return editId;
+ return newEditId;
}
catch (MP4Error* e) {
PRINT_ERROR(e);
--- a/common/mp4v2/win32_ver.h
+++ b/common/mp4v2/win32_ver.h
@@ -1,2 +1,2 @@
#define PACKAGE "mpeg4ip"
-#define VERSION "0.9.6.4"
+#define VERSION "0.9.7.2"
--- a/frontend/faad.dsp
+++ b/frontend/faad.dsp
@@ -25,7 +25,7 @@
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
-CPP=cl.exe
+CPP=xicl6.exe
RSC=rc.exe
!IF "$(CFG)" == "faad - Win32 Release"
@@ -42,13 +42,13 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../include" /I "../common/mp4v2" /I "../common/faad" /I "../common/libsndfile/src" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../include" /I "../common/mp4v2" /I "../common/faad" /I "../common/libsndfile/src" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x413 /d "NDEBUG"
# ADD RSC /l 0x413 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=link.exe
+LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /profile /machine:I386
@@ -72,7 +72,7 @@
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=link.exe
+LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
--- a/frontend/faad.vcproj
+++ b/frontend/faad.vcproj
@@ -33,15 +33,13 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"
- AdditionalOptions="">
+ CompileAs="0">
<IntelOptions
Optimization="0"
MinimalRebuild="1"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
- AllOptions="/c /I "../include" /I "../common/mp4v2" /I "../common/faad" /ZI /nologo /W3 /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /YX"StdAfx.h" /Fp".\Debug/faad.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"
- MSOriginalAdditionalOptions=""/>
+ AllOptions="/c /I "../include" /I "../common/mp4v2" /I "../common/faad" /ZI /nologo /W3 /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /YX"StdAfx.h" /Fp".\Debug/faad.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"/>
</Tool>
<Tool
Name="VCCustomBuildTool"/>
@@ -56,8 +54,7 @@
ProgramDatabaseFile=".\Debug/faad.pdb"
SubSystem="1">
<IntelOptions
- AllOptions="/NOLOGO /OUT:".\Debug/faad.exe" /INCREMENTAL ws2_32.lib odbc32.lib odbccp32.lib /DEBUG /PDB:".\Debug/faad.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /MACHINE:I386 "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib" "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"
- MSOriginalAdditionalOptions="/MACHINE:I386 "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib" "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib" "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib""/>
+ AllOptions="/NOLOGO /OUT:".\Debug/faad.exe" /INCREMENTAL ws2_32.lib odbc32.lib odbccp32.lib /DEBUG /PDB:".\Debug/faad.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /MACHINE:I386 "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib" "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib" "e:\aac\cvsroot\faad2\libfaad\Debug\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Debug\libmp4v2_st60.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
</Tool>
<Tool
Name="VCMIDLTool"
@@ -97,7 +94,7 @@
AdditionalIncludeDirectories="../include,../common/mp4v2,../common/faad"
PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/faad.pch"
@@ -106,8 +103,7 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"
- AdditionalOptions="">
+ CompileAs="0">
<IntelOptions
Optimization="2"
GlobalOptimizations="1"
@@ -114,11 +110,10 @@
InlineFuncExpansion="1"
OmitFramePtrs="1"
StringPooling="1"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
BufferSecurityCheck="1"
FunctionLevelLinking="1"
- AllOptions="/c /I "../include" /I "../common/mp4v2" /I "../common/faad" /nologo /W3 /O2 /Og /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /EHsc /MT /GS /Gy /YX"StdAfx.h" /Fp".\Release/faad.pch" /Fo".\Release/" /Fd".\Release/" /Gd"
- MSOriginalAdditionalOptions=""/>
+ AllOptions="/c /I "../include" /I "../common/mp4v2" /I "../common/faad" /nologo /W3 /O2 /Og /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/faad.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
</Tool>
<Tool
Name="VCCustomBuildTool"/>
@@ -131,8 +126,7 @@
SuppressStartupBanner="TRUE"
SubSystem="1">
<IntelOptions
- AllOptions="/NOLOGO /OUT:".\Release/faad.exe" /INCREMENTAL:NO ws2_32.lib /SUBSYSTEM:CONSOLE /TLBID:1 /MACHINE:I386 "e:\aac\cvsroot\faad2\libfaad\Release\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Release\libmp4v2_st60.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"
- MSOriginalAdditionalOptions="/MACHINE:I386 "e:\aac\cvsroot\faad2\libfaad\Release\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Release\libmp4v2_st60.lib" "e:\aac\cvsroot\faad2\libfaad\Release\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Release\libmp4v2_st60.lib""/>
+ AllOptions="/NOLOGO /OUT:".\Release/faad.exe" /INCREMENTAL:NO ws2_32.lib /SUBSYSTEM:CONSOLE /TLBID:1 /MACHINE:I386 "e:\aac\cvsroot\faad2\libfaad\Release\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Release\libmp4v2_st60.lib" "e:\aac\cvsroot\faad2\libfaad\Release\libfaad.lib" "e:\aac\cvsroot\faad2\common\mp4v2\ST_Release\libmp4v2_st60.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
</Tool>
<Tool
Name="VCMIDLTool"
--- a/libfaad/libfaad.dsp
+++ b/libfaad/libfaad.dsp
@@ -40,8 +40,9 @@
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /G6 /W3 /GX /O2 /I "fftw" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FFTW_ENABLE_FLOAT" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /I "fftw" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FFTW_ENABLE_FLOAT" /YX /FD /c
# ADD BASE RSC /l 0x413 /d "NDEBUG"
# ADD RSC /l 0x413 /d "NDEBUG"
BSC32=bscmake.exe
@@ -63,6 +64,7 @@
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "fftw" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FFTW_ENABLE_FLOAT" /YX /FD /GZ /c
# ADD BASE RSC /l 0x413 /d "_DEBUG"
--- a/libfaad/libfaad.vcproj
+++ b/libfaad/libfaad.vcproj
@@ -90,7 +90,7 @@
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,FFTW_ENABLE_FLOAT"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/libfaad.pch"
@@ -108,10 +108,10 @@
InlineFuncExpansion="1"
OmitFramePtrs="1"
StringPooling="1"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
BufferSecurityCheck="1"
FunctionLevelLinking="1"
- AllOptions="/c /nologo /W3 /O2 /Ob1 /Oy /D "NDEBUG" /D "WIN32" /D "_LIB" /D "FFTW_ENABLE_FLOAT" /D "_MBCS" /GF /FD /EHsc /MT /GS /Gy /YX"StdAfx.h" /Fp".\Release/libfaad.pch" /Fo".\Release/" /Fd".\Release/" /Gd"
+ AllOptions="/c /nologo /W3 /O2 /Ob1 /Oy /D "NDEBUG" /D "WIN32" /D "_LIB" /D "FFTW_ENABLE_FLOAT" /D "_MBCS" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/libfaad.pch" /Fo".\Release/" /Fd".\Release/" /Gd"
MSOriginalAdditionalOptions=""/>
</Tool>
<Tool
--- a/plugins/foo_mp4/foo_mp4.dsp
+++ b/plugins/foo_mp4/foo_mp4.dsp
@@ -43,7 +43,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../include" /I "../../common/mp4v2" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../include" /I "../../common/mp4v2" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x413 /d "NDEBUG"
--- a/plugins/foo_mp4/foo_mp4.vcproj
+++ b/plugins/foo_mp4/foo_mp4.vcproj
@@ -23,7 +23,7 @@
AdditionalIncludeDirectories="../../include,../../common/mp4v2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/foo_mp4.pch"
@@ -32,8 +32,17 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"
- AdditionalOptions=""/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "../../include" /I "../../common/mp4v2" /nologo /W3 /O2 /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/foo_mp4.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -45,7 +54,10 @@
SuppressStartupBanner="TRUE"
ProgramDatabaseFile=".\Release/foo_mp4.pdb"
SubSystem="2"
- ImportLibrary=".\Release/foo_mp4.lib"/>
+ ImportLibrary=".\Release/foo_mp4.lib">
+ <IntelOptions
+ AllOptions="/NOLOGO /DLL /OUT:".\Release/foo_mp4.dll" /INCREMENTAL:NO ws2_32.lib odbc32.lib odbccp32.lib /PDB:".\Release/foo_mp4.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /IMPLIB:".\Release/foo_mp4.lib" /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
@@ -90,8 +102,14 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"
- AdditionalOptions=""/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ MinimalRebuild="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ AllOptions="/c /I "../../include" /I "../../common/mp4v2" /ZI /nologo /W3 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /Gm /EHsc /RTC1 /MTd /YX"StdAfx.h" /Fp".\Debug/foo_mp4.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -104,7 +122,10 @@
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\Debug/foo_mp4.pdb"
SubSystem="2"
- ImportLibrary=".\Debug/foo_mp4.lib"/>
+ ImportLibrary=".\Debug/foo_mp4.lib">
+ <IntelOptions
+ AllOptions="/NOLOGO /DLL /OUT:".\Debug/foo_mp4.dll" /INCREMENTAL ws2_32.lib odbc32.lib odbccp32.lib /DEBUG /PDB:".\Debug/foo_mp4.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /IMPLIB:".\Debug/foo_mp4.lib" /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
--- a/plugins/in_mp4/in_mp4.dsp
+++ b/plugins/in_mp4/in_mp4.dsp
@@ -25,7 +25,7 @@
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
-CPP=cl.exe
+CPP=xicl6.exe
MTL=midl.exe
RSC=rc.exe
@@ -43,7 +43,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\include" /I "..\..\common\mp4v2" /I "..\..\common\mp4av" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /I "..\..\common\mp4v2" /I "..\..\common\mp4av" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x413 /d "NDEBUG"
@@ -51,7 +51,7 @@
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=link.exe
+LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
@@ -77,7 +77,7 @@
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=link.exe
+LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
--- a/plugins/in_mp4/in_mp4.vcproj
+++ b/plugins/in_mp4/in_mp4.vcproj
@@ -32,7 +32,14 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ MinimalRebuild="1"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ AllOptions="/c /I "..\..\include" /I "..\..\common\mp4v2" /I "..\..\common\mp4av" /ZI /nologo /W3 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /Gm /EHsc /MTd /YX"StdAfx.h" /Fp".\Debug/in_mp4.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -45,7 +52,10 @@
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\Debug/in_mp4.pdb"
SubSystem="2"
- ImportLibrary=".\Debug/in_mp4.lib"/>
+ ImportLibrary=".\Debug/in_mp4.lib">
+ <IntelOptions
+ AllOptions="/NOLOGO /DLL /OUT:".\Debug/in_mp4.dll" /INCREMENTAL ws2_32.lib odbc32.lib odbccp32.lib /DEBUG /PDB:".\Debug/in_mp4.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /IMPLIB:".\Debug/in_mp4.lib" /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
@@ -85,7 +95,7 @@
AdditionalIncludeDirectories="..\..\include,..\..\common\mp4v2,..\..\common\mp4av"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/in_mp4.pch"
@@ -94,7 +104,18 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ GlobalOptimizations="1"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "..\..\include" /I "..\..\common\mp4v2" /I "..\..\common\mp4av" /nologo /W3 /O2 /Og /Ob1 /Oy /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/in_mp4.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -106,7 +127,10 @@
SuppressStartupBanner="TRUE"
ProgramDatabaseFile=".\Release/in_mp4.pdb"
SubSystem="2"
- ImportLibrary=".\Release/in_mp4.lib"/>
+ ImportLibrary=".\Release/in_mp4.lib">
+ <IntelOptions
+ AllOptions="/NOLOGO /DLL /OUT:".\Release/in_mp4.dll" /INCREMENTAL:NO ws2_32.lib /PDB:".\Release/in_mp4.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /IMPLIB:".\Release/in_mp4.lib" /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
@@ -135,57 +159,42 @@
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
- RelativePath="aac2mp4.cpp">
- </File>
+ RelativePath="aac2mp4.cpp"/>
<File
- RelativePath="aacinfo.c">
- </File>
+ RelativePath="aacinfo.c"/>
<File
- RelativePath=".\config.c">
- </File>
+ RelativePath=".\config.c"/>
<File
- RelativePath=".\in_mp4.c">
- </File>
+ RelativePath=".\in_mp4.c"/>
<File
- RelativePath=".\utils.c">
- </File>
+ RelativePath=".\utils.c"/>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
- RelativePath="aac2mp4.h">
- </File>
+ RelativePath="aac2mp4.h"/>
<File
- RelativePath="aacinfo.h">
- </File>
+ RelativePath="aacinfo.h"/>
<File
- RelativePath=".\config.h">
- </File>
+ RelativePath=".\config.h"/>
<File
- RelativePath="..\..\include\faad.h">
- </File>
+ RelativePath="..\..\include\faad.h"/>
<File
- RelativePath=".\in2.h">
- </File>
+ RelativePath=".\in2.h"/>
<File
- RelativePath=".\out.h">
- </File>
+ RelativePath=".\out.h"/>
<File
- RelativePath="resource.h">
- </File>
+ RelativePath="resource.h"/>
<File
- RelativePath=".\utils.h">
- </File>
+ RelativePath=".\utils.h"/>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
<File
- RelativePath=".\in_mp4.rc">
- </File>
+ RelativePath=".\in_mp4.rc"/>
</Filter>
</Files>
- <Globals>
- </Globals>
+ <Globals/>
</VisualStudioProject>
--- a/plugins/winamp/in_faad.dsp
+++ b/plugins/winamp/in_faad.dsp
@@ -43,7 +43,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\include" /I "..\..\common\faad" /I "..\..\plugins\winamp" /I "..\..\common\id3lib\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ID3LIB_COMPILATION" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /I "..\..\common\faad" /I "..\..\plugins\winamp" /I "..\..\common\id3lib\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ID3LIB_COMPILATION" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x413 /d "NDEBUG"
--- a/plugins/winamp/in_faad.vcproj
+++ b/plugins/winamp/in_faad.vcproj
@@ -32,7 +32,14 @@
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="0"
+ MinimalRebuild="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ AllOptions="/c /I "..\..\include" /I "..\..\common\faad" /I "..\..\plugins\winamp" /I "..\..\common\id3lib\include" /ZI /nologo /W3 /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ID3LIB_COMPILATION" /D "_WINDLL" /Gm /EHsc /RTC1 /MTd /YX"StdAfx.h" /Fp".\Debug/in_faad.pch" /Fo".\Debug/" /Fd".\Debug/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -45,7 +52,10 @@
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\Debug/in_faad.pdb"
SubSystem="2"
- ImportLibrary=".\Debug/in_faad.lib"/>
+ ImportLibrary=".\Debug/in_faad.lib">
+ <IntelOptions
+ AllOptions="/NOLOGO /DLL /OUT:".\Debug/in_faad.dll" /INCREMENTAL ws2_32.lib odbc32.lib odbccp32.lib /DEBUG /PDB:".\Debug/in_faad.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /IMPLIB:".\Debug/in_faad.lib" /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
@@ -84,7 +94,7 @@
AdditionalIncludeDirectories="..\..\include,..\..\common\faad,..\..\plugins\winamp,..\..\common\id3lib\include"
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;ID3LIB_COMPILATION"
StringPooling="TRUE"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/in_faad.pch"
@@ -93,7 +103,18 @@
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- CompileAs="0"/>
+ CompileAs="0">
+ <IntelOptions
+ Optimization="2"
+ GlobalOptimizations="1"
+ InlineFuncExpansion="1"
+ OmitFramePtrs="1"
+ StringPooling="1"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="1"
+ FunctionLevelLinking="1"
+ AllOptions="/c /I "..\..\include" /I "..\..\common\faad" /I "..\..\plugins\winamp" /I "..\..\common\id3lib\include" /nologo /W3 /O2 /Og /Ob1 /Oy /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ID3LIB_COMPILATION" /D "_WINDLL" /GF /FD /EHsc /MD /GS /Gy /YX"StdAfx.h" /Fp".\Release/in_faad.pch" /Fo".\Release/" /Fd".\Release/" /Gd"/>
+ </Tool>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -105,7 +126,10 @@
SuppressStartupBanner="TRUE"
ProgramDatabaseFile=".\Release/in_faad.pdb"
SubSystem="2"
- ImportLibrary=".\Release/in_faad.lib"/>
+ ImportLibrary=".\Release/in_faad.lib">
+ <IntelOptions
+ AllOptions="/NOLOGO /DLL /OUT:".\Release/in_faad.dll" /INCREMENTAL:NO ws2_32.lib /PDB:".\Release/in_faad.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /IMPLIB:".\Release/in_faad.lib" /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ </Tool>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
@@ -134,48 +158,36 @@
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
- RelativePath="..\..\common\faad\aacinfo.c">
- </File>
+ RelativePath="..\..\common\faad\aacinfo.c"/>
<File
- RelativePath="..\..\common\faad\filestream.c">
- </File>
+ RelativePath="..\..\common\faad\filestream.c"/>
<File
- RelativePath="..\..\common\faad\id3v2tag.c">
- </File>
+ RelativePath="..\..\common\faad\id3v2tag.c"/>
<File
- RelativePath=".\in_faad.c">
- </File>
+ RelativePath=".\in_faad.c"/>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
- RelativePath="..\..\common\faad\aacinfo.h">
- </File>
+ RelativePath="..\..\common\faad\aacinfo.h"/>
<File
- RelativePath="..\..\include\faad.h">
- </File>
+ RelativePath="..\..\include\faad.h"/>
<File
- RelativePath="..\..\common\faad\filestream.h">
- </File>
+ RelativePath="..\..\common\faad\filestream.h"/>
<File
- RelativePath="..\..\common\faad\id3v2tag.h">
- </File>
+ RelativePath="..\..\common\faad\id3v2tag.h"/>
<File
- RelativePath=".\in2.h">
- </File>
+ RelativePath=".\in2.h"/>
<File
- RelativePath=".\out.h">
- </File>
+ RelativePath=".\out.h"/>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
<File
- RelativePath=".\plugin_dlg.rc">
- </File>
+ RelativePath=".\plugin_dlg.rc"/>
</Filter>
</Files>
- <Globals>
- </Globals>
+ <Globals/>
</VisualStudioProject>
--- a/plugins/winamp3/aacInfoLib.dsp
+++ b/plugins/winamp3/aacInfoLib.dsp
@@ -25,7 +25,7 @@
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
-CPP=cl.exe
+CPP=xicl6.exe
RSC=rc.exe
!IF "$(CFG)" == "aacInfoLib - Win32 Release"
@@ -40,14 +40,15 @@
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../../../faad2/common/faad" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../faad2/common/faad" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0x410 /d "NDEBUG"
# ADD RSC /l 0x410 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LIB32=link.exe -lib
+LIB32=xilink6.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
@@ -63,6 +64,7 @@
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
+MTL=midl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../faad2/common/faad" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0x410 /d "_DEBUG"
@@ -70,7 +72,7 @@
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LIB32=link.exe -lib
+LIB32=xilink6.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
--- a/plugins/winamp3/cnv_FAAD.dsp
+++ b/plugins/winamp3/cnv_FAAD.dsp
@@ -25,7 +25,7 @@
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
-CPP=cl.exe
+CPP=xicl6.exe
MTL=midl.exe
RSC=rc.exe
@@ -43,7 +43,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CNV_FAAD_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../../../faad2/common/faad" /I "../../include" /I "../../../faad2/common/mp4v2" /I "SDK" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CNV_FAAD_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../faad2/common/faad" /I "../../include" /I "../../../faad2/common/mp4v2" /I "SDK" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CNV_FAAD_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x410 /d "NDEBUG"
@@ -51,7 +51,7 @@
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=link.exe
+LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /machine:I386 /out:"Release/cnv_FAAD.wac"
@@ -77,7 +77,7 @@
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=link.exe
+LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"D:\Programmi\Winamp3\Wacs\cnv_FAAD.wac" /pdbtype:sept
# SUBTRACT LINK32 /force