在MinGW下使用DShow的方法
用MinGW編譯DShow的東西,經(jīng)常遇到?jīng)]找到IBaseFilter的問(wèn)題。本質(zhì)上是MinGW的w32api并沒有提供完整的DShow頭文件所致。經(jīng)過(guò)一番折騰,得到了下面的解決方案:
1. 從http://sourceforge.net/projects/mingw-w64/下載mingw-w64-headers,我這里用的是mingw-w64-headers-20100717.tar.xz
2. 把mingw-w64-headers\include目錄下的strmif.h、rpcndr.h、uuids.h、ksuuids.h、control.h拷貝到MinGW\include,覆蓋原有文件。
3. 打開strmif.h,刪掉所有”__MINGW_EXTENSION”。
4. 打開rpcndr.h,刪掉所有”__MINGW_EXTENSION”,并在第81行”typedef int ssize_t;”的前后分別加上”#ifdef _SSIZE_T_”和”#endif”。
5. 打開vmr9.h,查找”MixerPref9_RenderTargetMask = 0x000FF000″一行,在后面加上”,”;查找”wchar_t szDescription[512]“,在后面加上”;”。(這個(gè)最莫名其妙了,原作者居然都沒加)
6. 打開Windows SDK的wmr9.h,把接口都添到MinGW的vmr9.h中。
至此,DShow相關(guān)的東西就可以用MinGW編譯了,不再會(huì)報(bào)缺少接口。
新增和修改過(guò)的文件可以在這里下載:
DShow patch for MinGW
轉(zhuǎn)自http://www.klayge.org
總結(jié)
以上是生活随笔為你收集整理的在MinGW下使用DShow的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux重装eclipse_Linux
- 下一篇: 机器学习的练功心法(一)——机器学习概述