video analysis2.0拆分,ffmpeg封装go接口库
chenshijun
2019-10-29 4587f8d5507300782e329f9527f35f905f3bb697
goffmpeg.go
@@ -42,16 +42,16 @@
// New 2nd new
func New(GB, CPU bool) *GoFFMPEG {
   f := C.wrap_fn_create()
   f := C.wrap_fn_create(unsafe.Pointer(libcffmpeg))
   if f == nil {
      return nil
   }
   if GB {
      C.wrap_fn_run_gb28181(f)
      C.wrap_fn_run_gb28181(unsafe.Pointer(libcffmpeg), f)
   }
   if CPU {
      C.wrap_fn_use_cpu(f)
      C.wrap_fn_use_cpu(unsafe.Pointer(libcffmpeg), f)
   }
   return &GoFFMPEG{
@@ -64,15 +64,15 @@
   lf := C.CString(ffmpegLog)
   defer C.free(unsafe.Pointer(lf))
   f := C.wrap_fn_create2(lf)
   f := C.wrap_fn_create2(unsafe.Pointer(libcffmpeg), lf)
   if f == nil {
      return nil
   }
   if GB {
      C.wrap_fn_run_gb28181(f)
      C.wrap_fn_run_gb28181(unsafe.Pointer(libcffmpeg), f)
   }
   if CPU {
      C.wrap_fn_use_cpu(f)
      C.wrap_fn_use_cpu(unsafe.Pointer(libcffmpeg), f)
   }
   return &GoFFMPEG{
@@ -83,7 +83,7 @@
// Free free handle
func (h *GoFFMPEG) Free() {
   if h.ffmpeg != nil {
      C.wrap_fn_destroy(h.ffmpeg)
      C.wrap_fn_destroy(unsafe.Pointer(libcffmpeg), h.ffmpeg)
   }
}
@@ -92,5 +92,10 @@
   in := C.CString(input)
   defer C.free(unsafe.Pointer(in))
   C.wrap_fn_run(h.ffmpeg, in)
   C.wrap_fn_run(unsafe.Pointer(libcffmpeg), h.ffmpeg, in)
}
// FPS fps
func (h *GoFFMPEG) FPS() int {
   return int(C.wrap_fn_fps(unsafe.Pointer(libcffmpeg), h.ffmpeg))
}