ref: d73787d5b9d14fe0086c0b0b3b6ec928dd3dbce6
parent: 8a8fa3b09ef3dc7dba3c763e078bceb403809b6d
author: menno <menno>
date: Thu Dec 26 12:35:17 EST 2002
Added foobar2000 plugin
--- /dev/null
+++ b/plugins/foo_mp4/compiling.txt
@@ -1,0 +1,3 @@
+How to compile foo_mp4.dll:
+Extract the 2 directories (\foobar2000, \pfc) from the foobar2000
+SDK to this directory, open the foo_mp4 project for VC and compile.
--- /dev/null
+++ b/plugins/foo_mp4/foo_mp4.cpp
@@ -1,0 +1,183 @@
+
+#include <mp4.h>
+#include <faad.h>
+#include "pfc/pfc.h"
+#include "foobar2000/SDK/input.h"
+
+class input_mp4 : public input
+{
+public:
+
+ virtual int test_filename(const WCHAR * fn,const WCHAR * ext)
+ {
+ return !wcsicmp(ext,L"MP4");
+ }
+
+ virtual int open(reader * r,file_info * info,int full_open)
+ {
+ unsigned __int8 *buffer;
+ unsigned __int32 buffer_size;
+ unsigned __int8 channels;
+ faacDecConfigurationPtr config;
+
+ hDecoder = faacDecOpen();
+ if (!hDecoder) return 0;
+
+ config = faacDecGetCurrentConfiguration(hDecoder);
+ config->outputFormat = FAAD_FMT_FLOAT;
+ faacDecSetConfiguration(hDecoder, config);
+
+ char filename[_MAX_PATH];
+ int len = (wcslen(info->get_file_path())+1)*2;
+ WideCharToMultiByte(CP_ACP,0,info->get_file_path(),-1,filename,len,0,0);
+
+ hFile = MP4Read(filename, 0);
+ if (hFile == MP4_INVALID_FILE_HANDLE) return 0;
+
+ track = GetAACTrack(hFile);
+ if (track < 1) return 0;
+
+ buffer = NULL;
+ buffer_size = 0;
+ MP4GetTrackESConfiguration(hFile, track, &buffer, &buffer_size);
+ if (!buffer) return 0;
+
+ int rc = faacDecInit2(hDecoder, (unsigned char*)buffer, buffer_size,
+ (unsigned long*)&m_samplerate, (unsigned char*)&channels);
+ if (buffer) free(buffer);
+ if (rc < 0) return 0;
+
+ numSamples = MP4GetTrackNumberOfSamples(hFile, track);
+ sampleId = 1;
+
+ unsigned __int64 length = MP4GetTrackDuration(hFile, track);
+ __int64 sDuration = MP4ConvertFromTrackDuration(hFile, track,
+ length, MP4_SECS_TIME_SCALE);
+ info->set_length((double)sDuration);
+
+ info->info_set_int(L"bitrate",(__int64)MP4GetTrackIntegerProperty(hFile,
+ track, "mdia.minf.stbl.stsd.mp4a.esds.decConfigDescr.avgBitrate"));
+ info->info_set_int(L"channels", (__int64)channels);
+ info->info_set_int(L"samplerate", (__int64)m_samplerate);
+
+ return 1;
+ }
+
+ input_mp4()
+ {
+ hFile = MP4_INVALID_FILE_HANDLE;
+ hDecoder = NULL;
+ }
+
+ ~input_mp4()
+ {
+ if (hFile != MP4_INVALID_FILE_HANDLE)
+ MP4Close(hFile);
+ if (hDecoder)
+ faacDecClose(hDecoder);
+ }
+
+ virtual int run(audio_chunk * chunk)
+ {
+ faacDecFrameInfo frameInfo;
+ unsigned char *buffer;
+ unsigned __int32 buffer_size;
+ void *sample_buffer;
+
+ do {
+ buffer = NULL;
+ buffer_size = 0;
+
+ MP4ReadSample(hFile, track, sampleId,
+ (unsigned __int8**)&buffer, &buffer_size,
+ NULL, NULL, NULL, NULL);
+ sampleId++;
+
+ sample_buffer = faacDecDecode(hDecoder, &frameInfo, buffer, buffer_size);
+
+ if (buffer) free(buffer);
+
+ } while ((frameInfo.error == 0) && (frameInfo.samples == 0));
+
+ if (frameInfo.error || (sampleId > numSamples))
+ return 0;
+
+ chunk->data = (float*)sample_buffer;
+ chunk->samples = frameInfo.samples/frameInfo.channels;
+ chunk->nch = frameInfo.channels;
+ chunk->srate = m_samplerate;
+
+ return 1;
+ }
+
+ virtual int set_info(reader *r,const file_info * info)
+ {
+ return 1;
+ }
+
+ virtual int seek(double seconds)
+ {
+ MP4Duration duration;
+
+ duration = MP4ConvertToTrackDuration(hFile,
+ track, seconds, MP4_SECS_TIME_SCALE);
+ sampleId = MP4GetSampleIdFromTime(hFile,
+ track, duration, 0);
+
+ if (sampleId == MP4_INVALID_SAMPLE_ID)
+ sampleId = numSamples;
+
+ return 1;
+ }
+
+private:
+
+ MP4FileHandle hFile;
+ MP4SampleId sampleId, numSamples;
+ int track;
+
+ unsigned __int32 m_samplerate;
+
+ faacDecHandle hDecoder;
+
+
+ int GetAACTrack(MP4FileHandle infile)
+ {
+ /* find AAC track */
+ int i, rc;
+ int numTracks = MP4GetNumberOfTracks(infile, NULL, /* subType */ 0);
+
+ for (i = 0; i < numTracks; i++)
+ {
+ MP4TrackId trackId = MP4FindTrackId(infile, i, NULL, /* subType */ 0);
+ const char* trackType = MP4GetTrackType(infile, trackId);
+
+ if (!strcmp(trackType, MP4_AUDIO_TRACK_TYPE))
+ {
+ unsigned char *buff = NULL;
+ int buff_size = 0;
+ unsigned long dummy1_32;
+ unsigned char dummy2_8, dummy3_8, dummy4_8, dummy5_8, dummy6_8,
+ dummy7_8, dummy8_8;
+ MP4GetTrackESConfiguration(infile, trackId,
+ (unsigned __int8**)&buff, (unsigned __int32*)&buff_size);
+
+ if (buff)
+ {
+ rc = AudioSpecificConfig(buff, buff_size, &dummy1_32, &dummy2_8,
+ &dummy3_8, &dummy4_8, &dummy5_8, &dummy6_8, &dummy7_8, &dummy8_8);
+ free(buff);
+
+ if (rc < 0)
+ return -1;
+ return trackId;
+ }
+ }
+ }
+
+ /* can't decode this */
+ return -1;
+ }
+};
+
+static service_factory_t<input,input_mp4> foo;
--- /dev/null
+++ b/plugins/foo_mp4/foo_mp4.dsp
@@ -1,0 +1,207 @@
+# Microsoft Developer Studio Project File - Name="foo_mp4" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=foo_mp4 - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "foo_mp4.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "foo_mp4.mak" CFG="foo_mp4 - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "foo_mp4 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "foo_mp4 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=xicl6.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "foo_mp4 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# 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 BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x413 /d "NDEBUG"
+# ADD RSC /l 0x413 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+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
+
+!ELSEIF "$(CFG)" == "foo_mp4 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../common/mp4v2" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x413 /d "_DEBUG"
+# ADD RSC /l 0x413 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+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
+
+!ENDIF
+
+# Begin Target
+
+# Name "foo_mp4 - Win32 Release"
+# Name "foo_mp4 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\foobar2000\component_client\component_client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\foo_mp4.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\audio_chunk.h
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\..\..\..\Program Files\DXSDK\include\basetsd.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\cfg_memblock.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\cfg_var.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\component.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\critsec.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\faad.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\file_info.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\foobar2000.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\grow_buf.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\input.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\interface_helper.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\mem_block.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\mem_block_mgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\common\mp4v2\mp4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\common\mp4v2\mpeg4ip.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\pfc.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\playlist_entry.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\ptr_list.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\reader.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\foobar2000\SDK\service.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pfc\string_unicode.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\common\mp4v2\systems.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\common\mp4v2\win32_ver.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
--- /dev/null
+++ b/plugins/foo_mp4/foo_mp4.dsw
@@ -1,0 +1,89 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "foo_mp4"=.\foo_mp4.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libfaad
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libmp4v2_st
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name pfc_unicode
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name foobar2000_SDK
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "foobar2000_SDK"=.\foobar2000\SDK\foobar2000_SDK.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "libfaad"=..\..\libfaad\libfaad.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "libmp4v2_st"=..\..\common\mp4v2\libmp4v2_st60.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "pfc_unicode"=.\pfc\pfc_unicode.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
--- /dev/null
+++ b/plugins/foo_mp4/foo_mp4.sln
@@ -1,0 +1,60 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "foo_mp4", "foo_mp4.vcproj", "{5CEB23D7-5BDB-4D77-978A-D5B8572843FF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "foobar2000_SDK", "foobar2000\SDK\foobar2000_SDK.vcproj", "{409102E1-0B45-41CD-A3F8-C37371520D9B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "..\..\libfaad\libfaad.vcproj", "{AB39547E-6CAC-4E25-8BC4-C97EFC144800}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp4v2_st", "..\..\common\mp4v2\libmp4v2_st60.vcproj", "{0842E354-7635-4B5D-8709-9A373ED27DCA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pfc_unicode", "pfc\pfc_unicode.vcproj", "{5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ ConfigName.2 = Release ANSI
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.0 = {409102E1-0B45-41CD-A3F8-C37371520D9B}
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.1 = {5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.2 = {AB39547E-6CAC-4E25-8BC4-C97EFC144800}
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.3 = {0842E354-7635-4B5D-8709-9A373ED27DCA}
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.Debug.ActiveCfg = Debug|Win32
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.Debug.Build.0 = Debug|Win32
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.Release.ActiveCfg = Release|Win32
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.Release.Build.0 = Release|Win32
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.Release ANSI.ActiveCfg = Release|Win32
+ {5CEB23D7-5BDB-4D77-978A-D5B8572843FF}.Release ANSI.Build.0 = Release|Win32
+ {409102E1-0B45-41CD-A3F8-C37371520D9B}.Debug.ActiveCfg = Debug|Win32
+ {409102E1-0B45-41CD-A3F8-C37371520D9B}.Debug.Build.0 = Debug|Win32
+ {409102E1-0B45-41CD-A3F8-C37371520D9B}.Release.ActiveCfg = Release|Win32
+ {409102E1-0B45-41CD-A3F8-C37371520D9B}.Release.Build.0 = Release|Win32
+ {409102E1-0B45-41CD-A3F8-C37371520D9B}.Release ANSI.ActiveCfg = Release|Win32
+ {409102E1-0B45-41CD-A3F8-C37371520D9B}.Release ANSI.Build.0 = Release|Win32
+ {AB39547E-6CAC-4E25-8BC4-C97EFC144800}.Debug.ActiveCfg = Debug|Win32
+ {AB39547E-6CAC-4E25-8BC4-C97EFC144800}.Debug.Build.0 = Debug|Win32
+ {AB39547E-6CAC-4E25-8BC4-C97EFC144800}.Release.ActiveCfg = Release|Win32
+ {AB39547E-6CAC-4E25-8BC4-C97EFC144800}.Release.Build.0 = Release|Win32
+ {AB39547E-6CAC-4E25-8BC4-C97EFC144800}.Release ANSI.ActiveCfg = Release|Win32
+ {AB39547E-6CAC-4E25-8BC4-C97EFC144800}.Release ANSI.Build.0 = Release|Win32
+ {0842E354-7635-4B5D-8709-9A373ED27DCA}.Debug.ActiveCfg = Debug|Win32
+ {0842E354-7635-4B5D-8709-9A373ED27DCA}.Debug.Build.0 = Debug|Win32
+ {0842E354-7635-4B5D-8709-9A373ED27DCA}.Release.ActiveCfg = Release|Win32
+ {0842E354-7635-4B5D-8709-9A373ED27DCA}.Release.Build.0 = Release|Win32
+ {0842E354-7635-4B5D-8709-9A373ED27DCA}.Release ANSI.ActiveCfg = Release|Win32
+ {0842E354-7635-4B5D-8709-9A373ED27DCA}.Release ANSI.Build.0 = Release|Win32
+ {5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}.Debug.ActiveCfg = Debug|Win32
+ {5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}.Debug.Build.0 = Debug|Win32
+ {5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}.Release.ActiveCfg = Release|Win32
+ {5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}.Release.Build.0 = Release|Win32
+ {5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}.Release ANSI.ActiveCfg = Release ANSI|Win32
+ {5C9C90BE-0FEA-4C67-9A4C-C2513C2E27C4}.Release ANSI.Build.0 = Release ANSI|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
--- /dev/null
+++ b/plugins/foo_mp4/foo_mp4.vcproj
@@ -1,0 +1,197 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.00"
+ Name="foo_mp4"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../include,../../common/mp4v2"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="TRUE"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/foo_mp4.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"
+ AdditionalOptions=""/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="ws2_32.lib odbc32.lib odbccp32.lib"
+ OutputFile=".\Release/foo_mp4.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/foo_mp4.pdb"
+ SubSystem="2"
+ ImportLibrary=".\Release/foo_mp4.lib"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/foo_mp4.tlb"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1043"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include,../../common/mp4v2"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/foo_mp4.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"
+ AdditionalOptions=""/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="ws2_32.lib odbc32.lib odbccp32.lib"
+ OutputFile=".\Debug/foo_mp4.dll"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/foo_mp4.pdb"
+ SubSystem="2"
+ ImportLibrary=".\Debug/foo_mp4.lib"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/foo_mp4.tlb"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1043"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ </Configurations>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath=".\foobar2000\component_client\component_client.cpp"/>
+ <File
+ RelativePath=".\foo_mp4.cpp"/>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath=".\foobar2000\SDK\audio_chunk.h"/>
+ <File
+ RelativePath="..\..\..\..\..\Program Files\DXSDK\include\basetsd.h"/>
+ <File
+ RelativePath=".\pfc\cfg_memblock.h"/>
+ <File
+ RelativePath=".\pfc\cfg_var.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\component.h"/>
+ <File
+ RelativePath=".\pfc\critsec.h"/>
+ <File
+ RelativePath="..\..\include\faad.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\file_info.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\foobar2000.h"/>
+ <File
+ RelativePath=".\pfc\grow_buf.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\input.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\interface_helper.h"/>
+ <File
+ RelativePath=".\pfc\mem_block.h"/>
+ <File
+ RelativePath=".\pfc\mem_block_mgr.h"/>
+ <File
+ RelativePath="..\..\common\mp4v2\mp4.h"/>
+ <File
+ RelativePath="..\..\common\mp4v2\mpeg4ip.h"/>
+ <File
+ RelativePath=".\pfc\pfc.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\playlist_entry.h"/>
+ <File
+ RelativePath=".\pfc\ptr_list.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\reader.h"/>
+ <File
+ RelativePath=".\foobar2000\SDK\service.h"/>
+ <File
+ RelativePath=".\pfc\string_unicode.h"/>
+ <File
+ RelativePath="..\..\common\mp4v2\systems.h"/>
+ <File
+ RelativePath="..\..\common\mp4v2\win32_ver.h"/>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+ </Files>
+ <Globals/>
+</VisualStudioProject>