有关direct show 编译问题汇总(二)


5.源码文件里添加头文件
#include <streams.h>
编译,假如报错的话,见下:
use vs2005 compiler directshow baseclasses has something error
1.ctlutil.h
modify as below:
  //operator=(LONG); 
COARefTime& operator=(LONG);

2.winutil.cpp
modify as below:
UINT Count; 
for (Count = 0;Count < Result;Count++) { 

3.outputq.cpp
modify as below:
long iDone; 
for (iDone = 0; 

4.wxdebug.cpp
modify as below:
//static g_dwLastRefresh = 0;
static DWORD g_dwLastRefresh = 0;

如果編譯程式出現
error LNK2019: 無法解析的外部符號 "int __stdcall lstrcmpWInternal
error LNK2019: 無法解析的外部符號 "int __cdecl wsprintfWInternal
error LNK2019: 無法解析的外部符號 "int __stdcall lstrcmpiWInternal
之類的錯誤
這是baseclasses編譯時有個設定要變更
就是project屬性->組態屬性->C/C++->語言之下的 "將wchar_t當作Built-in型別" 設為false
就可以解決上述link error的問題

如果編譯程式link strmbase.lib or strmbasd.lib出現以下的error
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" ( ?g_Templates@@3PAVCFactoryTemplate@@A)strmbasd.lib(dllsetup.obj ) : error LNK2001: unresolved external symbol "int g_cTemplates" ( ?g_cTemplates@@3HA )
則重新修改baseclasses project的檔案內容
CFactoryTemplate g_Templates[1] = { 
{      L"SystemClock", &CLSID_SystemClock, CSystemClock::CreateInstance}  //修改後; 
//    {&CLSID_SystemClock, CSystemClock::CreateInstance}   //原本的; 
}; 
另外在vc Project->Settings...->C/C++的 preprocessor definitions:加入FILTER_DLL
然後重新編譯strmbase.lib and strmbasd.lib即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DirectShow是Windows平台上的一种多媒体框架,它提供了一组API和工具,用于处理音视频数据的捕获、处理和渲染。虚拟摄像头源码是指通过DirectShow实现的一种虚拟摄像头设备,它可以将计算机屏幕、图像、视频文件等内容作为摄像头输入,供其他应用程序使用。 虚拟摄像头源码的实现一般包括以下几个步骤: 1. 创建一个DirectShow滤波器,作为虚拟摄像头的驱动。这个滤波器可以是实现了DirectShow基类的自定义类,也可以是DirectShow提供的标准滤波器。 2. 实现滤波器的输入端口,用于接收要作为摄像头输入的数据。比如可以接收图像数据或视频文件数据,并将其传递给滤波器的输出端口。 3. 实现滤波器的输出端口,对输入的数据进行处理和渲染,并将处理后的数据传递给虚拟摄像头设备。 4. 注册虚拟摄像头设备,使其能够在系统中被其他应用程序访问到。可以使用Windows注册表或DirectShow提供的注册接口进行注册。 通过以上步骤,就可以实现一个基于DirectShow的虚拟摄像头。应用程序可以通过DirectShow API访问这个虚拟摄像头设备,获取它提供的视频流数据,并进行相关处理和渲染,比如视频会议、视频录制等应用场景。 虚拟摄像头源码的实现需要有一定的编程基础和对DirectShow框架的了解。在编写代码时,可以参考DirectShow提供的示例代码和文档,以及其他开源项目中的相关实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值