Ejemplo n.º 1
0
/*****************************************************************************
 * CKsPin::HasDataRangeWithSpecifier()
 *****************************************************************************
 *//*!
 * @brief
 */
BOOL 
CKsPin::
HasDataRangeWithSpecifier
(
	IN		REFGUID	FormatSpecifier
)
{
    BOOL Found = FALSE;
    
	KSDATARANGE * DataRange = m_PinDescriptor.DataRanges;;

    // Loop Through the DataRanges
    for(ULONG i = 0; i < m_PinDescriptor.DataRangeCount; i++)
    {
        // Check for a matching Specifier
        if (IsEqualGUID(DataRange->Specifier, FormatSpecifier))
        {
            // Found our matching Pin!
            Found = TRUE;
            break;
        }

        // Advance to the next datarange.
        DataRange = PKSDATARANGE(PUCHAR(DataRange) + DataRange->FormatSize);
    }

    return Found;
}
Ejemplo n.º 2
0
                {STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO)},
                {STATICGUIDOF(KSDATAFORMAT_SUBTYPE_WMA_SPDIF)},
                {STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)}
            }
        },
        MAX_CHANNELS_WMA,
        MIN_BITS_PER_SAMPLE_WMA,
        MAX_BITS_PER_SAMPLE_WMA,
        MAX_SAMPLE_RATE_WMA,
        MAX_SAMPLE_RATE_WMA
    }
};

static PKSDATARANGE WavePinDataRangePointersPCMStream[] =
{
    PKSDATARANGE(&WavePinDataRangesPCMStream[0])
};

static PKSDATARANGE WavePinDataRangePointersAC3Stream[] =
{
    PKSDATARANGE(&WavePinDataRangesAC3Stream[0]),
    PKSDATARANGE(&WavePinDataRangesAC3Stream[1]),
    PKSDATARANGE(&WavePinDataRangesAC3Stream[2]),
    PKSDATARANGE(&WavePinDataRangesAC3Stream[3]),
};



static KSDATARANGE WavePinDataRangesPCMBridge[] =
{
    {
Ejemplo n.º 3
0
        sizeof(KSDATARANGE_AUDIO),
        0, 6, 0,
        STATIC_KSDATAFORMAT_TYPE_AUDIO,
        STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
        STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) 
    },
    2,          // channels
    16,         // min. bits per sample
    24,         // max. bits per sample
    44100,      // min. sample rate
    48000       // max. sample rate
};

const PKSDATARANGE gPinDataFormatRanges[] =
{
    PKSDATARANGE(&gPinDataFormatRange)
};

const KSPIN_DISPATCH gPinDispatch = 
{
    CPin::DispatchCreate,                    // Pin Create
    NULL,                                   // Pin Close
    NULL,                                   // Pin Process
    NULL,                                   // Pin Reset
    CPin::DispatchSetFormat,                // Pin Set Data Format
    CPin::DispatchSetState,                    // Pin Set Device State
    NULL,                                   // Pin Connect
    NULL,                                   // Pin Disconnect
    NULL,                                   // Clock Dispatch
    NULL                                    // Allocator Dispatch
};