summaryrefslogtreecommitdiff
path: root/AVStream/avscamera/sys/formats.cpp
diff options
context:
space:
mode:
authorkarlf <[email protected]>2016-08-11 13:28:13 -0700
committerkarlf <[email protected]>2016-08-11 13:28:13 -0700
commit96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch)
treead5f3ede5cbcd6b598677ce41bcf8318471bdd92 /AVStream/avscamera/sys/formats.cpp
parent687b274aa38fd05c8c26e3068932121876d7f745 (diff)
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'AVStream/avscamera/sys/formats.cpp')
-rw-r--r--AVStream/avscamera/sys/formats.cpp390
1 files changed, 390 insertions, 0 deletions
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,
+};