From 48fd0288c35007a3751a9065609539fe612aa5ec Mon Sep 17 00:00:00 2001 From: claude-noether Date: Thu, 14 May 2026 17:55:09 +0000 Subject: [PATCH] iter35 DIAG: env-gated dump of v4l2_ctrl_mpeg2_* contents --- src/mpeg2.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/mpeg2.c b/src/mpeg2.c index 3f22337..7f04e04 100644 --- a/src/mpeg2.c +++ b/src/mpeg2.c @@ -57,6 +57,9 @@ #include "surface.h" #include +#include +#include +#include #include #include @@ -221,6 +224,27 @@ int mpeg2_set_controls(struct request_data *driver_data, * surface's permanent request_fd (iter6 per-OUTPUT-slot binding; * picture.c:284 sets surface_object->request_fd at BeginPicture). */ + /* iter35 DIAG: dump v4l2_ctrl_mpeg2_* contents. LIBVA_MPEG2_DUMP_FRAME=1 */ + if (getenv("LIBVA_MPEG2_DUMP_FRAME")) { + uint8_t *sb = (uint8_t *)&sequence; + uint8_t *pb = (uint8_t *)&pic; + uint8_t *qb = (uint8_t *)&quant; + unsigned int k; + fprintf(stderr, "mpeg2: SEQ size=%zu ", sizeof(sequence)); + for (k = 0; k < sizeof(sequence); k++) + fprintf(stderr, "%02x ", sb[k]); + fprintf(stderr, "\nmpeg2: PIC size=%zu [0..32]=", sizeof(pic)); + for (k = 0; k < 32 && k < sizeof(pic); k++) + fprintf(stderr, "%02x ", pb[k]); + fprintf(stderr, "\nmpeg2: PIC [32..end]="); + for (k = 32; k < sizeof(pic); k++) + fprintf(stderr, "%02x ", pb[k]); + fprintf(stderr, "\nmpeg2: QUANT size=%zu [0..16]=", sizeof(quant)); + for (k = 0; k < 16; k++) + fprintf(stderr, "%02x ", qb[k]); + fprintf(stderr, "\n"); + } + struct v4l2_ext_control ctrls[3] = { { .id = V4L2_CID_STATELESS_MPEG2_SEQUENCE,