目前正在开发基于wdm 的虚拟摄像头,打算从外部输入视频源,代码是在在testcap基础上开发的,查了资料说通常做法是驱动弄个输入pin,外部资源通过这个pin输入到驱动中,但这个例子只有一个ANALOGVIDEOIN 输入pin,请问这个就是用于视频数据输入的吗,还是需要再自己写个输入pin,但是在ksmedia.h 头文件中只找到这么一个有关的,Category的值PINNAME_VIDEO_ANALOGVIDEOIN,如下:
。。。//
},
},
// -----------------------------------------------------------------
// STREAM_AnalogVideoInput
// -----------------------------------------------------------------
{
// HW_STREAM_INFORMATION -------------------------------------------
{
1, // NumberOfPossibleInstances
KSPIN_DATAFLOW_IN, // DataFlow
TRUE, // DataAccessible
NUM_STREAM_ANALOGVIDIN_FORMATS, // NumberOfFormatArrayEntries
StreamAnalogVidInFormats, // StreamFormatsArray
0, // ClassReserved[0]
0, // ClassReserved[1]
0, // ClassReserved[2]
0, // ClassReserved[3]
0, // NumStreamPropArrayEntries
0, // StreamPropertiesArray
0, // NumStreamEventArrayEntries;
0, // StreamEventsArray;
(GUID *) &PINNAME_VIDEO_ANALOGVIDEOIN, // Category
(GUID *) &PINNAME_VIDEO_ANALOGVIDEOIN, // Name
1, // MediumsCount
&CrossbarMediums[9], // Mediums
FALSE, // BridgeStream
},
// HW_STREAM_OBJECT ------------------------------------------------
{
sizeof (HW_STREAM_OBJECT), // SizeOfThisPacket
STREAM_AnalogVideoInput, // StreamNumber
0, // HwStreamExtension
AnalogVideoReceiveDataPacket, // HwReceiveDataPacket
AnalogVideoReceiveCtrlPacket, // HwReceiveControlPacket
{ NULL, 0 }, // HW_CLOCK_OBJECT
FALSE, // Dma
TRUE, // Pio
0, // HwDeviceExtension
0, // StreamHeaderMediaSpecific
0, // StreamHeaderWorkspace
FALSE, // Allocator
NULL, // HwEventRoutine
{ 0, 0 }, // Reserved[2]
}
}