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

Reimar Döffinger git at videolan.org
Thu Aug 8 22:15:50 CEST 2013


ffmpeg | branch: master | Reimar Döffinger <Reimar.Doeffinger at gmx.de> | Thu Aug  8 20:02:46 2013 +0200| [a48979d7155934153d0647e18c63c8993b18b026] | committer: Reimar Döffinger

Reduce MAKE_ACCESSORS code duplication via a new header.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a48979d7155934153d0647e18c63c8993b18b026
---

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

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)



More information about the ffmpeg-cvslog mailing list