InfTee学习笔记
Infinite tee Filter当有一个输出Pin连接时,就会产生一个新的OutPut Pin
文件:
// Files
//
// inftee.cpp Main implementation of the infinite tee 主要实现
// inftee.def What APIs the DLL will import and export
// inftee.h Class definition of the infinite tee
// inftee.rc Not much, just our version information
//
//
// Base classes used
//
// CBaseInputPin Basic IMemInputPin based input pin
// CBaseOutputPin Used for basic connection stuff
// CBaseFilter Well we need a filter don't we
// CCritSec Controls access to output pin list
// COutputQueue Delivers data on a separate thread
//
//
CBasePin::CheckMediaType:用来检查是否支持特定的媒体类型
CBasePin::SetMediaType:设置连接的媒体类型
CBaseInputPin::BreakConnect :释放连接的Pin
CBaseOutputPin::CompleteConnect Method:完成输出到输入的连接
CBaseInputPin::NotifyAllocator:为连接指明一个allocator,该方法实现了 IMemInputPin::NotifyAllocator 方法
CBasePin::NewSegment方法:通知在该方法调用后,接收到的media sample会被打包成一个segment,实现了IPin::NewSegment方法