From 319a8fdf2f79033e5a653d112305066bccdc2d59 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 04 十一月 2019 11:07:16 +0800
Subject: [PATCH] bug fix

---
 goconv.go |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/goconv.go b/goconv.go
index 06dba30..eb4aac0 100644
--- a/goconv.go
+++ b/goconv.go
@@ -47,6 +47,7 @@
 	DstW int
 	DstH int
 
+	size int
 	conv C.cconv
 }
 
@@ -64,6 +65,7 @@
 		srcH,
 		dstW,
 		dstH,
+		dstW * dstH * 3,
 		c,
 	}
 }
@@ -77,11 +79,16 @@
 		return nil
 	}
 
+	size := dstW * dstH * 3
+	if format == SrcFormat {
+		size /= 2
+	}
 	return &GoConv{
 		srcW,
 		srcH,
 		dstW,
 		dstH,
+		size,
 		c,
 	}
 }
@@ -99,14 +106,11 @@
 		return nil
 	}
 
-	cin := C.CBytes(src)
-	defer C.free(cin)
-
-	bgr := C.wrap_fn_conv(unsafe.Pointer(libcffmpeg), 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

--
Gitblit v1.8.0