| | |
| | | } |
| | | } |
| | | |
| | | // NewWithDevID 2nd new |
| | | func NewWithDevID(GB, CPU bool, devID int) *GoFFMPEG { |
| | | |
| | | f := C.wrap_fn_create(unsafe.Pointer(libcffmpeg)) |
| | | |
| | | if f == nil { |
| | | return nil |
| | | } |
| | | if GB { |
| | | C.wrap_fn_run_gb28181(unsafe.Pointer(libcffmpeg), f) |
| | | } |
| | | if CPU { |
| | | C.wrap_fn_use_cpu(unsafe.Pointer(libcffmpeg), f) |
| | | } else if devID > -1 { |
| | | r := C.wrap_fn_set_devid(unsafe.Pointer(libcffmpeg), f, C.int(devID)) |
| | | if r != 0 { |
| | | if f != nil { |
| | | C.wrap_fn_destroy(unsafe.Pointer(libcffmpeg), f) |
| | | } |
| | | FreeFFmpeg() |
| | | return nil |
| | | } |
| | | } |
| | | |
| | | return &GoFFMPEG{ |
| | | ffmpeg: f, |
| | | } |
| | | } |
| | | |
| | | // NewWithLogAndDevID log |
| | | func NewWithLogAndDevID(GB, CPU bool, devID int, ffmpegLog string) *GoFFMPEG { |
| | | lf := C.CString(ffmpegLog) |
| | | defer C.free(unsafe.Pointer(lf)) |
| | | |
| | | f := C.wrap_fn_create2(unsafe.Pointer(libcffmpeg), lf) |
| | | if f == nil { |
| | | return nil |
| | | } |
| | | if GB { |
| | | C.wrap_fn_run_gb28181(unsafe.Pointer(libcffmpeg), f) |
| | | } |
| | | if CPU { |
| | | C.wrap_fn_use_cpu(unsafe.Pointer(libcffmpeg), f) |
| | | } else if devID > -1 { |
| | | r := C.wrap_fn_set_devid(unsafe.Pointer(libcffmpeg), f, C.int(devID)) |
| | | if r != 0 { |
| | | if f != nil { |
| | | C.wrap_fn_destroy(unsafe.Pointer(libcffmpeg), f) |
| | | } |
| | | FreeFFmpeg() |
| | | return nil |
| | | } |
| | | } |
| | | |
| | | return &GoFFMPEG{ |
| | | ffmpeg: f, |
| | | } |
| | | } |
| | | |
| | | // NewWithLog log |
| | | func NewWithLog(GB, CPU bool, ffmpegLog string) *GoFFMPEG { |
| | | lf := C.CString(ffmpegLog) |
| | |
| | | } |
| | | |
| | | // GetGBJpg Get GB28181 Jpg |
| | | func GetGBJpg(rtspUrl string) []byte { |
| | | rtsp := C.CString(rtspUrl) |
| | | func GetGBJpg(rtspURL string, maxTry int) []byte { |
| | | rtsp := C.CString(rtspURL) |
| | | defer C.free(unsafe.Pointer(rtsp)) |
| | | var jpgLen C.int |
| | | |
| | | pic := C.wrap_fn_get_gb28181_pic(unsafe.Pointer(libcffmpeg), rtsp, &jpgLen) |
| | | pic := C.wrap_fn_get_gb28181_pic(unsafe.Pointer(libcffmpeg), rtsp, &jpgLen, C.int(maxTry)) |
| | | defer C.free(unsafe.Pointer(pic)) |
| | | |
| | | retJpg := C.GoBytes(unsafe.Pointer(pic), jpgLen) |