package goffmpeg /* #include #include "libcffmpeg.h" */ import "C" import "unsafe" // FireRecorder fire recorder func (h *GoFFMPEG) FireRecorder(id int64) { C.wrap_fn_fire_recorder(h.ffmpeg, C.long(id)) } // BuildRecorder build recorder func (h *GoFFMPEG) BuildRecorder(output string, mind, maxd int) { out := C.CString(output) defer C.free(unsafe.Pointer(out)) C.wrap_fn_recorder(h.ffmpeg, out, C.int(mind), C.int(maxd)) } // GetInfoRecorder info func (h *GoFFMPEG) GetInfoRecorder() (int, string) { var i C.int = -1 var l C.int p := C.wrap_fn_info_recorder(h.ffmpeg, &i, &l) if i == -1 { return -1, "" } defer C.free(unsafe.Pointer(p)) return int(i), C.GoString(p) } // BuildDecoder build decoder func (h *GoFFMPEG) BuildDecoder() { C.wrap_fn_decoder(h.ffmpeg) } // GetPicDecoder get pic from decoder func (h *GoFFMPEG) GetPicDecoder() ([]byte, int, int) { var width C.int var height C.int p := C.wrap_fn_decoder_pic(h.ffmpeg, &width, &height) if width == 0 && height == 0 { return nil, 0, 0 } defer C.free(unsafe.Pointer(p)) d := C.GoBytes(p, width*height*3) wid := int(width) hei := int(height) return d, wid, hei }