feat: imagorvideo init
This commit is contained in:
commit
2451fa1b5a
20 changed files with 2601 additions and 0 deletions
39
ffmpeg/errors.go
Normal file
39
ffmpeg/errors.go
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
package ffmpeg
|
||||
|
||||
// #include "ffmpeg.h"
|
||||
import "C"
|
||||
import (
|
||||
"strconv"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type avError int
|
||||
|
||||
const (
|
||||
ErrNoMem = avError(-C.ENOMEM)
|
||||
ErrEOF = avError(C.AVERROR_EOF)
|
||||
ErrUnknown = avError(C.AVERROR_UNKNOWN)
|
||||
ErrDecoderNotFound = avError(C.AVERROR_DECODER_NOT_FOUND)
|
||||
ErrInvalidData = avError(C.AVERROR_INVALIDDATA)
|
||||
ErrTooBig = avError(C.ERR_TOO_BIG)
|
||||
)
|
||||
|
||||
func (e avError) errorString() string {
|
||||
if e == ErrNoMem {
|
||||
return "cannot allocate memory"
|
||||
}
|
||||
if e == ErrTooBig {
|
||||
return "video or cover art size exceeds maximum allowed dimensions"
|
||||
}
|
||||
errString := (*C.char)(C.av_malloc(C.AV_ERROR_MAX_STRING_SIZE))
|
||||
if errString == nil {
|
||||
return "cannot allocate memory for error string, error code: " + strconv.Itoa(int(e))
|
||||
}
|
||||
defer C.av_free(unsafe.Pointer(errString))
|
||||
C.av_make_error_string(errString, C.AV_ERROR_MAX_STRING_SIZE, C.int(e))
|
||||
return C.GoString(errString)
|
||||
}
|
||||
|
||||
func (e avError) Error() string {
|
||||
return "ffmpeg: " + e.errorString()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue