| | |
| | | } |
| | | |
| | | // DecodeJPEG decode jpeg file |
| | | func (h *GoFFMPEG) DecodeJPEG(input string) ([]byte, int, int) { |
| | | func DecodeJPEG(input string) ([]byte, int, int) { |
| | | in := C.CString(input) |
| | | defer C.free(unsafe.Pointer(in)) |
| | | |
| | | var width C.int |
| | | var height C.int |
| | | p := C.wrap_fn_decode_jpeg(h.ffmpeg, in, &width, &height) |
| | | p := C.wrap_fn_decode_jpeg(in, &width, &height) |
| | | defer C.free(p) |
| | | |
| | | if width > 0 && height > 0 { |
| | |
| | | } |
| | | |
| | | // GetInfoRecorder info |
| | | func (h *GoFFMPEG) GetInfoRecorder() (int, string) { |
| | | func (h *GoFFMPEG) GetInfoRecorder() (string, int, string) { |
| | | var i C.int = -1 |
| | | var l C.int |
| | | |
| | | p := C.wrap_fn_info_recorder(h.ffmpeg, &i, &l) |
| | | var id *C.char |
| | | var idl C.int |
| | | |
| | | var p *C.char |
| | | var pl C.int |
| | | |
| | | C.wrap_fn_info_recorder(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 int(i), path |
| | | } |
| | | |
| | | // GetRecID get rec id |
| | | func (h *GoFFMPEG) GetRecID(p string) string { |
| | | pt := C.CString(p) |
| | | defer C.free(unsafe.Pointer(pt)) |
| | | var i C.int |
| | | |
| | | cid := C.wrap_fn_rec_id(h.ffmpeg, pt, &i) |
| | | |
| | | id := C.GoString(cid) |
| | | C.free(unsafe.Pointer(cid)) |
| | | |
| | | return id |
| | | return gID, int(i), path |
| | | } |
| | | |
| | | // BuildDecoder build decoder |