[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