📄 pindataranges.cpp
字号:
VideoInputPinDataRanges[VIDEO_INPUT_PIN_RANGE_COUNT] =
{
(PKSDATARANGE)&ANALOGVIDEO_FORMAT
};
const
PKSDATARANGE
AudioInputPinDataRanges[AUDIO_INPUT_PIN_RANGE_COUNT] =
{
(PKSDATARANGE)&AUDIO_FORMAT
};
#define FOURCC_UYVY mmioFOURCC('U', 'Y', 'V', 'Y')
// {59565955-0000-0010-8000-00AA00389B71}
#ifndef STATIC_KSDATAFORMAT_SUBTYPE_UYVY_VIDEO
#define STATIC_KSDATAFORMAT_SUBTYPE_UYVY_VIDEO\
0x59565955, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
DEFINE_GUIDSTRUCT("59565955-0000-0010-8000-00AA00389B71", KSDATAFORMAT_SUBTYPE_UYVY_VIDEO);
#define KSDATAFORMAT_SUBTYPE_UYVY_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_UYVY_VIDEO)
#endif // STATIC_KSDATAFORMAT_SUBTYPE_UYVY_VIDEO
#define ROUND_TO_NEAREST_MULTIPLE(A, B) (B*((A-1)/B) + B)
KS_DATARANGE_VIDEO FORMAT_UYVY_NTSC =
{
// KSDATARANGE
{
{
sizeof( KS_DATARANGE_VIDEO ),
0,
NTSC_DEFAULT_WIDTH * NTSC_DEFAULT_HEIGHT * 2, // SampleSize
0, // Reserved
STATIC_KSDATAFORMAT_TYPE_VIDEO, // MEDIATYPE_Video
STATIC_KSDATAFORMAT_SUBTYPE_UYVY_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
NTSC_ASPECT_VIDEO_STANDARDS, // AnalogVideoStandard
{NTSC_MAX_WIDTH, NTSC_MAX_HEIGHT}, //InputSize
{NTSC_MIN_WIDTH, NTSC_MIN_HEIGHT}, //MinCroppingSize
{NTSC_MAX_WIDTH, NTSC_MAX_HEIGHT}, //MaxCroppingSize
2, //CropGranularityX
2, //CropGranularityY;
2, //CropAlignX
2, //CropAlignY;
{
ROUND_TO_NEAREST_MULTIPLE(NTSC_MIN_WIDTH, 4), //MinOutputSize
ROUND_TO_NEAREST_MULTIPLE(NTSC_MIN_HEIGHT, 2)
},
{
ROUND_TO_NEAREST_MULTIPLE(NTSC_MAX_WIDTH, 4), //MaxOutputSize
ROUND_TO_NEAREST_MULTIPLE(NTSC_MAX_HEIGHT, 2)
},
4, //OutputGranularityX
2, //OutputGranularityY;
0, // StretchTapsX
0, // StretchTapsY
2, // ShrinkTapsX
2, // ShrinkTapsY
NTSC_FRAME_DURATION_60HZ, // MinFrameInterval
NTSC_FRAME_DURATION_60HZ, // MaxFrameInterval
NTSC_FRAMES_PER_SEC * NTSC_MIN_WIDTH * NTSC_MIN_HEIGHT * 2, // MinBitsPerSecond;
NTSC_FRAMES_PER_SEC * NTSC_MAX_WIDTH * NTSC_MAX_HEIGHT * 2 // MaxBitsPerSecond;
},
// KS_VIDEOINFOHEADER (default format)
{
{0,0,0,0}, // rcSource
{0,0,0,0}, // rcTarget
NTSC_DEFAULT_WIDTH * NTSC_DEFAULT_HEIGHT * 2 * NTSC_FRAMES_PER_SEC, // dwBitRate
0L, // dwBitErrorRate
NTSC_FRAME_DURATION_60HZ, // AvgTimePerFrame
{
sizeof( KS_BITMAPINFOHEADER ), // biSize
NTSC_DEFAULT_WIDTH, // biWidth;
NTSC_DEFAULT_HEIGHT, // biHeight;
1, // biPlanes;
16, // biBitCount;
FOURCC_UYVY, // biCompression;
NTSC_DEFAULT_WIDTH * NTSC_DEFAULT_HEIGHT * 2, // biSizeImage;
0, // biXPelsPerMeter;
0, // biYPelsPerMeter;
0, // biClrUsed;
0 // biClrImportant;
}
}
};
KS_DATARANGE_VIDEO FORMAT_UYVY_PAL =
{
// KSDATARANGE
{
{
sizeof( KS_DATARANGE_VIDEO ),
0,
PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT * 2, // SampleSize
0, // Reserved
STATIC_KSDATAFORMAT_TYPE_VIDEO, // MEDIATYPE_Video
STATIC_KSDATAFORMAT_SUBTYPE_UYVY_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 * 2, // MinBitsPerSecond;
PAL_FRAMES_PER_SEC * PAL_MAX_WIDTH * PAL_MAX_HEIGHT * 2 // MaxBitsPerSecond;
},
// KS_VIDEOINFOHEADER (default format)
{
{0,0,0,0}, // rcSource
{0,0,0,0}, // rcTarget
PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT * 2 * 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;
16, // biBitCount;
FOURCC_UYVY, // biCompression;
PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT * 2, // biSizeImage;
0, // biXPelsPerMeter;
0, // biYPelsPerMeter;
0, // biClrUsed;
0 // biClrImportant;
}
}
};
///for luma only use
/////////////////////////////////////////////////////////////////////
// {20203859-0000-0010-8000-00AA00389B71}
#define STATIC_KSDATAFORMAT_SUBTYPE_CXY8_VIDEO \
0x20203859, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
DEFINE_GUIDSTRUCT("{20203859-0000-0010-8000-00AA00389B71}", KSDATAFORMAT_SUBTYPE_CXY8_VIDEO);
#define KSDATAFORMAT_SUBTYPE_CXY8_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_CXY8_VIDEO)
#define FOURCC_CXY8 mmioFOURCC('Y', '8', ' ', ' ')
KS_DATARANGE_VIDEO FORMAT_CXY8_NTSC =
{
// KSDATARANGE
{
{
sizeof( KS_DATARANGE_VIDEO ),
0,
NTSC_DEFAULT_WIDTH * NTSC_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
NTSC_ASPECT_VIDEO_STANDARDS, // AnalogVideoStandard
{NTSC_MAX_WIDTH, NTSC_MAX_HEIGHT}, //InputSize
{NTSC_MIN_WIDTH, NTSC_MIN_HEIGHT}, //MinCroppingSize
{NTSC_MAX_WIDTH, NTSC_MAX_HEIGHT}, //MaxCroppingSize
2, //CropGranularityX
2, //CropGranularityY;
2, //CropAlignX
2, //CropAlignY;
{
ROUND_TO_NEAREST_MULTIPLE(NTSC_MIN_WIDTH, 4), //MinOutputSize
ROUND_TO_NEAREST_MULTIPLE(NTSC_MIN_HEIGHT, 2)
},
{
ROUND_TO_NEAREST_MULTIPLE(NTSC_MAX_WIDTH, 4), //MaxOutputSize
ROUND_TO_NEAREST_MULTIPLE(NTSC_MAX_HEIGHT, 2)
},
4, //OutputGranularityX
2, //OutputGranularityY;
0, // StretchTapsX
0, // StretchTapsY
2, // ShrinkTapsX
2, // ShrinkTapsY
NTSC_FRAME_DURATION_60HZ, // MinFrameInterval
NTSC_FRAME_DURATION_60HZ, // MaxFrameInterval
NTSC_FRAMES_PER_SEC * NTSC_MIN_WIDTH * NTSC_MIN_HEIGHT, // MinBitsPerSecond;
NTSC_FRAMES_PER_SEC * NTSC_MAX_WIDTH * NTSC_MAX_HEIGHT // MaxBitsPerSecond;
},
// KS_VIDEOINFOHEADER (default format)
{
{0,0,0,0}, // rcSource
{0,0,0,0}, // rcTarget
NTSC_DEFAULT_WIDTH * NTSC_DEFAULT_HEIGHT * NTSC_FRAMES_PER_SEC, // dwBitRate
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -