/// <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); }
/// <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); //} }