The KSProxy capture filter provides several different types of streams/pins. The tables in the following sections describe both the different types of streams/pins and the data format types associated with each stream.
Stream category and stream content information is provided by the minidriver in response to a SRB_GET_STREAM_INFO request. The minidriver returns information about each stream category it supports in a HW_STREAM_INFORMATION structure.
Within the HW_STREAM_INFORMATION structure is a StreamFormatsArray member, which has an entry for each unique data format that the minidriver provides for the specified stream category. Each StreamFormatsArray entry contains stream format information, including image characteristics such as color format, bit depth, cropping and scaling information. Also included in the StreamFormatsArray member is the range of formats available for the specified stream category.
For each video stream category there are corresponding KSDATAFORMAT and KSDATARANGE structures to be used when describing the stream in the HW_STREAM_INFORMATION structure. The structures that correspond to the video capture pin categories are listed in the tables in the following sections.
The Category GUID and PinName GUID for a given video capture stream type are normally identical. These GUIDs are specified in the Category and Name members of the HW_STREAM_INFORMATION structure. The only case where the GUIDs are not the same is when a given stream Category has more than one instance on a filter. In this case, the Category GUIDs should match, but each pin should be assigned a unique PinName GUID.
The following sections contain information pertaining to each of the different video capture stream categories. The PinName and Category GUIDs are listed as well as the video capture structures that should be used when supporting each of the categories. Required property set support is also listed for each category. Finally, the corresponding user-mode DirectShow type information is listed here for convenience.