[FFmpeg-cvslog] r22621 - in trunk/libavcodec: tableprint.c tableprint.h
reimar
subversion
Sun Mar 21 15:46:32 CET 2010
Author: reimar
Date: Sun Mar 21 15:46:32 2010
New Revision: 22621
Log:
Extend and move macros to create table printing functions to header.
Simplifies creating custom functions for printing DV VLC-related tables.
Modified:
trunk/libavcodec/tableprint.c
trunk/libavcodec/tableprint.h
Modified: trunk/libavcodec/tableprint.c
==============================================================================
--- trunk/libavcodec/tableprint.c Sun Mar 21 15:43:50 2010 (r22620)
+++ trunk/libavcodec/tableprint.c Sun Mar 21 15:46:32 2010 (r22621)
@@ -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)
Modified: trunk/libavcodec/tableprint.h
==============================================================================
--- trunk/libavcodec/tableprint.h Sun Mar 21 15:43:50 2010 (r22620)
+++ trunk/libavcodec/tableprint.h Sun Mar 21 15:46:32 2010 (r22621)
@@ -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
More information about the ffmpeg-cvslog
mailing list