iter36: remove env-gated DIAG probes (iter29/30/33/35)

Cleans up the campaign's exploratory env-gated dumps now that all
bugs are fixed:
- iter29 LIBVA_HEVC_DUMP_SLICE_TAIL (h265.c) — refuted 40-byte inflation theory
- iter30 LIBVA_TS_SCALE (picture.c) — refuted timestamp magnitude theory
- iter33 LIBVA_VP8_DUMP_FRAME (vp8.c) — led to α-30 fix
- iter35 LIBVA_MPEG2_DUMP_FRAME (mpeg2.c) — confirmed MPEG-2 ctrls correct

Total: -131 lines / +7 lines (α-7 comment refresh).

Preexisting framework env knobs retained:
- LIBVA_V4L2_DUMP_OUTPUT (picture.c α-16)
- LIBVA_V4L2_DUMP_CAPTURE (surface.c)
- LIBVA_V4L2_ZERO_CAPTURE (picture.c)
- LIBVA_V4L2_REQUEST_VIDEO_PATH / MEDIA_PATH / NO_AUTODETECT (request.c)

The 3 load-bearing fixes remain unchanged:
α-25 (rkvdec image_fmt pre-seed, src/context.c)
α-29 (slice_params.short_term_ref_pic_set_size, src/h265.c)
α-30 (VP8 OUTPUT header prepend, src/picture.c)
This commit is contained in:
2026-05-14 18:12:55 +00:00
parent 48fd0288c3
commit 7db15a5685
4 changed files with 7 additions and 131 deletions
+7 -19
View File
@@ -497,27 +497,15 @@ VAStatus RequestEndPicture(VADriverContextP context, VAContextID context_id)
/*
* iter9 α-7: monotonic per-context counter instead of gettimeofday,
* so DPB.reference_ts / OUTPUT QBUF ts stay small (matches
* ffmpeg-v4l2request's pattern). gettimeofday's giant ns may or may
* not be load-bearing for rkvdec's reference resolution — Phase 5
* reviewer flagged this as low-probability (VP9/MPEG-2 use the same
* pattern and PASS), but this is the only remaining wire-byte diff.
*
* iter30 DIAG: LIBVA_TS_SCALE env-gated multiplier so we can sweep
* timestamp magnitude to test whether small-ts collides with stale
* CAPTURE entries in vb2_find_buffer for HEVC frame 2+ divergence.
* ffmpeg-v4l2request's pattern). Confirmed in iter30 sweep
* (1×, 1000×, 1000000× multipliers all produce identical output);
* the counter scheme works on both rkvdec and hantro vb2_find_buffer.
*/
context_object->timestamp_counter++;
{
uint64_t ns = (uint64_t)context_object->timestamp_counter * 1000;
const char *scale = getenv("LIBVA_TS_SCALE");
if (scale && scale[0] != '\0') {
uint64_t mul = (uint64_t)strtoull(scale, NULL, 0);
if (mul > 0)
ns *= mul;
}
surface_object->timestamp.tv_sec = (time_t)(ns / 1000000000ULL);
surface_object->timestamp.tv_usec = (suseconds_t)((ns / 1000ULL) % 1000000ULL);
}
surface_object->timestamp.tv_sec =
(time_t)(context_object->timestamp_counter / 1000000);
surface_object->timestamp.tv_usec =
(suseconds_t)(context_object->timestamp_counter % 1000000);
/*
* iter6: request_fd was bound to the surface in BeginPicture from