Пример #1
0
        public void TestVideoPackageRecorder()
        {
            FolderManager.DeleteDirectoryInfo(path);
            TimePeriodPacket[] tisAll       = new TimePeriodPacket[] { new TimePeriodPacket(begin, end) };
            TimePeriodPacket[] tisCompleted = null;

            using (VideoPackageRecorder recorder = new VideoPackageRecorder(path, TimeSpan.FromMinutes(1), tisAll, tisCompleted))
            {
                recorder.ProbeTime = end;
                check(recorder, false, false, 0, 0);
                recorder.SetVideoBaseInfo(new VideoBasePacket(new byte[5], begin, 10000));
                check(recorder, true, false, 0, 0);
                recorder.Set(null);
                for (int i = 0; i < 23; i++)
                {
                    recorder.Set(getVideoStreamsPacket(begin.AddSeconds(5 * i)));
                    check(recorder, true, false, 5 * (i + 1), 1);
                }
                recorder.Set(getVideoStreamsPacket(begin.AddSeconds(5 * 23)));
                check(recorder, true, true, 120, 1);


                recorder.Set(getVideoStreamsPacket(begin.AddSeconds(120)));
                check(recorder, true, true, 120, 1);

                recorder.Stop();
                recorder.Set(getVideoStreamsPacket(begin.AddSeconds(120)));
                check(recorder, true, true, 120, 1);
            }
            FolderManager.DeleteDirectoryInfo(path);
        }
Пример #2
0
 private void check(VideoPackageRecorder recorder, bool isInitedVideoBase, bool isDownloaded, int seconds, int length)
 {
     Assert.AreEqual(isInitedVideoBase, recorder.IsInitedVideoBase);
     Assert.AreEqual(isDownloaded, recorder.IsDownloaded);
     Assert.AreEqual(seconds * 100.0 / 120, recorder.Percent);
     TimePeriodPacket[] tpps = recorder.GetDownloadedTimePeriods();
     Assert.AreEqual(length, tpps.Length);
     if (length > 0)
     {
         Assert.AreEqual(begin, tpps[0].BeginTime);
         Assert.AreEqual(begin.AddSeconds(seconds), tpps[0].EndTime);
     }
     if (seconds > 0)
     {
         Assert.IsNotNull(FolderManager.GetVideoStreamsPacket(path, begin.AddSeconds(seconds - 1)));
     }
     if (seconds < 120)
     {
         Assert.AreEqual(begin.AddSeconds(seconds), recorder.ProbeTime);
     }
 }