How to compile MPCPeterlee 2006.12.13
I. Test EnvironmentRun the following command: 2006.12.5 exported from svnos: Windows XP sp2visual Studio 2005 Professional (vc8)
Ii. required installation
SDK
1
, DirectX 9 SDKTest version: DirectX SDK 9.0c October 2006 + DirectX SDK extras 2006 DirectX SDK 9.0c October edition: http://www.microsoft.com/downloads/details.aspx? Familyid = D625324C-59B4-4951-849E-640B508DC442 & displaylang = EN DirectX SDK extras
Export DirectX SDK extras contains DirectShow SDK, the specific content can refer to: http://blog.csdn.net/sunshine1314/archive/2006/12/13/1440797.aspx
2. Windows Media Format SDK 9: Http://download.microsoft.com/download/3/0/4/30451651-9e47-4313-89a3-5bb1db003c26/WMFormatSDK.exe
Iii. compiling environment settings
1
, DirectX 9 baseclasses
Compile and generate<Dxsdk>/samples/C ++/DirectShow/baseclasses are generated using vs2005: debug_unicode and release_unicode. To compile the file correctly, modify the following file: (a) ctlutil. HD:/dxsdk/samples/C ++/DirectShow/baseclasses/ctlutil. h: // operator = (long); // modified by Peter Lee coareftime & operator = (long); (B) wxdebug. CPPD:/dxsdk/samples/C ++/DirectShow/baseclasses/wxdebug. CPP // static g_dwlastrefresh = 0; static DWORD g_dwlastrefresh = 0; // lspmodify (c) winutil. CPPD:/dxsdk/samples/C ++/DirectShow/baseclasses/winutil. CPP uint count; // lspmodify for (COUNT = 0; count <result; count ++) {// lspmodify (d) outputq. CPPD:/dxsdk/samples/C ++/DirectShow/baseclasses/outputq. CPP long idone; // lspmodifyfor (idone = 0; // lspmodify
2
, Vs2005
Environment SettingsUnder vs2005, choose tools> options, and select projects and solutions> VC ++ directories-include in the left column: <dxsdk>/include <dxsdk>/samples/C ++/common/include <dxsdk>/samples/C ++/DirectShow/baseclasses <wmsdk>/wmfsdk9/include ... -Lib: <dxsdk>/lib <dxsdk>/samples/C ++/common/src <dxsdk>/samples/C ++/DirectShow/baseclasses/debug_unicode <dxsdk>/samples/C ++/DirectShow/baseclasses/release_unicode <wmsdk>/wmfsdk9/lib...
2
Header File Modification(A) winnt. HD:/program files/Microsoft Visual Studio 8/VC/platformsdk/include/winnt. h add in the file header: # define pointer_64 _ ptr64 // Add by Peter Lee (B) vmr9.hd:/dxsdk/include/vmr9.h mixerpref9_rendertargetrgb = 0x1000, mixerpref9_rendertargetyuv = 0x00002000, // LSP add
Iv. Compilation steps1. deccs2. dsutil3. UI 4. subpic5. subtitles6. filters (FOR MPc only build those configurations which output a Lib, the rest outputs stand-alone filters) 7. content to be modified by apps/mplayerc:
1
, SubtitlesGuliverkli/src/Subtitles/ccdecoder. cpp '','! ',' "',' # ',' $ ',' % ','&','/'','(',')','? ',' + ','-','. ','/', // LSP will '? Replace it '? '.
2
, Filters(A) After the mp4splitter project unzips guliverkli/src/filters/parser/mp4splitter/extensions/update/v0.6.3/Bento4_0.6.3-001.7z, copy the source folder to guliverkli/src/filters/parser/mp4splitter/sources/source (B) flvsplitter. hguliverkli/src/filters/parser/flvsplitter. h // # include "vp62.h" // comment this out if you don't have vp62.cpp/h Delete vp62.cpp from the project at the same time. (B) icons. HD:/My development/mpcplus/guliverkli/include/QT/icons. h kappleextrasfoldericon = four_char_code ('aex ?), // Lspmodify
3
, Apps/mplayerc(A) mplayerc projectlink input option: Set radgtsplitterru. delete lib and add: resizablelibru. libcmduiru. libdecssru. libtreepropsheetru. libsizecbarru. lib (B): paste the <dxsdk>/samples/C ++/DirectShow/baseclasses/scripts file, run this file to play all types of audio and video files (assuming that the corresponding decoder filter has been installed on the machine ). Note: In summary, many SDK source code files have been slightly changed during the compilation of the MPC, the biggest crux of this problem is that the DirectShow SDK installed by the author is relatively old (but I have not found any newer version than February 2005) and does not provide good support for vs2005, because vs2005 and vc6, vs2003, strict requirements on C/C ++ code.