h264: promote remaining intra prediction modes (17) to public API
Follows PR #26 (Intra_4x4 luma) with the same promotion pattern for the rest of the intra prediction primitive set: Intra_16x16 luma (4 modes, PR #13) — V/H/DC/Plane Intra_8x8 chroma (4 modes, PR #14) — DC/H/V/Plane (4:2:0) Intra_8x8 luma (9 modes, PRs #21 + #22) — High profile, with 1-2-1 pre-filter 3 file moves via `git mv`, ~17 function renames stripping the `_ref` suffix. Test binaries rewired to link daedalus_core instead of compiling the (now moved) ref files directly. No code change — pure plumbing for substitution-arc consumers. 26 intra prediction modes total now in the public API after this PR. Verified on hertz: test_intra_pred_16x16: 5/5 PASS test_intra_pred_chroma8x8: 5/5 PASS test_intra_pred_8x8_luma: 11/11 PASS All via public symbols (test binaries linked against daedalus_core). Unblocks marfrit-packages substitution arc patch 0014 — wires H264PredContext.pred4x4[], pred16x16[], pred8x8[], pred8x8l[] through daedalus alongside the existing IDCT / deblock / qpel / DC Hadamard substitutions. After 0014 lands, the libavcodec.so built by marfrit-packages will have EVERY hot-path pixel-math kernel of an H.264 8-bit 4:2:0 decode routing through daedalus — the substitution arc is feature- complete for the campaign target (Pi 5 Firefox YouTube playback).
This commit is contained in:
+13
-18
@@ -393,6 +393,9 @@ add_library(daedalus_core STATIC
|
||||
src/daedalus_core.c
|
||||
src/h264_chroma_dc.c
|
||||
src/h264_intra_pred_4x4.c
|
||||
src/h264_intra_pred_16x16.c
|
||||
src/h264_intra_pred_chroma8x8.c
|
||||
src/h264_intra_pred_8x8_luma.c
|
||||
src/v3d_runner.c
|
||||
${FFASM_SOURCES}
|
||||
${FFASM_LPF_SOURCES}
|
||||
@@ -547,29 +550,21 @@ add_executable(test_intra_pred_4x4 tests/test_intra_pred_4x4.c)
|
||||
target_link_libraries(test_intra_pred_4x4 PRIVATE daedalus_core)
|
||||
target_compile_options(test_intra_pred_4x4 PRIVATE -O2)
|
||||
|
||||
# H.264 Intra_16x16 luma prediction (4 modes: V, H, DC, Plane) —
|
||||
# reference + tests. Same spec-gate role as the 4x4 sibling.
|
||||
add_executable(test_intra_pred_16x16
|
||||
tests/test_intra_pred_16x16.c
|
||||
tests/h264_intra_pred_16x16_ref.c
|
||||
)
|
||||
# H.264 Intra_16x16 luma prediction (4 modes) — public src primitives,
|
||||
# linked from daedalus_core.
|
||||
add_executable(test_intra_pred_16x16 tests/test_intra_pred_16x16.c)
|
||||
target_link_libraries(test_intra_pred_16x16 PRIVATE daedalus_core)
|
||||
target_compile_options(test_intra_pred_16x16 PRIVATE -O2)
|
||||
|
||||
# H.264 Intra_8x8 chroma prediction (4 modes: DC, H, V, Plane) —
|
||||
# reference + tests. DC is per-quadrant (asymmetric); Plane uses
|
||||
# slope coefficient 34 instead of luma's 5.
|
||||
add_executable(test_intra_pred_chroma8x8
|
||||
tests/test_intra_pred_chroma8x8.c
|
||||
tests/h264_intra_pred_chroma8x8_ref.c
|
||||
)
|
||||
# H.264 Intra_8x8 chroma prediction (4 modes) — public src primitives.
|
||||
add_executable(test_intra_pred_chroma8x8 tests/test_intra_pred_chroma8x8.c)
|
||||
target_link_libraries(test_intra_pred_chroma8x8 PRIVATE daedalus_core)
|
||||
target_compile_options(test_intra_pred_chroma8x8 PRIVATE -O2)
|
||||
|
||||
# H.264 Intra_8x8 luma prediction (High profile, 9 modes + 1-2-1
|
||||
# reference-sample pre-filter).
|
||||
add_executable(test_intra_pred_8x8_luma
|
||||
tests/test_intra_pred_8x8_luma.c
|
||||
tests/h264_intra_pred_8x8_luma_ref.c
|
||||
)
|
||||
# pre-filter) — public src primitives.
|
||||
add_executable(test_intra_pred_8x8_luma tests/test_intra_pred_8x8_luma.c)
|
||||
target_link_libraries(test_intra_pred_8x8_luma PRIVATE daedalus_core)
|
||||
target_compile_options(test_intra_pred_8x8_luma PRIVATE -O2)
|
||||
|
||||
# H.264 chroma DC 2x2 Hadamard pre-pass primitive. Pure transform,
|
||||
|
||||
Reference in New Issue
Block a user