如何在DirectShow中使用FileWriter Filter

时间:2014-03-01 12:28:22

标签: c++ directshow

我在使用文件写入器过滤器时遇到问题。我不确定如何设置outputfile。 它有一个接口IFileSinkFilte,其方法为SetFileName。 我遇到的问题是我不知道如何设置它使用的AM_MEDIA_TYPE结构。 它看起来如下:

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?

我如何得到它的长度?

2 个答案:

答案 0 :(得分:1)

您无需设置MediaType,只需将其设置为NULL

或者您可以设置部分MediaType。所以'0'所有内容然后只设置majortypesubtype。 (例如MEDIATYPE_StreamMEDIASUBTYPE_NULL

答案 1 :(得分:0)

  1. 使用Windows SDK中的GraphEdit或GraphStudioNext等类似工具
  2. 以交互方式构建文件捕获拓扑以了解文件编写器使用方案,请参阅Capturing Video to an AVI File以获取解释
  3. 查看上面第2项中的图表中的媒体类型,然后以编程方式构建类似的图表