Skip to content
Snippets Groups Projects
Commit 8de0859b authored by Reimar Döffinger's avatar Reimar Döffinger
Browse files

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
parent 10249a5f
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment