From 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc Mon Sep 17 00:00:00 2001 From: karlf Date: Thu, 11 Aug 2016 13:28:13 -0700 Subject: Updated for "Windows 10 Anniversary Update" (Version 1607) --- AVStream/avscamera/sys/formats.cpp | 390 +++++++++++++++++++++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 AVStream/avscamera/sys/formats.cpp (limited to 'AVStream/avscamera/sys/formats.cpp') diff --git a/AVStream/avscamera/sys/formats.cpp b/AVStream/avscamera/sys/formats.cpp new file mode 100644 index 00000000..0c03d4ab --- /dev/null +++ b/AVStream/avscamera/sys/formats.cpp @@ -0,0 +1,390 @@ +/************************************************************************** + + A/V Stream Camera Sample + + Copyright (c) 2001, Microsoft Corporation. + + File: + + Formats.cpp + + Abstract: + + A list of available Image and Video formats. + + History: + + created 2/12/2016 + +**************************************************************************/ + +#include "Common.h" +#include "ntintsafe.h" + +#ifdef ALLOC_PRAGMA +#pragma code_seg("PAGE") +#endif // ALLOC_PRAGMA + + +/************************************************************************** + + DISPATCH AND DESCRIPTOR LAYOUT + +**************************************************************************/ + +DEFINE_DATARANGE_VIDEO( + FormatNV12_CaptureVGA, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_NV12), + DMAX_X, DMAX_Y, + 30, + 1, + 12, + FOURCC_NV12) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureQVGA, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + D_X, D_Y, + 30, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureQVGAOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + D_X_OS, D_Y_OS, + 30, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGA, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X, DMAX_Y, + 30, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGAOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X_OS, DMAX_Y_OS, + 30, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureQVGA, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + D_X, D_Y, + 30, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureQVGAOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + D_X_OS, D_Y_OS, + 30, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGA, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X, DMAX_Y, + 30, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGAOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X_OS, DMAX_Y_OS, + 30, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGA_60fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X, DMAX_Y, + 60, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGA_60fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X_OS, DMAX_Y_OS, + 60, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGA_60fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X, DMAX_Y, + 60, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGA_60fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X_OS, DMAX_Y_OS, + 60, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGA_90fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X, DMAX_Y, + 90, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGA_90fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X_OS, DMAX_Y_OS, + 90, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGA_90fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X, DMAX_Y, + 90, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGA_90fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X_OS, DMAX_Y_OS, + 90, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGA_120fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X, DMAX_Y, + 120, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatYUY2_CaptureVGA_120fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_YUY2), + DMAX_X_OS, DMAX_Y_OS, + 120, + 1, + 16, + FOURCC_YUY2) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGA_120fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X, DMAX_Y, + 120, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB24Bpp_CaptureVGA_120fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB24), + DMAX_X_OS, DMAX_Y_OS, + 120, + 1, + 24, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGA, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X, DMAX_Y, + 30, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGAOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X_OS, DMAX_Y_OS, + 30, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGA_60fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X, DMAX_Y, + 60, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGA_60fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X_OS, DMAX_Y_OS, + 60, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGA_90fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X, DMAX_Y, + 90, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGA_90fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X_OS, DMAX_Y_OS, + 90, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGA_120fps, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X, DMAX_Y, + 120, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureVGA_120fpsOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + DMAX_X_OS, DMAX_Y_OS, + 120, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureQVGA, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + D_X, D_Y, + 30, + 1, + 32, + KS_BI_RGB) + +DEFINE_DATARANGE_VIDEO( + FormatRGB32Bpp_CaptureQVGAOverscan, + STATICGUIDOF(KSDATAFORMAT_SUBTYPE_RGB32), + D_X_OS, D_Y_OS, + 30, + 1, + 32, + KS_BI_RGB) + + +// +// CapturePinDataRanges: +// +// This is the list of data ranges supported on the capture pin. We support +// two: one RGB24, and one YUY2. +// +const +PKSDATARANGE +ImageCapturePinDataRanges[ IMAGE_CAPTURE_PIN_DATA_RANGE_COUNT ] = +{ + (PKSDATARANGE) &FormatYUY2_CaptureVGA, + (PKSDATARANGE) &FormatNV12_CaptureVGA +}; + +// +// CapturePinDataRanges: +// +// This is the list of data ranges supported on the capture pin. We support +// RGB24, YUY2, and RGB32 +// +const +PKSDATARANGE +VideoCapturePinDataRanges [VIDEO_CAPTURE_PIN_DATA_RANGE_COUNT] = +{ + (PKSDATARANGE) &FormatYUY2_CaptureQVGA, + (PKSDATARANGE) &FormatYUY2_CaptureQVGAOverscan, + (PKSDATARANGE) &FormatYUY2_CaptureVGA, + (PKSDATARANGE) &FormatYUY2_CaptureVGAOverscan, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureQVGA, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureQVGAOverscan, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGAOverscan, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_60fps, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_60fpsOverscan, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_60fps, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_60fpsOverscan, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_90fps, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_90fpsOverscan, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_90fps, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_90fpsOverscan, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_120fps, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_120fpsOverscan, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_120fps, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_120fpsOverscan, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGAOverscan, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_60fps, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_60fpsOverscan, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_90fps, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_90fpsOverscan, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_120fps, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_120fpsOverscan, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureQVGA, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureQVGAOverscan, +}; + +const +PKSDATARANGE +VideoPreviewPinDataRanges[VIDEO_PREVIEW_PIN_DATA_RANGE_COUNT] = +{ + (PKSDATARANGE) &FormatYUY2_CaptureQVGA, + (PKSDATARANGE) &FormatYUY2_CaptureVGA, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureQVGA, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_60fps, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_60fps, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_90fps, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_90fps, + (PKSDATARANGE) &FormatYUY2_CaptureVGA_120fps, + (PKSDATARANGE) &FormatRGB24Bpp_CaptureVGA_120fps, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_60fps, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_90fps, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureVGA_120fps, + (PKSDATARANGE) &FormatRGB32Bpp_CaptureQVGA, +}; -- cgit v1.3.1