video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-10-24 080acae08ec8cfe413c3e6e45bcf7f9222dfa02d
goconv.go
@@ -42,17 +42,17 @@
// GoConv conv
type GoConv struct {
   srcW int
   srcH int
   dstW int
   dstH int
   SrcW int
   SrcH int
   DstW int
   DstH int
   conv C.cconv
}
// NewConv new conv
func NewConv(srcW, srcH, dstW, dstH, scaleFlag int) *GoConv {
   c := C.wrap_fn_create_conv(C.int(srcW), C.int(srcH), C.int(SrcFormat),
   c := C.wrap_fn_create_conv(unsafe.Pointer(libcffmpeg), C.int(srcW), C.int(srcH), C.int(SrcFormat),
      C.int(dstW), C.int(dstH), C.int(DstFormat), C.int(scaleFlag))
   if c == nil {
@@ -69,8 +69,9 @@
}
// NewResizer resize
func NewResizer(srcW, srcH, format, dstW, dstH int) *GoConv {
   c := C.wrap_fn_create_conv(C.int(srcW), C.int(srcH), C.int(format), C.int(dstW), C.int(dstH), C.int(format), ScaleNone)
func NewResizer(srcW, srcH, format, dstW, dstH, scaleFlag int) *GoConv {
   c := C.wrap_fn_create_conv(unsafe.Pointer(libcffmpeg), C.int(srcW), C.int(srcH), C.int(format),
      C.int(dstW), C.int(dstH), C.int(format), C.int(scaleFlag))
   if c == nil {
      return nil
@@ -88,7 +89,7 @@
// Free free
func (c *GoConv) Free() {
   if c.conv != nil {
      C.wrap_fn_destroy_conv(c.conv)
      C.wrap_fn_destroy_conv(unsafe.Pointer(libcffmpeg), c.conv)
   }
}
@@ -101,11 +102,11 @@
   cin := C.CBytes(src)
   defer C.free(cin)
   bgr := C.wrap_fn_conv(c.conv, (*C.uchar)(cin))
   bgr := C.wrap_fn_conv(unsafe.Pointer(libcffmpeg), c.conv, (*C.uchar)(cin))
   defer C.free(unsafe.Pointer(bgr))
   if bgr != nil {
      return C.GoBytes(bgr, C.int(c.dstW*c.dstH*3))
      return C.GoBytes(bgr, C.int(c.DstW*c.DstH*3))
   }
   return nil
@@ -113,17 +114,10 @@
// Resize resize
func (c *GoConv) Resize(src []byte) []byte {
   if c.srcW == c.dstW && c.srcH == c.dstH {
   if c.SrcW == c.DstW && c.SrcH == c.DstH {
      return src
   }
   return c.ConvToPicture(src)
}
/////////////// for conv
// ConvGPU conv gpu resize
func ConvGPU(in []byte, w, h, dstW, dstH int) []byte {
   return nil
}