C++ 如何在DirectShow中使用FileWriter筛选器
我在使用filewriter筛选器时遇到问题。我不确定如何设置输出文件。 它有一个带有方法SetFileName的接口IFileSinkFilte。 我的问题是,我不知道如何设置它使用的AM_MEDIA_类型结构。 情况如下:C++ 如何在DirectShow中使用FileWriter筛选器,c++,directshow,C++,Directshow,我在使用filewriter筛选器时遇到问题。我不确定如何设置输出文件。 它有一个带有方法SetFileName的接口IFileSinkFilte。 我的问题是,我不知道如何设置它使用的AM_MEDIA_类型结构。 情况如下: typedef struct _MediaType { GUID majortype; GUID subtype; BOOL bFixedSizeSamples; BOOL bTemporalCompression; U
typedef struct _MediaType {
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
BYTE *pbFormat;
} AM_MEDIA_TYPE;
我如何知道样本量
什么是格式bloock
如何获取其长度?您不需要设置MediaType,只需将其设置为
NULL
也可以设置部分媒体类型。所以“0”表示所有内容,然后仅设置majortype
和subtype
。(例如,MEDIATYPE\u流
和MEDIASUBTYPE\u空
)
nullptr
比NULL
好。当我将其设置为NULL时,我在0x00000000位置获得一个访问读取内存。这很奇怪,你真的在调用IFileSinkFilter::SetFileName(pathToVideo,NULL)代码>?你能展示一些示例代码吗,也许不是mediatype,而是文件名的字符串?