Skip to content

media: apple: avd: stage H.264 frame ops and layout projections - #702

Closed
RyanTheTide wants to merge 2 commits into
integration/aurorafrom
avd/rewrite-h264
Closed

RyanTheTide wants to merge 2 commits into
integration/aurorafrom
avd/rewrite-h264

Conversation

@RyanTheTide

Copy link
Copy Markdown
Contributor

The H.264 builder currently copies coded slices into coherent allocations and uses one context's scratch buffers. This integration draft registers CPU prepare/pack_cmd/retire operations, writes a bounded per-frame instruction program, uses OUTPUT DMA addresses with data offsets, declares DEP_NONE, and caches independent scratch for 16 frame indices. It carries the shared queue header verbatim and keeps reference motion vectors in CAPTURE-owned tails.

The Apple work is a partial projection, not working Apple decoding: V3 fields have licensed public layout provenance, Borage has only the known command fields, and unresolved packed addresses/work-count validation return -EOPNOTSUPP. T8112/T8140 have explicit ledger TODO rows. The legacy callbacks remain until queue-core integration. Multi-buffer HOLD_CAPTURE_BUF pictures now return -EOPNOTSUPP, because immediately returning intermediate OUTPUT buffers permits userspace to overwrite zero-copy data before picture completion. Core must retain those sources before this can replace the existing multi-slice path.

Validation: exact contract-header comparison, no coded-slice allocation/copy, and git diff --check pass. The host harness covers 96 synthetic I/P/B, 1/4-slice, CABAC/CAVLC, scaling/weight and address-format cases, plus V3/Borage field checks; execution is still pending. Controller build slots are currently unavailable, so host tests and arm64 W=1/WERROR are not verified. No target hardware was requested. The ffmpeg/GStreamer-to-eiln decoder comparison also remains outstanding.

This draft does not meet the full task's acceptance criteria and is not ready to merge.

Add CPU frame operations, bounded instruction emission and independent slot
scratch. Address coded data directly from OUTPUT DMA mappings and retain the
licensed builder for host regression comparisons.

Keep Apple transport fields and HOLD source-lifetime gaps explicit; this
integration draft does not enable Apple decoding or multi-buffer HOLD pictures.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Route collocated MV lookup through the existing reference helper, add program and parameter overflow cases, and provide an open-only weak backend predicate for the standalone codec branch. The queue core overrides that predicate when integrated.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
@RyanTheTide

Copy link
Copy Markdown
Contributor Author

The H.264 frame-op/layout-projection approach here was replaced by the backend transport design now on integration/aurora: #701 (frame slots and backend transport), #713 (frame queue and OF transport), #785, and #1116 (macOS slice/scaling parity). Closing in favour of that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant