package goffmpeg /* #include #include "libcffmpeg.h" */ import "C" import "unsafe" // OpenRecorder rec func open func (h *GoFFMPEG) OpenRecorder() { C.wrap_fn_open_rec(unsafe.Pointer(libcffmpeg), h.ffmpeg) } // FireRecorder fire recorder func (h *GoFFMPEG) FireRecorder(sid string, id int64) int { csid := C.CString(sid) defer C.free(unsafe.Pointer(csid)) ret := C.wrap_fn_fire_recorder(unsafe.Pointer(libcffmpeg), h.ffmpeg, csid, C.long(id)) return int(ret) } // BuildRecorder build recorder func (h *GoFFMPEG) BuildRecorder(sid, output string, id int64, mind, maxd int, audio bool) { out := C.CString(output) defer C.free(unsafe.Pointer(out)) csid := C.CString(sid) defer C.free(unsafe.Pointer(csid)) a := 0 if audio { a = 1 } C.wrap_fn_recorder(unsafe.Pointer(libcffmpeg), h.ffmpeg, csid, out, C.long(id), C.int(mind), C.int(maxd), C.int(a)) } // GetInfoRecorder info func (h *GoFFMPEG) GetInfoRecorder() (string, int, string) { var i C.int = -1 var id *C.char var idl C.int var p *C.char var pl C.int C.wrap_fn_info_recorder(unsafe.Pointer(libcffmpeg), h.ffmpeg, &i, &id, &idl, &p, &pl) // if p == nil { // return -1, "" // } gID := C.GoString(id) C.free(unsafe.Pointer(id)) path := C.GoString(p) C.free(unsafe.Pointer(p)) // fmt.Println("Go get info : ", path, " len: ", l) return gID, int(i), path }