예제 #1
0
        /// <summary>
        /// Returns a duplicate Video FrameList Stat object
        /// </summary>
        /// <returns></returns>
        public VideoFrameListStat Clone()
        {
            VideoFrameListStat vfls = new VideoFrameListStat();

            vfls._FrameCount    = _FrameCount;
            vfls._FrameRate     = _FrameRate;
            vfls._FrameDuration = _FrameDuration;
            return(vfls);
        }
예제 #2
0
        /// <summary>
        /// Calculates the stats for the timecode info of the current frame list
        /// </summary>
        public void CalculateStats(Int32 accuracyDecimals)
        {
            //Calculate FrameInfo Stats
            Decimal sum = 0.0m;

            for (int i = 0; i < _FrameList.Count; i++)
            {
                sum += AcHelper.Round(_FrameList[i].FrameRate, accuracyDecimals);

                bool found = false;
                for (int j = 0; j < _FrameStatsList.Count; j++)
                {
                    if (AcHelper.Round(_FrameStatsList[j].FrameRate, accuracyDecimals) ==
                        AcHelper.Round(_FrameList[i].FrameRate, accuracyDecimals))
                    {
                        _FrameStatsList[j].FrameCount++;
                        found = true;
                        break;
                    }
                }
                if (!found)
                {
                    VideoFrameListStat t = new VideoFrameListStat();
                    t.FrameCount    = 1;
                    t.FrameRate     = AcHelper.Round(_FrameList[i].FrameRate, accuracyDecimals);
                    t.FrameDuration = AcHelper.Round(_FrameList[i].FrameDuration, accuracyDecimals);
                    //comboBox1.Items.Add("" + t.frame_fps);
                    _FrameStatsList.Add(t);
                }
            }
            _AverageFramerate = (sum / Convert.ToDecimal(Count));
            //AcLogger.Log("Average fps : " + averageFramerate, AcLogger.AcLogType.Form);
            //String formatString = "";
            //formatString = "000.".PadRight(4 + accuracyDecimals, '0');
            //for (int i = 0; i < frameStats.Count; i++)
            //{
            //AcLogger.Log("fps : " + frameStats[i].FrameRate.ToString(formatString) + " - Total frames : " +
            //    frameStats[i].FrameCount.ToString("0000000") +
            //    "  - Percent : " + Convert.ToDouble(Convert.ToDouble((frameStats[i].FrameCount) / Convert.ToDouble(Count)) * 100.0).ToString("#00.000000000") + "%"
            //    , AcLogger.AcLogType.Form);
            //}
        }