1/* 2 * This file is part of FFmpeg. 3 * 4 * FFmpeg is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * FFmpeg is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with FFmpeg; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 19/** 20 * @file 21 * error code definitions 22 */ 23 24#ifndef AVUTIL_ERROR_H 25#define AVUTIL_ERROR_H 26 27#include <errno.h> 28#include "avutil.h" 29 30/* error handling */ 31#if EDOM > 0 32#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions. 33#define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value. 34#else 35/* Some platforms have E* and errno already negated. */ 36#define AVERROR(e) (e) 37#define AVUNERROR(e) (e) 38#endif 39 40#if LIBAVUTIL_VERSION_MAJOR < 51 41#define AVERROR_INVALIDDATA AVERROR(EINVAL) ///< Invalid data found when processing input 42#define AVERROR_IO AVERROR(EIO) ///< I/O error 43#define AVERROR_NOENT AVERROR(ENOENT) ///< No such file or directory 44#define AVERROR_NOFMT AVERROR(EILSEQ) ///< Unknown format 45#define AVERROR_NOMEM AVERROR(ENOMEM) ///< Not enough memory 46#define AVERROR_NOTSUPP AVERROR(ENOSYS) ///< Operation not supported 47#define AVERROR_NUMEXPECTED AVERROR(EDOM) ///< Number syntax expected in filename 48#define AVERROR_UNKNOWN AVERROR(EINVAL) ///< Unknown error 49#endif 50 51#define AVERROR_EOF AVERROR(EPIPE) ///< End of file 52 53#define AVERROR_PATCHWELCOME (-MKTAG('P','A','W','E')) ///< Not yet implemented in FFmpeg, patches welcome 54 55#if LIBAVUTIL_VERSION_MAJOR > 50 56#define AVERROR_INVALIDDATA (-MKTAG('I','N','D','A')) ///< Invalid data found when processing input 57#define AVERROR_NUMEXPECTED (-MKTAG('N','U','E','X')) ///< Number syntax expected in filename 58#endif 59 60/** 61 * Puts a description of the AVERROR code errnum in errbuf. 62 * In case of failure the global variable errno is set to indicate the 63 * error. Even in case of failure av_strerror() will print a generic 64 * error message indicating the errnum provided to errbuf. 65 * 66 * @param errbuf_size the size in bytes of errbuf 67 * @return 0 on success, a negative value if a description for errnum 68 * cannot be found 69 */ 70int av_strerror(int errnum, char *errbuf, size_t errbuf_size); 71 72#endif /* AVUTIL_ERROR_H */ 73