package ffmpeg import "errors" var ( ErrInvalidInput = errors.New("invalid input") ErrInvalidOutput = errors.New("invalid output") ErrCodecNotFound = errors.New("codec not found") ErrFormatNotSupported = errors.New("format not supported") ErrDecodeFailed = errors.New("decode failed") ErrEncodeFailed = errors.New("encode failed") ErrFilterFailed = errors.New("filter failed") ErrIOFailed = errors.New("I/O operation failed") ErrNoStream = errors.New("no stream found") ErrInvalidCodec = errors.New("invalid codec") ) // FFmpegError wraps FFmpeg errors with additional context type FFmpegError struct { Code int Message string Op string } func (e *FFmpegError) Error() string { return e.Op + ": " + e.Message + " (code: " + itoa(e.Code) + ")" } func itoa(n int) string { if n < 0 { return "-" + uitoa(uint(-n)) } return uitoa(uint(n)) } func uitoa(n uint) string { if n == 0 { return "0" } var buf [20]byte i := len(buf) for n > 0 { i-- buf[i] = byte('0' + n%10) n /= 10 } return string(buf[i:]) }