【发布时间】:2013-07-03 11:48:06
【问题描述】:
我目前正在开发一个使用 directshow 库的小程序。该程序应该能够选择任何连接到计算机的相机并记录流。 我的问题是我不确定如何释放内存 dshow 过滤器。 举个例子吧:
例如,当我想设置输出文件名时,我必须像这样创建一个 AVI Mux 过滤器:
IBaseFilter * aviMux;
bGraph->SetOutputFileName(
&MEDIASUBTYPE_Avi,
L"example.avi",
&aviMux,
NULL);
现在我想更改文件名并再次使用 SetOutputFileName() 函数,但是如何释放内存 AVI Mux(顺便说一下,该函数显然还创建了一个 FileWriter 过滤器,我想将其释放为好吧)?只有我能做到的是:
aviMux->Release();
fGraph->RemoveFilter(aviMux);
但是现在程序结束之前内存会被释放吗?我想做这样的事情:
delete aviMux;
但这显然是一个错误。 感谢您提供任何答案和帮助的建议..
【问题讨论】:
标签: c++ winapi com directshow