private void _vSoure_Hikm4StreamReceived(object sender, VideoStreamClient.Events.HikM4StreamEventArgs e) { lock (_locker) { _ups.UpdateStandardStream(e.Package.Data); } }
private void onHikm4StreamReceived(object sender, VideoStreamClient.Events.HikM4StreamEventArgs e) { if (_hikPacket == null || _hikStream == null) { return; } var infos = _hikStream.Update(DateTime.Now, e.Package.Data); foreach (var packets in infos) { if (packets != null && packets.Length > 0) { int length = packets.Sum(_ => _.Buffer.Length); bool isKey = _keyDetector.Update(packets.First().Time, length); if (isKey) { Console.WriteLine("Hikm4StreamReceived {0} {1} {2} - {3}", packets.First().Time.TimeOfDay, e.Package.Type, length, _source.VideoId); } DataType type = DataType.StreamData; if (_keyDetector.Update(packets.First().Time, length)) { type = DataType.StreamDataKey; } fireVideoDisplay(packets.First().Time, type, packets.First().Buffer); //合并视频流的第一个packet for (int i = 1; i < packets.Length; i++) //合并视频流的其他packet { fireVideoDisplay(packets[i].Time, DataType.StreamData, packets[i].Buffer); } } } }