[PATCH] Move error code definitions from libavcodec/avcodec.h to libavutil/error.h, and mark the old definitions to be dropped at the next major bump.

Stefano Sabatini stefano.sabatini-lala
Sun Mar 7 15:15:00 CET 2010


Error code definitions and handling code belong to libavutil, where
they can be shared by all the libav* libraries.
---
 libavcodec/avcodec.h |    5 ++---
 libavutil/Makefile   |    1 +
 libavutil/avutil.h   |    3 ++-
 libavutil/error.h    |   42 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 47 insertions(+), 4 deletions(-)
 create mode 100644 libavutil/error.h

diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 3d162d7..465669b 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -3810,13 +3810,12 @@ int av_parse_video_frame_size(int *width_ptr, int *height_ptr, const char *str);
  */
 int av_parse_video_frame_rate(AVRational *frame_rate, const char *str);
 
+#if LIBAVCODEC_VERSION_MAJOR < 53
 /* error handling */
 #if EINVAL > 0
-#define AVERROR(e) (-(e)) /**< Returns a negative error code from a POSIX error code, to return from library functions. */
 #define AVUNERROR(e) (-(e)) /**< Returns a POSIX error code from a library function error return value. */
 #else
 /* Some platforms have E* and errno already negated. */
-#define AVERROR(e) (e)
 #define AVUNERROR(e) (e)
 #endif
 #define AVERROR_UNKNOWN     AVERROR(EINVAL)  /**< unknown error */
@@ -3828,7 +3827,7 @@ int av_parse_video_frame_rate(AVRational *frame_rate, const char *str);
 #define AVERROR_NOTSUPP     AVERROR(ENOSYS)  /**< Operation not supported. */
 #define AVERROR_NOENT       AVERROR(ENOENT)  /**< No such file or directory. */
 #define AVERROR_EOF         AVERROR(EPIPE)   /**< End of file. */
-#define AVERROR_PATCHWELCOME    -MKTAG('P','A','W','E') /**< Not yet implemented in FFmpeg. Patches welcome. */
+#endif
 
 /**
  * Logs a generic warning message about a missing feature. This function is
diff --git a/libavutil/Makefile b/libavutil/Makefile
index 790c66e..25c2bfd 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -8,6 +8,7 @@ HEADERS = adler32.h                                                     \
           base64.h                                                      \
           common.h                                                      \
           crc.h                                                         \
+          error.h                                                       \
           fifo.h                                                        \
           intfloat_readwrite.h                                          \
           log.h                                                         \
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index d44a906..47630a7 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -40,7 +40,7 @@
 #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
 
 #define LIBAVUTIL_VERSION_MAJOR 50
-#define LIBAVUTIL_VERSION_MINOR 11
+#define LIBAVUTIL_VERSION_MINOR 12
 #define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
@@ -69,6 +69,7 @@ const char *avutil_configuration(void);
 const char *avutil_license(void);
 
 #include "common.h"
+#include "error.h"
 #include "mathematics.h"
 #include "rational.h"
 #include "intfloat_readwrite.h"
diff --git a/libavutil/error.h b/libavutil/error.h
new file mode 100644
index 0000000..d9047fb
--- /dev/null
+++ b/libavutil/error.h
@@ -0,0 +1,42 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file libavutil/error.h
+ * error codes definition
+ */
+
+#ifndef AVUTIL_ERROR_H
+#define AVUTIL_ERROR_H
+
+/** Returns a negative error code corresponding to a POSIX error code, to return from library functions. */
+#if EINVAL > 0
+#define AVERROR(e) (-(e))
+#else
+/* Some platforms have E* and errno already negated. */
+#define AVERROR(e) (e)
+#endif
+
+/* FFmpeg specific error codes */
+#define AVERROR_PATCHWELCOME    (-MKTAG('P','A','W','E')) ///< Not yet implemented in FFmpeg. Patches welcome.
+#define AVERROR_BIKESHED        (-MKTAG('B','I','S','H')) ///< Invalid argument or color or flavor. Mine is better.
+#if 0   // enable by hand when LIBAVCODEC_VERSION_MAJOR == 53
+#define AVERROR_EOF             (-MKTAG('E','O','F','_')) ///< End of file.
+#endif
+
+#endif /* AVUTIL_ERROR_H */
-- 
1.6.6.1


--ZoaI/ZTpAVc4A5k6--



More information about the ffmpeg-devel mailing list