From f29f269d999fc4bb8a9bfa85629f08b89971a2ef Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期二, 03 十二月 2019 16:00:49 +0800
Subject: [PATCH] Merge branch 'master' of ssh://192.168.5.5:29418/valib/goffmpeg

---
 goenc.go |   39 +++++++++++++++++++++++++++++++++++----
 1 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/goenc.go b/goenc.go
index d7a6b43..69aa3e4 100644
--- a/goenc.go
+++ b/goenc.go
@@ -21,7 +21,18 @@
 	}
 
 	return &GoEncoder{
-		enc: C.wrap_fn_create_encoder(unsafe.Pointer(libcffmpeg), C.int(w), C.int(h), C.int(fps), C.int(br), C.int(sFlag), C.int(gi)),
+		enc: C.wrap_fn_create_encoder(unsafe.Pointer(libcffmpeg), C.int(w), C.int(h), C.int(fps), C.int(br), C.int(DstFormat), C.int(sFlag), C.int(gi)),
+	}
+}
+
+// NewEncoderWithPixFmt origin pix_fmt
+func NewEncoderWithPixFmt(w, h, fps, br, pixFmt, sFlag, gi int) *GoEncoder {
+	if w <= 0 || h <= 0 {
+		return nil
+	}
+
+	return &GoEncoder{
+		enc: C.wrap_fn_create_encoder(unsafe.Pointer(libcffmpeg), C.int(w), C.int(h), C.int(fps), C.int(br), C.int(pixFmt), C.int(sFlag), C.int(gi)),
 	}
 }
 
@@ -37,10 +48,8 @@
 
 	var size C.int
 	var key C.int
-	cin := C.CBytes(in)
-	defer C.free(cin)
 
-	p := C.wrap_fn_encode(unsafe.Pointer(libcffmpeg), e.enc, cin, C.int(w), C.int(h), &size, &key)
+	p := C.wrap_fn_encode(unsafe.Pointer(libcffmpeg), e.enc, unsafe.Pointer(&in[0]), C.int(w), C.int(h), &size, &key)
 	defer C.free(p)
 	if p != nil && size > 0 {
 		b := C.GoBytes(p, size)
@@ -53,3 +62,25 @@
 	}
 	return nil, 0, false
 }
+
+// Encode2 pic
+func (e *GoEncoder) Encode2(in []byte, w, h int) (unsafe.Pointer, []byte, int, bool) {
+
+	var size C.int
+	var key C.int
+
+	p := C.wrap_fn_encode(unsafe.Pointer(libcffmpeg), e.enc, unsafe.Pointer(&in[0]), C.int(w), C.int(h), &size, &key)
+	if p != nil && size > 0 {
+
+		isKey := false
+		if key > 0 {
+			isKey = true
+		}
+		const maxLen = 0x7fffffff
+		length := int(size)
+		data := (*[maxLen]byte)(unsafe.Pointer(p))[:length:length]
+
+		return p, data, length, isKey
+	}
+	return nil, nil, 0, false
+}

--
Gitblit v1.8.0