📄 pindataranges.cpp
字号:
0L, // dwBitErrorRate
NTSC_FRAME_DURATION_60HZ, // AvgTimePerFrame
{
sizeof( KS_BITMAPINFOHEADER ), // biSize
NTSC_DEFAULT_WIDTH, // biWidth;
NTSC_DEFAULT_HEIGHT, // biHeight;
1, // biPlanes;
8, // biBitCount;
FOURCC_CXY8, // biCompression;
NTSC_DEFAULT_WIDTH * NTSC_DEFAULT_HEIGHT, // biSizeImage;
0, // biXPelsPerMeter;
0, // biYPelsPerMeter;
0, // biClrUsed;
0 // biClrImportant;
}
}
};
KS_DATARANGE_VIDEO FORMAT_CXY8_PAL =
{
// KSDATARANGE
{
{
sizeof( KS_DATARANGE_VIDEO ),
0,
PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT, // SampleSize
0, // Reserved
STATIC_KSDATAFORMAT_TYPE_VIDEO, // MEDIATYPE_Video
STATIC_KSDATAFORMAT_SUBTYPE_CXY8_VIDEO, // MEDIASUBTYPE_UYVY
STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO // FORMAT_VideoInfo
}
},
true,
true,
KS_VIDEOSTREAM_PREVIEW, // StreamDescriptionFlags
0, // MemoryAllocationFlags
// _KS_VIDEO_STREAM_CONFIG_CAPS
{
{ STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO }, // GUID
PAL_ASPECT_VIDEO_STANDARDS, // AnalogVideoStandard
{PAL_MAX_WIDTH, PAL_MAX_HEIGHT}, //InputSize
{PAL_MIN_WIDTH, PAL_MIN_HEIGHT}, //MinCroppingSize
{PAL_MAX_WIDTH, PAL_MAX_HEIGHT}, //MaxCroppingSize
2, //CropGranularityX
2, //CropGranularityY;
2, //CropAlignX
2, //CropAlignY;
{
ROUND_TO_NEAREST_MULTIPLE(PAL_MIN_WIDTH, 4), //MinOutputSize
ROUND_TO_NEAREST_MULTIPLE(PAL_MIN_HEIGHT, 2)
},
{
ROUND_TO_NEAREST_MULTIPLE(PAL_MAX_WIDTH, 4), //MaxOutputSize
ROUND_TO_NEAREST_MULTIPLE(PAL_MAX_HEIGHT, 2)
},
4, //OutputGranularityX
2, //OutputGranularityY;
0, // StretchTapsX
0, // StretchTapsY
2, // ShrinkTapsX
2, // ShrinkTapsY
PAL_FRAME_DURATION_50HZ, // MinFrameInterval
PAL_FRAME_DURATION_50HZ, // MaxFrameInterval
PAL_FRAMES_PER_SEC * PAL_MIN_WIDTH * PAL_MIN_HEIGHT, // MinBitsPerSecond;
PAL_FRAMES_PER_SEC * PAL_MAX_WIDTH * PAL_MAX_HEIGHT // MaxBitsPerSecond;
},
// KS_VIDEOINFOHEADER (default format)
{
{0,0,0,0}, // rcSource
{0,0,0,0}, // rcTarget
PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT * PAL_FRAMES_PER_SEC, // dwBitRate
0L, // dwBitErrorRate
PAL_FRAME_DURATION_50HZ, // AvgTimePerFrame
{
sizeof( KS_BITMAPINFOHEADER ), // biSize
PAL_DEFAULT_WIDTH, // biWidth;
PAL_DEFAULT_HEIGHT, // biHeight;
1, // biPlanes;
8, // biBitCount;
FOURCC_CXY8, // biCompression;
PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT, // biSizeImage;
0, // biXPelsPerMeter;
0, // biYPelsPerMeter;
0, // biClrUsed;
0 // biClrImportant;
}
}
};
/////////////////////////////////////////////////////////////////////
// CapturePinDataRanges:
//
// This is the list of data ranges supported on the capture pin.
const
PKSDATARANGE
CapturePinDataRanges[CAPTURE_PIN_DATA_RANGE_COUNT] =
{
(PKSDATARANGE) &FORMAT_UYVY_NTSC,
(PKSDATARANGE) &FORMAT_CXY8_NTSC,
(PKSDATARANGE) &FORMAT_UYVY_PAL,
(PKSDATARANGE) &FORMAT_CXY8_PAL
};
//
// VBIPinDataRanges:
//
const
PKSDATARANGE
VBIPinDataRanges[VBI_PIN_DATA_RANGE_COUNT] =
{
(PKSDATARANGE) &g_stream_format_VBI
};
//Stream format for this pin.
const KSDATARANGE_AUDIO g_audio_stream_format =
{
// KSDATARANGE
{
sizeof (KSDATARANGE_AUDIO), // FormatSize
0, // Flags
4, // SampleSize
0, // Reserved
STATIC_KSDATAFORMAT_TYPE_AUDIO, // Media type
STATIC_KSDATAFORMAT_SUBTYPE_PCM, // Media subtype
STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX, // Media format specifier
},
// Audio format info
2, // MaximumChannels
16, // MinimumBitsPerSample
16, // MaximumBitsPerSample
32000, // MinimumSampleFrequency
96000
};
//Data range array. Structure used to pass our stream formats to the system in
// the pin descriptor.
const PKSDATARANGE g_audio_pin_data_ranges[AUDIO_PIN_RANGE_COUNT] =
{
(PKSDATARANGE) &g_audio_stream_format
};
///////////////////////////////////////////////
//Sliced CC Pin format
KSDATARANGE g_stream_format_sliced_cc =
{
// Definition of the CC stream
{
sizeof (KSDATARANGE), // FormatSize
0, // Flags
2, // SampleSize
0, // Reserved
{ STATIC_KSDATAFORMAT_TYPE_AUXLine21Data },
{ STATIC_KSDATAFORMAT_SUBTYPE_Line21_BytePair },
{ STATIC_KSDATAFORMAT_SPECIFIER_NONE }
}
};
const PKSDATARANGE g_sliced_cc_pin_data_ranges[SLICED_CC_PIN_RANGE_COUNT] =
{
(PKSDATARANGE) &g_stream_format_sliced_cc
};
/////////////////////////////////////////////////////////////////////////////////////////
//Stream format for the TS pin.
#define TS_PACKET_SIZE 188
#define TS_PACKETS_PER_SAMPLE 320 /*312*/
#define TS_SAMPLE_SIZE TS_PACKET_SIZE * TS_PACKETS_PER_SAMPLE
const KSDATARANGE g_ts_stream_format =
{
{
sizeof( KSDATARANGE), // FormatSize
0, // Flags - (N/A)
TS_SAMPLE_SIZE, // SampleSize
0, // Reserved
{ STATIC_KSDATAFORMAT_TYPE_STREAM }, // MajorFormat
{ STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT },// SubFormat
{ STATIC_KSDATAFORMAT_SPECIFIER_NONE } // Specifier
}
};
//Data range array. Structure used to pass our stream formats to the system in
// the pin descriptor.
const PKSDATARANGE g_ts_pin_data_ranges[TS_PIN_DATA_RANGE_COUNT] =
{
(PKSDATARANGE) &g_ts_stream_format
};
const KS_DATARANGE_BDA_ANTENNA g_bda_antenna_pin_range =
{
// insert the KSDATARANGE and KSDATAFORMAT here
{
sizeof( KS_DATARANGE_BDA_ANTENNA), // FormatSize
0, // Flags - (N/A)
0, // SampleSize - (N/A)
0, // Reserved
{ STATIC_KSDATAFORMAT_TYPE_BDA_ANTENNA }, // MajorFormat
{ STATIC_KSDATAFORMAT_SUBTYPE_NONE }, // SubFormat
{ STATIC_KSDATAFORMAT_SPECIFIER_NONE } // Specifier
}
};
const PKSDATAFORMAT g_bda_antenna_pin_ranges[BDA_ANTENNA_PIN_DATA_RANGE_COUNT] =
{
(PKSDATAFORMAT) &g_bda_antenna_pin_range,
};
const KS_DATARANGE_BDA_TRANSPORT g_bda_transport_pin_range =
{
{
sizeof(KS_DATARANGE_BDA_TRANSPORT), // FormatSize
0, // Flags - (N/A)
0, // SampleSize - (N/A)
0, // Reserved
{STATIC_KSDATAFORMAT_TYPE_STREAM}, // MajorFormat
{STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT}, // SubFormat
{STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT} // Specifier
},
//BDA_TRANSPORT_INFO
{
TS_PACKET_SIZE, // ulcbPhyiscalPacket
TS_SAMPLE_SIZE, // ulcbPhyiscalFrame
0, // ulcbPhyiscalFrameAlignment (no requirement)
0 // AvgTimePerFrame (not known)
}
};
const PKSDATAFORMAT g_bda_transport_pin_ranges[BDA_TRANSPORT_PIN_DATA_RANGE_COUNT] =
{
(PKSDATAFORMAT) &g_bda_transport_pin_range,
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -