Commit d67cfdeb authored by Diego Biurrun's avatar Diego Biurrun

avformat: utils: Refactor duplicated PRINT macro

parent 54b2ce74
...@@ -3008,11 +3008,7 @@ fail: ...@@ -3008,11 +3008,7 @@ fail:
return -1; return -1;
} }
static void hex_dump_internal(void *avcl, FILE *f, int level, #define HEXDUMP_PRINT(...) \
const uint8_t *buf, int size)
{
int len, i, j, c;
#define PRINT(...) \
do { \ do { \
if (!f) \ if (!f) \
av_log(avcl, level, __VA_ARGS__); \ av_log(avcl, level, __VA_ARGS__); \
...@@ -3020,27 +3016,31 @@ static void hex_dump_internal(void *avcl, FILE *f, int level, ...@@ -3020,27 +3016,31 @@ static void hex_dump_internal(void *avcl, FILE *f, int level,
fprintf(f, __VA_ARGS__); \ fprintf(f, __VA_ARGS__); \
} while (0) } while (0)
static void hex_dump_internal(void *avcl, FILE *f, int level,
const uint8_t *buf, int size)
{
int len, i, j, c;
for (i = 0; i < size; i += 16) { for (i = 0; i < size; i += 16) {
len = size - i; len = size - i;
if (len > 16) if (len > 16)
len = 16; len = 16;
PRINT("%08x ", i); HEXDUMP_PRINT("%08x ", i);
for (j = 0; j < 16; j++) { for (j = 0; j < 16; j++) {
if (j < len) if (j < len)
PRINT(" %02x", buf[i + j]); HEXDUMP_PRINT(" %02x", buf[i + j]);
else else
PRINT(" "); HEXDUMP_PRINT(" ");
} }
PRINT(" "); HEXDUMP_PRINT(" ");
for (j = 0; j < len; j++) { for (j = 0; j < len; j++) {
c = buf[i + j]; c = buf[i + j];
if (c < ' ' || c > '~') if (c < ' ' || c > '~')
c = '.'; c = '.';
PRINT("%c", c); HEXDUMP_PRINT("%c", c);
} }
PRINT("\n"); HEXDUMP_PRINT("\n");
} }
#undef PRINT
} }
void av_hex_dump(FILE *f, const uint8_t *buf, int size) void av_hex_dump(FILE *f, const uint8_t *buf, int size)
...@@ -3056,31 +3056,23 @@ void av_hex_dump_log(void *avcl, int level, const uint8_t *buf, int size) ...@@ -3056,31 +3056,23 @@ void av_hex_dump_log(void *avcl, int level, const uint8_t *buf, int size)
static void pkt_dump_internal(void *avcl, FILE *f, int level, AVPacket *pkt, static void pkt_dump_internal(void *avcl, FILE *f, int level, AVPacket *pkt,
int dump_payload, AVRational time_base) int dump_payload, AVRational time_base)
{ {
#define PRINT(...) \ HEXDUMP_PRINT("stream #%d:\n", pkt->stream_index);
do { \ HEXDUMP_PRINT(" keyframe=%d\n", (pkt->flags & AV_PKT_FLAG_KEY) != 0);
if (!f) \ HEXDUMP_PRINT(" duration=%0.3f\n", pkt->duration * av_q2d(time_base));
av_log(avcl, level, __VA_ARGS__); \
else \
fprintf(f, __VA_ARGS__); \
} while (0)
PRINT("stream #%d:\n", pkt->stream_index);
PRINT(" keyframe=%d\n", ((pkt->flags & AV_PKT_FLAG_KEY) != 0));
PRINT(" duration=%0.3f\n", pkt->duration * av_q2d(time_base));
/* DTS is _always_ valid after av_read_frame() */ /* DTS is _always_ valid after av_read_frame() */
PRINT(" dts="); HEXDUMP_PRINT(" dts=");
if (pkt->dts == AV_NOPTS_VALUE) if (pkt->dts == AV_NOPTS_VALUE)
PRINT("N/A"); HEXDUMP_PRINT("N/A");
else else
PRINT("%0.3f", pkt->dts * av_q2d(time_base)); HEXDUMP_PRINT("%0.3f", pkt->dts * av_q2d(time_base));
/* PTS may not be known if B-frames are present. */ /* PTS may not be known if B-frames are present. */
PRINT(" pts="); HEXDUMP_PRINT(" pts=");
if (pkt->pts == AV_NOPTS_VALUE) if (pkt->pts == AV_NOPTS_VALUE)
PRINT("N/A"); HEXDUMP_PRINT("N/A");
else else
PRINT("%0.3f", pkt->pts * av_q2d(time_base)); HEXDUMP_PRINT("%0.3f", pkt->pts * av_q2d(time_base));
PRINT("\n"); HEXDUMP_PRINT("\n");
PRINT(" size=%d\n", pkt->size); HEXDUMP_PRINT(" size=%d\n", pkt->size);
#undef PRINT
if (dump_payload) if (dump_payload)
av_hex_dump(f, pkt->data, pkt->size); av_hex_dump(f, pkt->data, pkt->size);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment