From c5a01eed95f1837e93fee27bce4da78c79f4ed10 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期二, 12 十一月 2019 17:41:43 +0800 Subject: [PATCH] update --- goconv.go | 27 ++++++++++++--------------- 1 files changed, 12 insertions(+), 15 deletions(-) diff --git a/goconv.go b/goconv.go index b81ec36..eb4aac0 100644 --- a/goconv.go +++ b/goconv.go @@ -47,12 +47,13 @@ DstW int DstH int + size 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 { @@ -64,24 +65,30 @@ srcH, dstW, dstH, + dstW * dstH * 3, c, } } // NewResizer resize func NewResizer(srcW, srcH, format, dstW, dstH, scaleFlag int) *GoConv { - c := C.wrap_fn_create_conv(C.int(srcW), C.int(srcH), C.int(format), + 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 } + size := dstW * dstH * 3 + if format == SrcFormat { + size /= 2 + } return &GoConv{ srcW, srcH, dstW, dstH, + size, c, } } @@ -89,7 +96,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) } } @@ -99,14 +106,11 @@ return nil } - 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)(unsafe.Pointer(&src[0]))) 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.size)) } return nil @@ -121,10 +125,3 @@ } /////////////// for conv - -// ConvGPU conv gpu resize -func ConvGPU(in []byte, w, h, dstW, dstH int) []byte { - - return nil - -} -- Gitblit v1.8.0