diff options
Diffstat (limited to 'avstream/avscamera/sys/hwsim.cpp')
| -rw-r--r-- | avstream/avscamera/sys/hwsim.cpp | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/avstream/avscamera/sys/hwsim.cpp b/avstream/avscamera/sys/hwsim.cpp index 5322cff3..fdf7b367 100644 --- a/avstream/avscamera/sys/hwsim.cpp +++ b/avstream/avscamera/sys/hwsim.cpp @@ -1207,7 +1207,7 @@ Return Value: { PAGED_CODE(); - KScopedMutex Lock( m_ListLock ); + KScopedMutex Lock(m_ListLock); m_InterruptTime++; @@ -1218,10 +1218,10 @@ Return Value: // if (m_PinState == PinRunning) { - LONGLONG Qpc = (LONGLONG) ConvertQPCtoTimeStamp(nullptr); + LONGLONG Qpc = (LONGLONG)ConvertQPCtoTimeStamp(nullptr); LARGE_INTEGER Now; - KeQuerySystemTimePrecise( &Now ); + KeQuerySystemTimePrecise(&Now); // // Generate a "time stamp" just to overlay it onto the capture image. // It makes it more exciting than bars that do nothing. @@ -1230,12 +1230,16 @@ Return Value: // the most recent streaming pin's index. if (!m_Sensor->IsStillIndex(m_PinID)) { + CSensor::SynthesizerAttributeEntry AttributeList[] = + { + { CSynthesizer::FrameNumber, m_InterruptTime, m_PinID }, + { CSynthesizer::RelativePts, (m_InterruptTime + 1) * m_TimePerFrame, m_PinID }, + { CSynthesizer::QpcTime, Qpc, m_PinID } + }; DBG_TRACE("QPC=0x%016llX", Qpc); // Broadcast the preview pin's info to all pin simulations. - m_Sensor->SetSynthesizerAttribute(CSynthesizer::FrameNumber, m_InterruptTime, m_PinID); - m_Sensor->SetSynthesizerAttribute(CSynthesizer::RelativePts, (m_InterruptTime + 1) * m_TimePerFrame, m_PinID); - m_Sensor->SetSynthesizerAttribute(CSynthesizer::QpcTime, Qpc, m_PinID); + m_Sensor->SetSynthesizerAttributeList(SIZEOF_ARRAY(AttributeList), AttributeList); } m_Synthesizer->DoSynthesize(); @@ -1243,13 +1247,13 @@ Return Value: CHAR Text[64]; CExtendedProperty Control; - m_Sensor->GetVideoStabilization( &Control ); + m_Sensor->GetVideoStabilization(&Control); RtlStringCbPrintfA(Text, sizeof(Text), "DVS: %s", DVS_Text(Control.Flags)); - m_Synthesizer->OverlayText( 0, m_Height-38, 1, Text, TRANSPARENT, TEXT_COLOR ); + m_Synthesizer->OverlayText(0, m_Height - 38, 1, Text, TRANSPARENT, TEXT_COLOR); - m_Sensor->GetOpticalImageStabilization( &Control ); + m_Sensor->GetOpticalImageStabilization(&Control); RtlStringCbPrintfA(Text, sizeof(Text), "OIS: %s", OIS_Text(Control.Flags)); - m_Synthesizer->OverlayText( 0, m_Height-48, 1, Text, TRANSPARENT, TEXT_COLOR ); + m_Synthesizer->OverlayText(0, m_Height - 48, 1, Text, TRANSPARENT, TEXT_COLOR); // // Add the Missed frame count @@ -1257,7 +1261,7 @@ Return Value: size_t len = 0; RtlStringCchLengthA(Text, sizeof(Text), &len); m_Synthesizer->OverlayText( - (m_Width - (((ULONG)len*8))), // right-adjust text. + (m_Width - (((ULONG)len * 8))), // right-adjust text. (m_Height - 48), 1, Text, @@ -1268,12 +1272,12 @@ Return Value: // // Add the estimated FPS LONGLONG Target = NANOSECONDS / m_TimePerFrame; - LONGLONG FPS = ((LONGLONG)m_InterruptTime * NANOSECONDS) / ( (Now.QuadPart - m_StartTime.QuadPart) + (NANOSECONDS/2) ); + LONGLONG FPS = ((LONGLONG)m_InterruptTime * NANOSECONDS) / ((Now.QuadPart - m_StartTime.QuadPart) + (NANOSECONDS / 2)); RtlStringCbPrintfA(Text, sizeof(Text), "%lld/%lld FPS", FPS, Target); len = 0; RtlStringCchLengthA(Text, sizeof(Text), &len); - m_Synthesizer->OverlayText ( - (m_Width - (((ULONG)len*8))), // right-adjust text. + m_Synthesizer->OverlayText( + (m_Width - (((ULONG)len * 8))), // right-adjust text. (m_Height - 38), 1, Text, @@ -1284,7 +1288,7 @@ Return Value: // // Fill scatter gather buffers // - if (!NT_SUCCESS (FillScatterGatherBuffers ())) + if (!NT_SUCCESS(FillScatterGatherBuffers())) { m_NumFramesSkipped++; } @@ -1294,28 +1298,28 @@ Return Value: // Issue an interrupt to our hardware sink. This is a "fake" interrupt. // It will occur at DISPATCH_LEVEL. // - m_Sensor -> Interrupt (m_PinID); + m_Sensor->Interrupt(m_PinID); // // Schedule the timer for the next interrupt time, if the pin is still running. // - if( m_PinState == PinRunning ) + if (m_PinState == PinRunning) { LARGE_INTEGER NextTime; NextTime.QuadPart = m_StartTime.QuadPart + - (m_TimePerFrame * (m_InterruptTime + 1)); + (m_TimePerFrame * (m_InterruptTime + 1)); #ifdef ENABLE_TRACING // To keep us from a tight spin when trying to debug this code... LARGE_INTEGER Now; KeQuerySystemTime(&Now); - if( Now.QuadPart >= NextTime.QuadPart ) + if (Now.QuadPart >= NextTime.QuadPart) { - NextTime.QuadPart = 0LL - m_TimePerFrame ; + NextTime.QuadPart = 0LL - m_TimePerFrame; } #endif - m_IsrTimer.Set( NextTime ); + m_IsrTimer.Set(NextTime); } } |
