在连接Source Filter和H264 decoder时,decoder会检查source filter的media type,若匹配,则连接成功。下面的设置经过测试可以正常连接,并且解码器能解出图像。decoder使用DivX H264 Decoder。
其中pvi->bmiHeader.biCompression = 0x31435641; //AVC1表示source filter传给解码器的是没有加start code即0x00 0x00 0x00 0x01的NALU数据,此时subtype要选MEDIASUBTYPE_AVC1;pvi->bmiHeader.biCompression = 0x34363248; //H264表示传给解码器的是有start code的NALU,subtype要选MEDIASUBTYPE_H264。
MEDIASUBTYPE_AVC1和MEDIASUBTYPE_H264的GUID值定义如下:
// 31435641-0000-0010-8000-00AA00389B71
DEFINE_GUID(MEDIASUBTYPE_AVC1,
0x31435641, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
// 34363248-0000-0010-8000-00aa00389b71
DEFINE_GUID(MEDIASUBTYPE_H264,
0x34363248, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);