Esempio n. 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);
        }
Esempio n. 2
0
 public void Download(TimePeriodPacket tpp)
 {
     updateDownloaded(tpp);
     _missingTi = TimePeriodManager.Subtracts(_missingTi.ToArray(), tpp);
     updateProbeTime(ProbeTime);
     updateTicksMissing();
 }
        public void TestLocalVideosInfoPacket()
        {
            TimePeriodPacket tpp = new TimePeriodPacket(new DateTime(2016, 7, 25), new DateTime(2016, 7, 25, 17, 0, 0));

            VideoTimePeriodsPacket[] vtpps = new VideoTimePeriodsPacket[]
            {
                new VideoTimePeriodsPacket(new VideoInfo("id", 2), new TimePeriodPacket[0]),
                new VideoTimePeriodsPacket(new VideoInfo("id2", 2), new TimePeriodPacket[]
                {
                    new TimePeriodPacket(new DateTime(2016, 7, 25), new DateTime(2016, 7, 25, 16, 40, 0))
                })
            };
            LocalVideosInfoPacket packet = new LocalVideosInfoPacket(tpp, vtpps);

            byte[] buffer  = LocalVideosInfoPacket.Encode(packet);
            var    packet2 = LocalVideosInfoPacket.Decode(buffer);

            Assert.AreNotSame(packet, packet2);
            TimePeriodPacketTest.AssertAreEqual(packet.TimePeriod, packet2.TimePeriod);

            Assert.AreNotSame(packet.ValidTimePeriods, packet2.ValidTimePeriods);
            Assert.AreEqual(packet.ValidTimePeriods.Length, packet2.ValidTimePeriods.Length);
            for (int i = 0; i < packet.ValidTimePeriods.Length; i++)
            {
                VideoTimePeriodsPacketTest.AssertAreEqual(packet.ValidTimePeriods[i], packet2.ValidTimePeriods[i]);
            }
        }
Esempio n. 4
0
        public void TestTimePeriodPacket_CompareTo()
        {
            TimePeriodPacket packet = new TimePeriodPacket(new DateTime(2010, 5, 3, 13, 35, 20, 123), new DateTime(2016, 5, 3, 13, 36, 0, 3));

            Assert.AreEqual(1, packet.CompareTo(null));
            Assert.AreEqual(0, packet.CompareTo(packet));
        }
        public void TestGetVideoStorageInfo()
        {
            var datas = BaseInfo.SecondsPeriodArray;

            TimePeriodPacket[] tis = new TimePeriodPacket[datas.Length];

            VideoInfo videoInfo = new VideoInfo("videoId2", 2);
            DateTime  begin     = new DateTime(2010, 3, 23, 20, 51, 50, 0);
            DateTime  end       = beginTime.AddSeconds(57900);
            var       results   = StorageSearcher.Instance.Search(begin, end, videoInfo);

            Assert.AreEqual(videoInfo.VideoId, results.VideoId);
            Assert.AreEqual(videoInfo.StreamId, results.StreamId);
            var array = results.TimePeriods;

            Assert.AreEqual(datas.Length - 1, array.Length);

            Assert.AreEqual(begin, array[0].BeginTime);
            Assert.AreEqual(beginTime.AddSeconds(datas[0].StopSeconds), array[0].EndTime);
            for (int i = 1; i < array.Length - 1; i++)
            {
                int index = i >= 3 ? i + 1 : i;
                Assert.AreEqual(beginTime.AddSeconds(datas[index].StartSeconds), array[i].BeginTime);
                Assert.AreEqual(beginTime.AddSeconds(datas[index].StopSeconds), array[i].EndTime);
            }
            Assert.AreEqual(beginTime.AddSeconds(datas[datas.Length - 1].StartSeconds), array[4].BeginTime);
            Assert.AreEqual(end, array[4].EndTime);
        }
Esempio n. 6
0
        public static DownloadInfoExpandPacket NewDownloadInfoExpandPacket()
        {
            Guid guid = Guid.NewGuid();
            DownloadInfoParam info    = new DownloadInfoParam(Settings.DownloadHost, Settings.DownloadPort, new VideoBaseInfomParam(new VideoInfo("VideoId_Large_50BAD15900010701", 2), new TimePeriodPacket(new DateTime(2010, 1, 1), new DateTime(2016, 12, 31))), @"D:\视酷下载\Time_201604051240_201604051643\VideoId_Large_50BAD15900010701_2");
            string            name    = "";
            string            quality = "标清";
            long size            = 10000000;
            bool isLocalDownload = true;

            TimePeriodPacket[] timePeriods = new TimePeriodPacket[] {
                new TimePeriodPacket(new DateTime(2010, 1, 31), new DateTime(2010, 12, 31)),
                new TimePeriodPacket(new DateTime(2011, 1, 31), new DateTime(2011, 12, 31)),
                new TimePeriodPacket(new DateTime(2012, 1, 31), new DateTime(2012, 12, 31)),
                new TimePeriodPacket(new DateTime(2013, 1, 31), new DateTime(2016, 12, 31)),
            };
            TimePeriodPacket[] timePeriodsCompleted = new TimePeriodPacket[] {
                new TimePeriodPacket(new DateTime(2010, 1, 31), new DateTime(2010, 6, 3)),
                new TimePeriodPacket(new DateTime(2011, 1, 31), new DateTime(2011, 5, 3)),
                new TimePeriodPacket(new DateTime(2012, 1, 31), new DateTime(2012, 12, 1)),
                new TimePeriodPacket(new DateTime(2013, 1, 31), new DateTime(2016, 12, 1)),
            };
            DownloadStatus status             = DownloadStatus.Downloading;
            string         errorInfo          = null;
            DateTime       updatedLastestTime = new DateTime(2016, 5, 2);

            return(new DownloadInfoExpandPacket(guid, info, name, quality, size, isLocalDownload, timePeriods, timePeriodsCompleted, status, errorInfo, updatedLastestTime, 0));
        }
Esempio n. 7
0
        public void TestGlobalProcess_GetFolderName()
        {
            TimePeriodPacket tpp        = new TimePeriodPacket(new DateTime(2016, 7, 25, 18, 15, 0), new DateTime(2016, 7, 25, 18, 16, 10));
            string           folderName = GlobalProcess.GetFolderName(tpp);

            Assert.AreEqual("录像_201607251815_201607251816", folderName);
        }
Esempio n. 8
0
 static void assertSubtractsAny(TimePeriodPacket[] tis1, TimePeriodPacket ti2, params TimePeriodPacket[] tis)
 {
     TimePeriodPacket[] tiSub = TimePeriodManager.Subtracts(tis1, ti2);
     Assert.AreEqual(tis.Length, tiSub.Length);
     for (int i = 0; i < tis.Length; i++)
     {
         assertEqual(tis[i], tiSub[i]);
     }
 }
Esempio n. 9
0
        public void TestTimePeriodPacket()
        {
            TimePeriodPacket packet = new TimePeriodPacket(new DateTime(2010, 5, 3, 13, 35, 20, 123), new DateTime(2016, 5, 3, 13, 36, 0, 3));

            byte[] buffer = TimePeriodPacket.Encode(packet);
            var    act    = TimePeriodPacket.Decode(buffer);

            AssertAreEqual(packet, act);
        }
Esempio n. 10
0
        public void TestTimePeriodManager_GetIntersections()
        {
            TimePeriodPacket ti1 = new TimePeriodPacket(beginTime.AddMinutes(5), beginTime.AddMinutes(40));

            TimePeriodPacket[] results = TimePeriodManager.GetIntersections(tis.ToArray(), ti1);
            Assert.AreEqual(3, results.Length);
            TimePeriodPacket[] results2 = TimePeriodManager.GetIntersections(new TimePeriodPacket[0], ti1);
            Assert.AreEqual(0, results2.Length);
        }
Esempio n. 11
0
        public void TestTimePeriodManager_IsValid()
        {
            TimePeriodPacket ti = new TimePeriodPacket(new DateTime(2016, 1, 1), new DateTime(2016, 3, 1));

            Assert.IsFalse(TimePeriodManager.IsValid(ti, new DateTime(2015, 1, 1)));
            Assert.IsTrue(TimePeriodManager.IsValid(ti, new DateTime(2016, 1, 1)));
            Assert.IsTrue(TimePeriodManager.IsValid(ti, new DateTime(2016, 2, 1)));
            Assert.IsFalse(TimePeriodManager.IsValid(ti, new DateTime(2016, 3, 1)));
            Assert.IsFalse(TimePeriodManager.IsValid(ti, new DateTime(2016, 5, 1)));
        }
Esempio n. 12
0
 VideoStreamsPacket newVideoStreamsPacket()
 {
     ti  = new TimePeriodPacket(new DateTime(2010, 1, 2, 3, 4, 5, 6), new DateTime(2011, 2, 3, 4, 5, 6, 7));
     sps = new List <StreamPacket>();
     sps.Add(new StreamPacket(ti.BeginTime, DataType.StreamDataKey, new byte[2000]));
     sps.Add(new StreamPacket(ti.BeginTime.AddSeconds(1), DataType.StreamData, new byte[200]));
     sps.Add(new StreamPacket(ti.BeginTime.AddSeconds(2), DataType.StreamData, new byte[190]));
     sps.Add(new StreamPacket(ti.BeginTime.AddSeconds(3), DataType.StreamData, new byte[100]));
     sps.Add(new StreamPacket(ti.BeginTime.AddSeconds(4), DataType.StreamData, new byte[200]));
     return(new VideoStreamsPacket(ti, sps.ToArray()));
 }
Esempio n. 13
0
        public void Setup()
        {
            beginTime  = new DateTime(2016, 5, 6, 13, 58, 0);
            basePacket = new VideoBasePacket(new byte[] { 1, 2, 3, 5, 6, 7, 128, 200, 0, 15 }, beginTime, 1000000);
            var tpps = new TimePeriodPacket[] {
                new TimePeriodPacket(beginTime.AddMinutes(1), beginTime.AddMinutes(10)),
                new TimePeriodPacket(beginTime.AddMinutes(15), beginTime.AddMinutes(30)),
            };

            packet = new VideoTimePeriodsPacket(new VideoInfo("test", 1), tpps);
        }
Esempio n. 14
0
        public void TestTimePeriodPacketArray()
        {
            List <TimePeriodPacket> packets = new List <TimePeriodPacket>();

            for (int i = 2010; i < 2016; i++)
            {
                packets.Add(new TimePeriodPacket(new DateTime(i, 5, 3, 13, 35, 20, 123), new DateTime(i + 1, 5, 3, 13, 36, 0, 3)));
            }
            byte[] buffer = TimePeriodPacket.EncodeArray(packets.ToArray());
            var    p      = TimePeriodPacket.DecodeArray(new MemoryStream(buffer));

            AssertAreEqualArray(packets.ToArray(), p);
        }
Esempio n. 15
0
        public void TestTimePeriodPacket_IsInRange()
        {
            DateTime         begin  = new DateTime(2010, 5, 3, 13, 35, 20, 123);
            DateTime         end    = new DateTime(2016, 5, 3, 13, 36, 0, 3);
            TimePeriodPacket packet = new TimePeriodPacket(begin, end);

            Assert.IsTrue(packet.IsInRange(begin));
            Assert.IsFalse(packet.IsInRange(end));
            Assert.IsTrue(packet.IsInRange(end.Subtract(TimeSpan.FromMilliseconds(1))));
            Assert.IsFalse(packet.IsInRange(begin.Subtract(TimeSpan.FromMilliseconds(1))));
            Assert.IsFalse(packet.IsInRange(end.Add(TimeSpan.FromHours(1))));
            Assert.AreEqual(0, packet.CompareTo(packet));
        }
Esempio n. 16
0
        public void TestTimePeriodManager_Intersection()
        {
            TimePeriodPacket ti1     = new TimePeriodPacket(beginTime, beginTime.AddDays(1));
            TimePeriodPacket ti2     = new TimePeriodPacket(beginTime.AddHours(1), beginTime.AddHours(2));
            TimePeriodPacket ti3     = new TimePeriodPacket(beginTime.AddHours(1), beginTime.AddDays(2));
            TimePeriodPacket ti1_3   = new TimePeriodPacket(beginTime.AddHours(1), beginTime.AddDays(1));
            TimePeriodPacket invalid = new TimePeriodPacket(beginTime.AddDays(1), beginTime);

            assertEqual(ti2, TimePeriodManager.Intersection(ti1, ti2));
            assertEqual(ti2, TimePeriodManager.Intersection(ti2, ti1));
            assertEqual(ti1_3, TimePeriodManager.Intersection(ti3, ti1));
            assertEqual(ti1_3, TimePeriodManager.Intersection(ti1, ti3));
            Assert.IsNull(TimePeriodManager.Intersection(ti1, invalid));
            Assert.IsNull(TimePeriodManager.Intersection(invalid, ti1));
        }
Esempio n. 17
0
        public void TestTimePeriodPacketArrayNull()
        {
            var buffer = TimePeriodPacket.EncodeArray(null);

            using (MemoryStream ms = new MemoryStream(buffer))
            {
                var tpps = TimePeriodPacket.DecodeArray(ms);
                Assert.AreEqual(0, tpps.Length);
            }
            var buffer2 = TimePeriodPacket.EncodeArray(new TimePeriodPacket[0]);

            using (MemoryStream ms = new MemoryStream(buffer))
            {
                var tpps = TimePeriodPacket.DecodeArray(ms);
                Assert.AreEqual(0, tpps.Length);
            }
        }
Esempio n. 18
0
        public void TestTimePeriodManager_Subtracts()
        {
            TimePeriodPacket[] tis = new TimePeriodPacket[] { getTi(1, 2), getTi(4, 7), getTi(10, 14) };
            assertSubtractsEmpty(null, getTi(0, 2));
            assertSubtractsEmpty(new TimePeriodPacket[0], getTi(0, 2));
            assertSubtractsEmpty(tis, getTi(0, 14));
            assertSubtractsEmpty(tis, getTi(1, 15));

            assertSubtractsAll(tis, getTi(0, 1));
            assertSubtractsAll(tis, getTi(2, 3));
            assertSubtractsAll(tis, getTi(3, 4));
            assertSubtractsAll(tis, getTi(14, 19));

            assertSubtractsAny(tis, getTi(1, 2), getTi(4, 7), getTi(10, 14));
            assertSubtractsAny(tis, getTi(0, 5), getTi(5, 7), getTi(10, 14));
            assertSubtractsAny(tis, getTi(11, 13), getTi(1, 2), getTi(4, 7), getTi(10, 11), getTi(13, 14));
        }
Esempio n. 19
0
        protected override void updateShortIndexes(TimePeriodPacket newTi)
        {
            List <TimePeriodPacket> shortIndexes = new List <TimePeriodPacket>();

            shortIndexes.Add(newTi);
            string simpleIndexesName = $"{GlobalProcess.FileNameFromDate(_fileStartTime)}{GlobalProcess.SimpleIndexesFormat()}";
            string fileName          = Path.Combine(_curFolder, simpleIndexesName);
            var    indexesDatas      = FileManager.GetTimePeriods(fileName);

            if (indexesDatas != null)
            {
                shortIndexes.AddRange(indexesDatas);
            }
            var newArray = TimePeriodManager.Combine(shortIndexes.ToArray());

            using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Read))
            {
                for (int i = 0; i < newArray.Length; i++)
                {
                    writeBuffer(fs, TimePeriodPacket.Encode(newArray[i]));
                }
            }
        }
Esempio n. 20
0
 private DownloadProgressManager newStorageProgressDownloaderMore()
 {
     TimePeriodPacket[] tisAll       = new TimePeriodPacket[] { getTi(0, 10), getTi(20, 30), getTi(40, 50), getTi(55, 58) };
     TimePeriodPacket[] tisCompleted = new TimePeriodPacket[] { getTi(56, 57), getTi(25, 30), getTi(40, 45) };
     return(new DownloadProgressManager(tisAll, tisCompleted));
 }
Esempio n. 21
0
 protected override void updateShortIndexes(TimePeriodPacket newTi)
 {
 }
Esempio n. 22
0
 private static void assertEqual(TimePeriodPacket expected, TimePeriodPacket actual)
 {
     Assert.AreEqual(expected.BeginTime, actual.BeginTime);
     Assert.AreEqual(expected.EndTime, actual.EndTime);
 }
Esempio n. 23
0
 static void assertSubtractsEmpty(TimePeriodPacket[] tis, TimePeriodPacket ti)
 {
     assertSubtractsAny(tis, ti);
 }
Esempio n. 24
0
 static void assertSubtractsAll(TimePeriodPacket[] tis1, TimePeriodPacket ti2)
 {
     assertSubtractsAny(tis1, ti2, tis1);
 }
Esempio n. 25
0
 static void assertSubtractEmpty(TimePeriodPacket ti1, TimePeriodPacket ti2)
 {
     assertSubtractAny(ti1, ti2);
 }
Esempio n. 26
0
 static void assertSubtractAll(TimePeriodPacket ti1, TimePeriodPacket ti2)
 {
     assertSubtractAny(ti1, ti2, ti1);
 }
Esempio n. 27
0
 private void updateDownloaded(TimePeriodPacket tpp)
 {
     _downloadedTimePeriods.Add(tpp);
     _downloadedTimePeriods = TimePeriodManager.Combine(_downloadedTimePeriods.ToArray()).ToList();
 }
Esempio n. 28
0
 public bool IsValidTime(TimePeriodPacket timePeriod)
 {
     return(_missingTi.Any(_ => TimePeriodManager.Intersection(_, timePeriod) != null));
 }