IFileSinkFilter 接口从IUnknown接口继承 在过滤器上实现向一个文件中写媒体流,
在视频捕获过滤器图表里一个文件的渗透过滤器,举例,将一个视频压缩过滤器
的输出写到一个文件中,
GetCurFile 得到媒体将要被写入的当前文件
HRESULT GetCurFile
(
[out] LPOLESTR * ppszFileName, 一个指针(文件名的地址)
[out]AM_MEDIA_TYPE* pmt // 指向一个AM_MEDIA_TYPE结构用于接受媒体类型,这个参数可以是NULL,若是NULL则不会返回媒体类型
);
Typedef struct _MediaType
{
GUID(全局唯一标示符) majortype; // 全局唯一标识指定的媒体例子
GUID subtype; // 媒体类型的子类型
BOOL bFixedSizeSamples; 是定是否有指定大小,音频是true,而视频可以是true(不压缩)false(压缩)
BOOL bTemporalCompression; 如果是true ,该例子就用帧压缩,使用false则可以表明并不是全部的帧都是关键帧
ULONG lSampleSize; 实例的大小(用字节表示),对于压缩数据,可以是0
GUID formattype; 该GUID指明这个接口使用的是哪种 格式化块
IUnknown *pUnk; 不使用,设置为NULL,
ULONG cbFormat; 每个有格式的块,用大小表示
BYTE *pbFormat;
}AM_MEDIA_TYPE;
SetFileName设置这个文件名字,对于将要被写入的媒体文件