video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2020-09-01 e62936fa4a4b626a359bce8981ebbbaddcd4aada
goffmpeg.go
@@ -92,6 +92,65 @@
   }
}
// NewWithDevID 2nd new
func NewWithDevID(GB, CPU bool, devID int) *GoFFMPEG {
   f := C.wrap_fn_create(unsafe.Pointer(libcffmpeg))
   if f == nil {
      return nil
   }
   if GB {
      C.wrap_fn_run_gb28181(unsafe.Pointer(libcffmpeg), f)
   }
   if CPU {
      C.wrap_fn_use_cpu(unsafe.Pointer(libcffmpeg), f)
   } else if devID > -1 {
      r := C.wrap_fn_set_devid(unsafe.Pointer(libcffmpeg), f, C.int(devID))
      if r != 0 {
         if f != nil {
            C.wrap_fn_destroy(unsafe.Pointer(libcffmpeg), f)
         }
         FreeFFmpeg()
      }
      return nil
   }
   return &GoFFMPEG{
      ffmpeg: f,
   }
}
// NewWithLogAndDevID log
func NewWithLogAndDevID(GB, CPU bool, devID int, ffmpegLog string) *GoFFMPEG {
   lf := C.CString(ffmpegLog)
   defer C.free(unsafe.Pointer(lf))
   f := C.wrap_fn_create2(unsafe.Pointer(libcffmpeg), lf)
   if f == nil {
      return nil
   }
   if GB {
      C.wrap_fn_run_gb28181(unsafe.Pointer(libcffmpeg), f)
   }
   if CPU {
      C.wrap_fn_use_cpu(unsafe.Pointer(libcffmpeg), f)
   } else if devID > -1 {
      r := C.wrap_fn_set_devid(unsafe.Pointer(libcffmpeg), f, C.int(devID))
      if r != 0 {
         if f != nil {
            C.wrap_fn_destroy(unsafe.Pointer(libcffmpeg), f)
         }
         FreeFFmpeg()
      }
      return nil
   }
   return &GoFFMPEG{
      ffmpeg: f,
   }
}
// NewWithLog log
func NewWithLog(GB, CPU bool, ffmpegLog string) *GoFFMPEG {
   lf := C.CString(ffmpegLog)
@@ -150,7 +209,7 @@
}
// GetGBJpg Get GB28181 Jpg
func GetGBJpg(rtspUrl string) []byte {
func GetGBJpg(rtspURL string) []byte {
   rtsp := C.CString(rtspUrl)
   defer C.free(unsafe.Pointer(rtsp))
   var jpgLen C.int