[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