[FFmpeg-devel] [PATCH] Reduce MAKE_ACCESSORS code duplication via a new header.

Reimar Döffinger Reimar.Doeffinger at gmx.de
Thu Aug 8 20:02:46 CEST 2013


---
 libavcodec/utils.c    | 5 +----
 libavformat/utils.c   | 5 +----
 libavutil/accessors.h | 3 +++
 libavutil/frame.c     | 4 +---
 4 files changed, 6 insertions(+), 11 deletions(-)
 create mode 100644 libavutil/accessors.h

diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index fd08bec..063105a 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -26,6 +26,7 @@
  */
 
 #include "config.h"
+#include "libavutil/accessors.h"
 #include "libavutil/atomic.h"
 #include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
@@ -1029,10 +1030,6 @@ void avcodec_free_frame(AVFrame **frame)
     av_freep(frame);
 }
 
-#define MAKE_ACCESSORS(str, name, type, field) \
-    type av_##name##_get_##field(const str *s) { return s->field; } \
-    void av_##name##_set_##field(str *s, type v) { s->field = v; }
-
 MAKE_ACCESSORS(AVCodecContext, codec, AVRational, pkt_timebase)
 MAKE_ACCESSORS(AVCodecContext, codec, const AVCodecDescriptor *, codec_descriptor)
 MAKE_ACCESSORS(AVCodecContext, codec, int, lowres)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 727711b..e44f716 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -25,6 +25,7 @@
 #include "libavcodec/internal.h"
 #include "libavcodec/raw.h"
 #include "libavcodec/bytestream.h"
+#include "libavutil/accessors.h"
 #include "libavutil/avassert.h"
 #include "libavutil/opt.h"
 #include "libavutil/dict.h"
@@ -98,10 +99,6 @@ static int64_t wrap_timestamp(AVStream *st, int64_t timestamp)
     return timestamp;
 }
 
-#define MAKE_ACCESSORS(str, name, type, field) \
-    type av_##name##_get_##field(const str *s) { return s->field; } \
-    void av_##name##_set_##field(str *s, type v) { s->field = v; }
-
 MAKE_ACCESSORS(AVStream, stream, AVRational, r_frame_rate)
 
 /* an arbitrarily chosen "sane" max packet size -- 50M */
diff --git a/libavutil/accessors.h b/libavutil/accessors.h
new file mode 100644
index 0000000..471cdff
--- /dev/null
+++ b/libavutil/accessors.h
@@ -0,0 +1,3 @@
+#define MAKE_ACCESSORS(str, name, type, field) \
+    type av_##name##_get_##field(const str *s) { return s->field; } \
+    void av_##name##_set_##field(str *s, type v) { s->field = v; }
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 5021d07..df03e25 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -27,9 +27,7 @@
 #include "mem.h"
 #include "samplefmt.h"
 
-#define MAKE_ACCESSORS(str, name, type, field) \
-    type av_##name##_get_##field(const str *s) { return s->field; } \
-    void av_##name##_set_##field(str *s, type v) { s->field = v; }
+#include "accessors.h"
 
 MAKE_ACCESSORS(AVFrame, frame, int64_t, best_effort_timestamp)
 MAKE_ACCESSORS(AVFrame, frame, int64_t, pkt_duration)
-- 
1.8.3.2



More information about the ffmpeg-devel mailing list