Commit Graph

2 Commits

Author SHA1 Message Date
marfrit c15fc6c0f6 iter28b DIAG documented: universal trim=40 breaks IDR (reverted)
Confirmed the 40-byte inflation is non-uniform — IDR slice has correct
size from VAAPI; only P/B slices are inflated. Real fix requires dynamic
rbsp_stop_bit detection or per-slice-type logic.
2026-05-14 14:45:35 +00:00
marfrit 02c4192902 iter27/28: probe HEVC frame 2+ divergence; α-27/α-28 no-op; ffmpeg-vaapi slice_data inflation localized
α-27: num_entry_point_offsets — VAAPI returns 0, rkvdec doesn't use it
α-28: bit_size = (slice_data_size - data_byte_offset) * 8 — matches kdirect's
      printk value, but rkvdec doesn't use bit_size either. Output unchanged.

Remaining HEVC frame 2+ root cause: libva's slice_data buffer (from VAAPI)
is 40 bytes larger per slice than what ffmpeg-v4l2request appends from
libavcodec for the same frame. The trailing bytes inflate OUTPUT buffer
content → rkvdec reads past slice payload into garbage → frame 2+ wrong.

Campaign status: H264  (Bug 4 fixed), HEVC frame 1  (Bug 5 partial),
VP9 , HEVC frame 2+ ⚠️ (deferred to ffmpeg-vaapi-level fix).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 10:28:34 +00:00