这两天在C++Builder下测试dspack,想设置采集图象的分辨率,在网上查找了一下,没找到C++Builder如何使用,只有delphi下的代码如下:
{ PinList := TPinList.Create(Filter1 as IBaseFilter);
if cbFormats.ItemIndex <> -1 then
with (PinList.First as IAMStreamConfig) do
SetFormat(VideoMediaTypes.Items[cbFormats.ItemIndex].AMMediaType^);
PinList.Free; }
关键是with (PinList.First as IAMStreamConfig) do不知道如何改写,于是看directX的文档,自己实现:
TPinList *pinList = new TPinList(SourceFilter);
TEnumMediaType *VideoMediaType = new TEnumMediaType(pinList->First());
IAMStreamConfig *Config = NULL;
pinList->First()->QueryInterface(IID_IAMStreamConfig, (void**)&Config);
Config->SetFormat(VideoMediaType->Items[nIndex]->AMMediaType);
Config->Release();
delete VideoMediaType;
delete pinList;
本文介绍在C++Builder环境中使用dspack设置视频采集分辨率的方法。通过参考Delphi代码并查阅DirectX文档,实现了设置视频分辨率的功能。文章详细记录了从PinList创建到IAMStreamConfig接口调用的具体步骤。
778

被折叠的 条评论
为什么被折叠?



