20 #define _XOPEN_SOURCE 600
31 #define ERROR_TAG(tag) AVERROR_##tag, #tag
32 #define EERROR_TAG(tag) AVERROR(tag), #tag
33 #define AVERROR_INPUT_AND_OUTPUT_CHANGED (AVERROR_INPUT_CHANGED | AVERROR_OUTPUT_CHANGED)
35 {
ERROR_TAG(BSF_NOT_FOUND),
"Bitstream filter not found" },
36 {
ERROR_TAG(BUG),
"Internal bug, should not have happened" },
37 {
ERROR_TAG(BUG2),
"Internal bug, should not have happened" },
38 {
ERROR_TAG(BUFFER_TOO_SMALL),
"Buffer too small" },
39 {
ERROR_TAG(DECODER_NOT_FOUND),
"Decoder not found" },
40 {
ERROR_TAG(DEMUXER_NOT_FOUND),
"Demuxer not found" },
41 {
ERROR_TAG(ENCODER_NOT_FOUND),
"Encoder not found" },
43 {
ERROR_TAG(EXIT),
"Immediate exit requested" },
44 {
ERROR_TAG(EXTERNAL),
"Generic error in an external library" },
45 {
ERROR_TAG(FILTER_NOT_FOUND),
"Filter not found" },
46 {
ERROR_TAG(INPUT_CHANGED),
"Input changed" },
47 {
ERROR_TAG(INVALIDDATA),
"Invalid data found when processing input" },
48 {
ERROR_TAG(MUXER_NOT_FOUND),
"Muxer not found" },
49 {
ERROR_TAG(OPTION_NOT_FOUND),
"Option not found" },
50 {
ERROR_TAG(OUTPUT_CHANGED),
"Output changed" },
51 {
ERROR_TAG(PATCHWELCOME),
"Not yet implemented in FFmpeg, patches welcome" },
52 {
ERROR_TAG(PROTOCOL_NOT_FOUND),
"Protocol not found" },
53 {
ERROR_TAG(STREAM_NOT_FOUND),
"Stream not found" },
55 {
ERROR_TAG(EXPERIMENTAL),
"Experimental feature" },
56 {
ERROR_TAG(INPUT_AND_OUTPUT_CHANGED),
"Input and output changed" },
57 {
ERROR_TAG(HTTP_BAD_REQUEST),
"Server returned 400 Bad Request" },
58 {
ERROR_TAG(HTTP_UNAUTHORIZED),
"Server returned 401 Unauthorized (authorization failed)" },
59 {
ERROR_TAG(HTTP_FORBIDDEN),
"Server returned 403 Forbidden (access denied)" },
60 {
ERROR_TAG(HTTP_NOT_FOUND),
"Server returned 404 Not Found" },
61 {
ERROR_TAG(HTTP_OTHER_4XX),
"Server returned 4XX Client Error, but not one of 40{0,1,3,4}" },
62 {
ERROR_TAG(HTTP_SERVER_ERROR),
"Server returned 5XX Server Error reply" },
64 {
EERROR_TAG(E2BIG),
"Argument list too long" },
66 {
EERROR_TAG(EAGAIN),
"Resource temporarily unavailable" },
68 {
EERROR_TAG(EBUSY),
"Device or resource busy" },
70 {
EERROR_TAG(EDEADLK),
"Resource deadlock avoided" },
71 {
EERROR_TAG(EDOM),
"Numerical argument out of domain" },
75 {
EERROR_TAG(EILSEQ),
"Illegal byte sequence" },
76 {
EERROR_TAG(EINTR),
"Interrupted system call" },
82 {
EERROR_TAG(ENAMETOOLONG),
"File name too long" },
83 {
EERROR_TAG(ENFILE),
"Too many open files in system" },
85 {
EERROR_TAG(ENOENT),
"No such file or directory" },
88 {
EERROR_TAG(ENOMEM),
"Cannot allocate memory" },
89 {
EERROR_TAG(ENOSPC),
"No space left on device" },
90 {
EERROR_TAG(ENOSYS),
"Function not implemented" },
92 {
EERROR_TAG(ENOTEMPTY),
"Directory not empty" },
93 {
EERROR_TAG(ENOTTY),
"Inappropriate I/O control operation" },
94 {
EERROR_TAG(ENXIO),
"No such device or address" },
95 {
EERROR_TAG(EPERM),
"Operation not permitted" },
98 {
EERROR_TAG(EROFS),
"Read-only file system" },
111 if (errnum == error_entries[i].
num) {
112 entry = &error_entries[i];
125 snprintf(errbuf, errbuf_size,
"Error number %d occurred", errnum);
Convenience header that includes libavutil's core.
size_t av_strlcpy(char *dst, const char *src, size_t size)
Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.
#define FF_ARRAY_ELEMS(a)
static const struct error_entry error_entries[]
int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
Put a description of the AVERROR code errnum in errbuf.
common internal and external API header