summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2010-03-21 14:46:32 +0000
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2010-03-21 14:46:32 +0000
commit8de0859bcb48172a3dfcafa150fcd0319fa28ea4 (patch)
treed35ea996f7fa424ad14ee545a9520e3078bb94b1 /libavcodec
parent10249a5f31237210977c8c64d529e1030f974642 (diff)
Extend and move macros to create table printing functions to header.
Simplifies creating custom functions for printing DV VLC-related tables. Originally committed as revision 22621 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/tableprint.c25
-rw-r--r--libavcodec/tableprint.h29
2 files changed, 29 insertions, 25 deletions
diff --git a/libavcodec/tableprint.c b/libavcodec/tableprint.c
index 6ff9f1f869..c2fbf0e74a 100644
--- a/libavcodec/tableprint.c
+++ b/libavcodec/tableprint.c
@@ -24,37 +24,12 @@
#include <inttypes.h>
#include "tableprint.h"
-#define WRITE_1D_FUNC(name, type, fmtstr, linebrk)\
-void write_##name##_array(const void *arg, int len, int dummy)\
-{\
- const type *data = arg;\
- int i;\
- printf(" ");\
- for (i = 0; i < len - 1; i++) {\
- printf(" "fmtstr",", data[i]);\
- if ((i & linebrk) == linebrk) printf("\n ");\
- }\
- printf(" "fmtstr"\n", data[i]);\
-}
-
WRITE_1D_FUNC(int8, int8_t, "%3"PRIi8, 15)
WRITE_1D_FUNC(uint8, uint8_t, "0x%02"PRIx8, 15)
WRITE_1D_FUNC(uint16, uint16_t, "0x%08"PRIx16, 7)
WRITE_1D_FUNC(uint32, uint32_t, "0x%08"PRIx32, 7)
WRITE_1D_FUNC(float, float, "%.18e", 3)
-#define WRITE_2D_FUNC(name, type)\
-void write_##name##_2d_array(const void *arg, int len, int len2)\
-{\
- const type *data = arg;\
- int i;\
- printf(" {\n");\
- for (i = 0; i < len; i++) {\
- write_##name##_array(data + i * len2, len2, 0);\
- printf(i == len - 1 ? " }\n" : " }, {\n");\
- }\
-}
-
WRITE_2D_FUNC(int8, int8_t)
WRITE_2D_FUNC(uint8, uint8_t)
WRITE_2D_FUNC(uint32, uint32_t)
diff --git a/libavcodec/tableprint.h b/libavcodec/tableprint.h
index a0048be581..e91ba1ec32 100644
--- a/libavcodec/tableprint.h
+++ b/libavcodec/tableprint.h
@@ -24,6 +24,35 @@
#define AVCODEC_TABLEPRINT_H
#include <stdint.h>
+#include <stdio.h>
+
+#define WRITE_1D_FUNC_ARGV(name, type, linebrk, fmtstr, ...)\
+void write_##name##_array(const void *arg, int len, int dummy)\
+{\
+ const type *data = arg;\
+ int i;\
+ printf(" ");\
+ for (i = 0; i < len - 1; i++) {\
+ printf(" "fmtstr",", __VA_ARGS__);\
+ if ((i & linebrk) == linebrk) printf("\n ");\
+ }\
+ printf(" "fmtstr"\n", __VA_ARGS__);\
+}
+
+#define WRITE_1D_FUNC(name, type, fmtstr, linebrk)\
+ WRITE_1D_FUNC_ARGV(name, type, linebrk, fmtstr, data[i])
+
+#define WRITE_2D_FUNC(name, type)\
+void write_##name##_2d_array(const void *arg, int len, int len2)\
+{\
+ const type *data = arg;\
+ int i;\
+ printf(" {\n");\
+ for (i = 0; i < len; i++) {\
+ write_##name##_array(data + i * len2, len2, 0);\
+ printf(i == len - 1 ? " }\n" : " }, {\n");\
+ }\
+}
/**
* \defgroup printfuncs Predefined functions for printing tables