summaryrefslogtreecommitdiff
path: root/AVStream/avscamera/sys/VideoHwSim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'AVStream/avscamera/sys/VideoHwSim.cpp')
-rw-r--r--AVStream/avscamera/sys/VideoHwSim.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/AVStream/avscamera/sys/VideoHwSim.cpp b/AVStream/avscamera/sys/VideoHwSim.cpp
new file mode 100644
index 00000000..33b6de90
--- /dev/null
+++ b/AVStream/avscamera/sys/VideoHwSim.cpp
@@ -0,0 +1,66 @@
+/**************************************************************************
+
+ A/V Stream Camera Sample
+
+ Copyright (c) 2014, Microsoft Corporation.
+
+ File:
+
+ VideoHwSim.cpp
+
+ Abstract:
+
+ A fake h/w simulation for the video pin. Provides Video pin specific
+ metadata.
+
+ History:
+
+ created 5/28/2014
+
+**************************************************************************/
+
+#include "Common.h"
+
+
+CVideoHardwareSimulation::CVideoHardwareSimulation(
+ _Inout_ CSensor *Sensor,
+ _In_ LONG PinID
+)
+ : CHardwareSimulation( Sensor, PinID )
+{}
+
+
+CVideoHardwareSimulation::~CVideoHardwareSimulation()
+{}
+
+//
+// Emit metadata here for video pin.
+//
+void
+CVideoHardwareSimulation::
+EmitMetadata(
+ _Inout_ PKSSTREAM_HEADER pStreamHeader
+)
+{
+ NT_ASSERT(pStreamHeader);
+
+ // Add the normal frame info to the metadata
+ // Note: This call ensures the KSSTREAM_METADATA_INFO is properly initialized.
+ CHardwareSimulation::EmitMetadata( pStreamHeader );
+
+ if (0 != (pStreamHeader->OptionsFlags & KSSTREAM_HEADER_OPTIONSF_METADATA))
+ {
+ CExtendedVidProcSetting FaceDetect;
+ m_Sensor->GetFaceDetection(&FaceDetect);
+
+ if( FaceDetect.Flags & KSCAMERA_EXTENDEDPROP_FACEDETECTION_VIDEO )
+ {
+ DBG_TRACE("VIDEO");
+ EmitFaceMetadata(
+ pStreamHeader,
+ FaceDetect.GetULONG(),
+ FaceDetect.Flags & KSCAMERA_EXTENDEDPROP_FACEDETECTION_ADVANCED_MASK);
+ }
+ }
+}
+