mirror of
https://github.com/qrtc/ffmpeg-dev-go.git
synced 2025-09-28 20:52:15 +08:00
83 lines
3.1 KiB
Go
83 lines
3.1 KiB
Go
package ffmpeg
|
|
|
|
/*
|
|
#include <libavutil/common.h>
|
|
#include <libavutil/error.h>
|
|
*/
|
|
import "C"
|
|
|
|
// AVERROR returns a negative error code from a POSIX error code, to return from library functions.
|
|
func AVERROR[T HelperInteger](ie T) (oe int32) {
|
|
oe = (int32)(ie)
|
|
if C.EDOM > 0 {
|
|
return (-oe)
|
|
}
|
|
return oe
|
|
}
|
|
|
|
// AVUNERROR returns a POSIX error code from a library function error return value.
|
|
func AVUNERROR(e int32) int32 {
|
|
if C.EDOM > 0 {
|
|
return (-e)
|
|
}
|
|
return e
|
|
}
|
|
|
|
// Error handling
|
|
const (
|
|
AVERROR_BSF_NOT_FOUND = int32(C.AVERROR_BSF_NOT_FOUND)
|
|
AVERROR_BUG = int32(C.AVERROR_BUG)
|
|
AVERROR_BUFFER_TOO_SMALL = int32(C.AVERROR_BUFFER_TOO_SMALL)
|
|
AVERROR_DECODER_NOT_FOUND = int32(C.AVERROR_DECODER_NOT_FOUND)
|
|
AVERROR_DEMUXER_NOT_FOUND = int32(C.AVERROR_DEMUXER_NOT_FOUND)
|
|
AVERROR_ENCODER_NOT_FOUND = int32(C.AVERROR_ENCODER_NOT_FOUND)
|
|
AVERROR_EOF = int32(C.AVERROR_EOF)
|
|
AVERROR_EXIT = int32(C.AVERROR_EXIT)
|
|
AVERROR_EXTERNAL = int32(C.AVERROR_EXTERNAL)
|
|
AVERROR_FILTER_NOT_FOUND = int32(C.AVERROR_FILTER_NOT_FOUND)
|
|
AVERROR_INVALIDDATA = int32(C.AVERROR_INVALIDDATA)
|
|
AVERROR_MUXER_NOT_FOUND = int32(C.AVERROR_MUXER_NOT_FOUND)
|
|
AVERROR_OPTION_NOT_FOUND = int32(C.AVERROR_OPTION_NOT_FOUND)
|
|
AVERROR_PATCHWELCOME = int32(C.AVERROR_PATCHWELCOME)
|
|
AVERROR_PROTOCOL_NOT_FOUND = int32(C.AVERROR_PROTOCOL_NOT_FOUND)
|
|
|
|
AVERROR_STREAM_NOT_FOUND = int32(C.AVERROR_STREAM_NOT_FOUND)
|
|
|
|
AVERROR_BUG2 = int32(C.AVERROR_BUG2)
|
|
AVERROR_UNKNOWN = int32(C.AVERROR_UNKNOWN)
|
|
AVERROR_EXPERIMENTAL = int32(C.AVERROR_EXPERIMENTAL)
|
|
AVERROR_INPUT_CHANGED = int32(C.AVERROR_INPUT_CHANGED)
|
|
AVERROR_OUTPUT_CHANGED = int32(C.AVERROR_OUTPUT_CHANGED)
|
|
AVERROR_HTTP_BAD_REQUEST = int32(C.AVERROR_HTTP_BAD_REQUEST)
|
|
AVERROR_HTTP_UNAUTHORIZED = int32(C.AVERROR_HTTP_UNAUTHORIZED)
|
|
AVERROR_HTTP_FORBIDDEN = int32(C.AVERROR_HTTP_FORBIDDEN)
|
|
AVERROR_HTTP_NOT_FOUND = int32(C.AVERROR_HTTP_NOT_FOUND)
|
|
AVERROR_HTTP_OTHER_4XX = int32(C.AVERROR_HTTP_OTHER_4XX)
|
|
AVERROR_HTTP_SERVER_ERROR = int32(C.AVERROR_HTTP_SERVER_ERROR)
|
|
)
|
|
|
|
const (
|
|
AV_ERROR_MAX_STRING_SIZE = int32(C.AV_ERROR_MAX_STRING_SIZE)
|
|
)
|
|
|
|
// AvStrerror puts a description of the AVERROR code errnum in errbuf.
|
|
// In case of failure the global variable errno is set to indicate the
|
|
// error. Even in case of failure AvStrerror() will print a generic
|
|
// error message indicating the errnum provided to errbuf.
|
|
func AvStrerror(errnum int32, errbuf *int8, errbufSize uint) int32 {
|
|
return (int32)(C.av_strerror((C.int)(errnum), (*C.char)(errbuf), (C.size_t)(errbufSize)))
|
|
}
|
|
|
|
// AvMakeErrorString fills the provided buffer with a string containing an error string
|
|
// corresponding to the AVERROR code errnum.
|
|
func AvMakeErrorString(errbuf *int8, errbufSize uint, errnum int32) *int8 {
|
|
return (*int8)(C.av_make_error_string((*C.char)(errbuf), (C.size_t)(errbufSize), (C.int)(errnum)))
|
|
}
|
|
|
|
// AvErr2str
|
|
func AvErr2str(errnum int32) string {
|
|
buf := make([]int8, AV_ERROR_MAX_STRING_SIZE)
|
|
return C.GoString(C.av_make_error_string((*C.char)(&buf[0]),
|
|
(C.size_t)(AV_ERROR_MAX_STRING_SIZE), (C.int)(errnum)))
|
|
}
|