diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2010-03-21 14:46:32 +0000 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2010-03-21 14:46:32 +0000 |
commit | 8de0859bcb48172a3dfcafa150fcd0319fa28ea4 (patch) | |
tree | d35ea996f7fa424ad14ee545a9520e3078bb94b1 /libavcodec/tableprint.h | |
parent | 10249a5f31237210977c8c64d529e1030f974642 (diff) | |
download | ffmpeg-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.h | 29 |
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 |