今天在学习FFmpeg中错误码相关的内容时,发现FFmpeg的错误码使用的是FOURCC,比以往定义成简单的负整数有意思的多,特记录下来,以免忘记。
首先错误码都定义在libavutil/error.h和error.c中
以av_strerror开始分析:
int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
{
int ret = 0, i;
const struct error_entry *entry = NULL;
for (i = 0; i < FF_ARRAY_ELEMS(error_entries); i++) {
if (errnum == error_entries[i].num) {
entry = &error_entries[i];
break;
}
}
if (entry) {
av_strlcpy(errbuf, entry->str, errbuf_size);
} else {
#if HAVE_STRERROR_R
ret = AVERROR(strerror_r(AVUNERROR(errnum), errbuf, errbuf_size));
#else