aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/tableprint.h
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/tableprint.h
parent10249a5f31237210977c8c64d529e1030f974642 (diff)
downloadffmpeg-8de0859bcb48172a3dfcafa150fcd0319fa28ea4.tar.gz
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/tableprint.h')
-rw-r--r--libavcodec/tableprint.h29
1 files changed, 29 insertions, 0 deletions
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