public bool StopVideoEncoder()
        {
            if (!IsStartEncoder)
            {
                return(true);
            }

            CurrentUseVideoDevice.PushingData -= CurrentUseVideoDevice_PushingData;
            IsStartEncoder = !(VsNetVideoEncoderSdk.VideoEncoderEx_StopEnc(_handle) == 0);

            return(!IsStartEncoder);
        }
 protected virtual void Dispose(bool disposing)
 {
     if (!disposedValue)
     {
         if (disposing)
         {
             StopVideoEncoder();
         }
         VsNetVideoEncoderSdk.VideoEncoderEx_FreeInstance(_handle);
         disposedValue = true;
     }
 }
 public H264VideoEncoder()
 {
     _handle           = VsNetVideoEncoderSdk.VideoEncoderEx_AllocInstance();
     _bitmapInfoHeader = new BitmapInfoHeader();
 }
 private int StartVideoEncoder(int inputData, int inputSize, int inputTimeStamp, ref int outputData, ref int outputDataSize, ref int outputTimeStamp, ref bool frameKey)
 {
     return(VsNetVideoEncoderSdk.VideoEncoderEx_EncData(_handle, inputData, inputSize, inputTimeStamp, ref outputData, ref outputDataSize, ref outputTimeStamp, ref frameKey));
 }
 private bool SetEncoderInfo(IntPtr bitmapInfoHeader, int rate, int outputWidth, int outputHeight, BitmapInfoHeader outputBitmapInfoHeader, ref int headerSize)
 {
     return(VsNetVideoEncoderSdk.VideoEncoderEx_StartEnc(_handle, bitmapInfoHeader, rate, outputWidth, outputHeight, outputBitmapInfoHeader, ref headerSize) == 0);
 }