Esempio n. 1
0
        private static byte[] GetFrameBytes(CS.VideoSources.Core.VideoFrame frame)
        {
            Bitmap image = frame.Image;

            if (image == null)
            {
                return((byte[])null);
            }
            byte[] numArray;
            if (image.PixelFormat == PixelFormat.Format8bppIndexed)
            {
                numArray = JpegCompression.ConvertToJpeg(image, 70);
            }
            else
            {
                using (Bitmap bmp = Grayscale.CommonAlgorithms.Y.Apply(image))
                    numArray = JpegCompression.ConvertToJpeg(bmp, 70);
            }
            return(numArray);
        }
Esempio n. 2
0
 public CommonContracts.VideoFrame GetLastFrameFromDevice(Guid devId, bool deleteFrame)
 {
     try
     {
         this._performanceLogger.Info((object)string.Format("Request DevId = {0}", (object)devId));
         if (!this.VideoSources.ContainsKey(devId))
         {
             return((CommonContracts.VideoFrame)null);
         }
         CS.VideoSources.Core.IVideoSource videoSource = this.VideoSources[devId];
         if (!videoSource.IsRunning)
         {
             return((CommonContracts.VideoFrame)null);
         }
         using (CS.VideoSources.Core.VideoFrame currentFrame = videoSource.GetCurrentFrame(deleteFrame))
         {
             if (currentFrame == null)
             {
                 return((CommonContracts.VideoFrame)null);
             }
             this._performanceLogger.Info((object)string.Format("Response DevId = {0} FrameId = {1}", (object)devId, (object)currentFrame.Index));
             byte[] frameBytes = VideoServer.GetFrameBytes(currentFrame);
             return(new CommonContracts.VideoFrame()
             {
                 Frame = frameBytes,
                 FrameIndex = currentFrame.Index,
                 Date = DateTimeOffset.Now
             });
         }
     }
     catch (Exception ex)
     {
         this._logger.Error((object)ex);
     }
     return((CommonContracts.VideoFrame)null);
 }