[FFmpeg-devel] [PATCH] avutil/common: add FFRET/FFGOTO macro
Muhammad Faiz
mfcc64 at gmail.com
Tue Dec 20 11:38:34 EET 2016
FFRET_ERR and FFGOTO_ERR for common error handling
FFRET_OOM and FFGOTO_OOM for oom handling
Signed-off-by: Muhammad Faiz <mfcc64 at gmail.com>
---
libavutil/common.h | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/libavutil/common.h b/libavutil/common.h
index 8142b31..b868d60 100644
--- a/libavutil/common.h
+++ b/libavutil/common.h
@@ -99,6 +99,29 @@
#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
+/* Common error handling */
+#define FFRET_ERR(val, ...) \
+ do { \
+ int ffret_err_ret__ = (val); \
+ if (ffret_err_ret__ < 0) { \
+ __VA_ARGS__; \
+ return ffret_err_ret__; \
+ } \
+ } while (0)
+
+#define FFGOTO_ERR(val, ret, dst, ...) \
+ do { \
+ int ffgoto_err_ret__ = (val); \
+ if (ffgoto_err_ret__ < 0) { \
+ ret = ffgoto_err_ret__; \
+ __VA_ARGS__; \
+ goto dst; \
+ } \
+ } while (0)
+
+#define FFRET_OOM(val, ...) FFRET_ERR((val) ? 0 : AVERROR(ENOMEM), __VA_ARGS__)
+#define FFGOTO_OOM(val, ret, dst, ...) FFGOTO_ERR((val) ? 0 : AVERROR(ENOMEM), ret, dst, __VA_ARGS__)
+
/* misc math functions */
#ifdef HAVE_AV_CONFIG_H
--
2.5.0
More information about the ffmpeg-devel
mailing list