|
|
|
@ -37,6 +37,7 @@ |
|
|
|
|
#include "libavutil/opt.h" |
|
|
|
|
#include "libavutil/pixdesc.h" |
|
|
|
|
#include "libavutil/dict.h" |
|
|
|
|
#include "libavutil/intreadwrite.h" |
|
|
|
|
#include "libavutil/libm.h" |
|
|
|
|
#include "libavutil/parseutils.h" |
|
|
|
|
#include "libavutil/timecode.h" |
|
|
|
@ -718,6 +719,32 @@ static void writer_print_data_hash(WriterContext *wctx, const char *name, |
|
|
|
|
writer_print_string(wctx, name, buf, 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void writer_print_integers(WriterContext *wctx, const char *name, |
|
|
|
|
uint8_t *data, int size, const char *format, |
|
|
|
|
int columns, int bytes, int offset_add) |
|
|
|
|
{ |
|
|
|
|
AVBPrint bp; |
|
|
|
|
int offset = 0, l, i; |
|
|
|
|
|
|
|
|
|
av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED); |
|
|
|
|
av_bprintf(&bp, "\n"); |
|
|
|
|
while (size) { |
|
|
|
|
av_bprintf(&bp, "%08x: ", offset); |
|
|
|
|
l = FFMIN(size, columns); |
|
|
|
|
for (i = 0; i < l; i++) { |
|
|
|
|
if (bytes == 1) av_bprintf(&bp, format, *data); |
|
|
|
|
else if (bytes == 2) av_bprintf(&bp, format, AV_RN16(data)); |
|
|
|
|
else if (bytes == 4) av_bprintf(&bp, format, AV_RN32(data)); |
|
|
|
|
data += bytes; |
|
|
|
|
size --; |
|
|
|
|
} |
|
|
|
|
av_bprintf(&bp, "\n"); |
|
|
|
|
offset += offset_add; |
|
|
|
|
} |
|
|
|
|
writer_print_string(wctx, name, bp.str, 0); |
|
|
|
|
av_bprint_finalize(&bp, NULL); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define MAX_REGISTERED_WRITERS_NB 64 |
|
|
|
|
|
|
|
|
|
static const Writer *registered_writers[MAX_REGISTERED_WRITERS_NB + 1]; |
|
|
|
|