From 87fea24e8bba1bfbee707cdaa6f7979451531acc Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期六, 19 十月 2019 10:23:01 +0800 Subject: [PATCH] add interface rec duration --- goconv.go | 44 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 37 insertions(+), 7 deletions(-) diff --git a/goconv.go b/goconv.go index 459b3dd..b81ec36 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(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(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 @@ -84,12 +106,20 @@ 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 } +// 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 // ConvGPU conv gpu resize -- Gitblit v1.8.0