コード例 #1
0
ファイル: UncalibratedState.cs プロジェクト: hpavlov/occurec
        internal override TestFrameResult TestTimeStamp(StateContext context, OsdFrameInfo frameTimestamp)
        {
            attempts++;

            if (lastGoodTimeStamp == null)
            {
                if (frameTimestamp.FrameInfoIsOk())
                    lastGoodTimeStamp = frameTimestamp;
            }
            else
            {
                if (!frameTimestamp.FrameInfoIsOk() ||
                    lastGoodTimeStamp.SecondField.FieldNumber + 1 != frameTimestamp.FirstField.FieldNumber ||
                    Math.Abs(new TimeSpan(frameTimestamp.FirstField.TimeStamp.Ticks - lastGoodTimeStamp.SecondField.TimeStamp.Ticks).TotalMilliseconds - 20) > 1)
                {
                    lastGoodTimeStamp = null;
                }
                else
                {
                    secondLastGoodTimeStamp = frameTimestamp;

                    context.LastTimeStamp = secondLastGoodTimeStamp;
                    context.TransitionToState(CalibratedState.Instance);
                }
            }

            return attempts > 4 ? TestFrameResult.ErrorSaveScreenShotImages : TestFrameResult.Undefined;
        }
コード例 #2
0
ファイル: StateContext.cs プロジェクト: hpavlov/occurec
        public TestFrameResult TestTimeStamp(OsdFrameInfo frameTimestamp, bool ts)
        {
            TestFrameResult suggestedResult = currentState.TestTimeStamp(this, frameTimestamp);

            if (!frameTimestamp.FrameInfoIsOk() || suggestedResult == TestFrameResult.ErrorSaveScreenShotImages)
            {
                return TestFrameResult.ErrorSaveScreenShotImages;
            }
            else
                return suggestedResult;
        }