From 080acae08ec8cfe413c3e6e45bcf7f9222dfa02d Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期四, 24 十月 2019 16:50:28 +0800
Subject: [PATCH] update

---
 goconv.go |   55 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 39 insertions(+), 16 deletions(-)

diff --git a/goconv.go b/goconv.go
index 459b3dd..06dba30 100644
--- a/goconv.go
+++ b/goconv.go
@@ -35,21 +35,43 @@
 )
 
 // SrcFormat format
-const srcFormat = 23
+const SrcFormat = 23
+
+// DstFormat format
+const DstFormat = 3
 
 // 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.int(dstW), C.int(dstH), C.int(scaleFlag))
+	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 {
+		return nil
+	}
+
+	return &GoConv{
+		srcW,
+		srcH,
+		dstW,
+		dstH,
+		c,
+	}
+}
+
+// NewResizer resize
+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
@@ -67,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)
 	}
 }
 
@@ -80,21 +102,22 @@
 	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
 }
 
-/////////////// for conv
-
-// ConvGPU conv gpu resize
-func ConvGPU(in []byte, w, h, dstW, dstH int) []byte {
-
-	return nil
-
+// Resize resize
+func (c *GoConv) Resize(src []byte) []byte {
+	if c.SrcW == c.DstW && c.SrcH == c.DstH {
+		return src
+	}
+	return c.ConvToPicture(src)
 }
+
+/////////////// for conv

--
Gitblit v1.8.0