avcodec/mpegutils: print axis in debug_info2
For example,
./ffmpeg -nostats -threads 1 -debug qp \
-export_side_data +venc_params \
-i reinit-small_420_9-to-small_420_8.h264 \
-frames 2 \
-f null -
New frame, type: B
0 64 128 192
0 313131313131313131313131313129
16 292929292929292929292929292929
32 323232323232323232323232323232
48 323232323232323232323232323232
64 323232323232323232323232323232
80 323232323232323232323232323232
96 323232323030303030303030303030
112 303030303030303030303030303030
128 303030303030303030303030303028
144 313131312929292929292929292929
160 292929292929292929292929292929
176 292929292929292929292929292931
192 312831312631313131312730283131
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
parent
bd48c08f80
commit
33698ef891
1 changed files with 31 additions and 0 deletions
|
|
@ -254,12 +254,43 @@ void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict,
|
|||
AVBPrint buf;
|
||||
char *str = NULL;
|
||||
int n;
|
||||
int margin_left;
|
||||
int x_step;
|
||||
|
||||
av_log(avctx, AV_LOG_DEBUG, "New frame, type: %c\n",
|
||||
av_get_picture_type_char(pict->pict_type));
|
||||
|
||||
margin_left = 2;
|
||||
n = mb_width << 4;
|
||||
while ((n /= 10))
|
||||
margin_left++;
|
||||
|
||||
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
|
||||
av_bprintf(&buf, "%*s", margin_left, " ");
|
||||
|
||||
n = 0;
|
||||
if (avctx->debug & FF_DEBUG_SKIP)
|
||||
n++;
|
||||
if (avctx->debug & FF_DEBUG_QP)
|
||||
n += 2;
|
||||
if (avctx->debug & FF_DEBUG_MB_TYPE)
|
||||
n += 3;
|
||||
x_step = (mb_width * 16 > 999) ? 8 : 4;
|
||||
for (x = 0; x < mb_width; x += x_step)
|
||||
av_bprintf(&buf, "%-*d", n * x_step, x << 4);
|
||||
n = av_bprint_finalize(&buf, &str);
|
||||
if (n < 0) {
|
||||
av_log(avctx, AV_LOG_ERROR, "%s failed, %s\n", __func__, av_err2str(n));
|
||||
return;
|
||||
}
|
||||
av_log(avctx, AV_LOG_DEBUG, "%s\n", str);
|
||||
av_freep(&str);
|
||||
|
||||
for (y = 0; y < mb_height; y++) {
|
||||
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
|
||||
for (x = 0; x < mb_width; x++) {
|
||||
if (x == 0)
|
||||
av_bprintf(&buf, "%*d ", margin_left - 1, y << 4);
|
||||
if (avctx->debug & FF_DEBUG_SKIP) {
|
||||
int count = mbskip_table ? mbskip_table[x + y * mb_stride] : 0;
|
||||
if (count > 9)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue