Pin Property Set

The pin property set returns the pin category for a pin on a filter. The category is set by the filter when it creates the pin; the category indicates what type of data the pin is delivered or receives by this pin.

Property Set GUID AMPROPSETID_Pin

 

Property ID Description
AMPROPERTY_PIN_CATEGORYSpecifies the category of a pin.

 

DirectShow defines the following pin categories in the Uuids.h header file.

Category GUID Description
PIN_CATEGORY_ANALOGVIDEOINInput pin of the capture filter that takes analog and digitizes it.
PIN_CATEGORY_CAPTURECapture pin.
PIN_CATEGORY_CCPin providing closed captioning data from Line 21.
PIN_CATEGORY_EDSPin providing Extended Data Services (Line 21, even fields).
PIN_CATEGORY_NABTSPin providing North American Videotext Standard data.
PIN_CATEGORY_PREVIEWPreview pin.
PIN_CATEGORY_STILLPin that provides a still image. The filter's capture pin must be connected before the still-image pin is connected.
PIN_CATEGORY_TELETEXTPin providing teletext (a closed captioning variant).
PIN_CATEGORY_TIMECODEPin providing timecode data.
PIN_CATEGORY_VBIPin providing vertical blanking interval data.
PIN_CATEGORY_VIDEOPORTVideo output pin to be connected to input pin zero on the Overlay Mixer.
PIN_CATEGORY_VIDEOPORT_VBIPin to be connected to the VBI Surface Allocator, the VBI surface allocator filter that is needed to allocate the correct video memory for things like closed captioning overlays in scenarios where a video port is being used. PCI, IEEE 1394, and USB scenarios do not use this filter.
PINNAME_VIDEO_CC_CAPTUREHardware slicing closed-captioning pin

 

This property is read-only.

Example Code

The following code shows how to check whether a pin supports this property set, and if so, how to obtain the pin category:


HRESULT GetPinCategory(IPin *pPin, GUID *pPinCategory)
{
    IKsPropertySet *pKs = NULL;

    HRESULT hr = pPin->QueryInterface(IID_PPV_ARGS(&pKs));
    if (FAILED(hr))
    {
        return hr;
    }

    // Try to retrieve the pin category.
    DWORD cbReturned = 0;
    hr = pKs->Get(AMPROPSETID_Pin, AMPROPERTY_PIN_CATEGORY, NULL, 0, 
        pPinCategory, sizeof(GUID), &cbReturned);
    
    // If this succeeded, pPinCategory now contains the category GUID.

    SafeRelease(&pKs);
    return hr;
}


Note  This example uses the SafeRelease function to release interface pointers.

Related topics

Pin Requirements for Capture Filters
Property Sets
Working with Pin Categories

 

 

Community Additions

ADD
Show:
© 2014 Microsoft