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