Repository navigation
fix(core): re-register CPU motion_v2 extractor + post-flush test order (ADR-1052) - #673
Merged
Merged
Conversation
…order (ADR-1052) PR #532 / commit 6bb5464 ported upstream a4a1492d3 and inadvertently removed integer_motion_v2.c from the meson CPU source list and dropped the extern declaration + list entry from feature_extractor.c. On every CPU-only build (including ARM64 CI lanes), vmaf_get_feature_extractor_by_name( "motion_v2") returned NULL, causing test_motion_v2_missing and all related test files to fail their "motion_v2 extractor missing" assertion. Secondary failure: test_motion_three_frame_extract_emits_scores called vmaf_feature_collector_get_score for motion2_score BEFORE flush(). The post-port contract defers motion2 emission to flush(); the get_score must come after. Fix: 1. Re-add integer_motion_v2.c to core/src/meson.build CPU source list. 2. Restore extern VmafFeatureExtractor vmaf_fex_integer_motion_v2 and &vmaf_fex_integer_motion_v2 in feature_extractor.c. 3. Move get_score(motion2_score, frame=2) to after flush() in test_integer_motion_coverage.c::test_motion_three_frame_extract_emits_scores. Unblocks: test_motion_v2_missing, test_motion_three_frame, test_integer_motion_v2_coverage, test_motion_min_dim (motion_v2 sub-tests). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris
marked this pull request as ready for review
June 4, 2026 08:31
This was referenced Jun 4, 2026
lusoris
added a commit
that referenced
this pull request
Jun 6, 2026
#702) PR #673 (ADR-1052) added the extern declaration and list entry for vmaf_fex_integer_motion_v2 to feature_extractor.c, but meson.build compiles feature_extractor.cpp. The .cpp file still carried the stale comment "removed merged into vmaf_fex_integer_motion" and omitted both the extern declaration and the &vmaf_fex_integer_motion_v2 list entry. Result: vmaf_get_feature_extractor_by_name("motion_v2") returns NULL on every CPU-only static build, failing test_integer_motion_v2_coverage with "motion_v2 extractor missing". Fix: mirror the two-line change from .c into .cpp by adding the extern and inserting &vmaf_fex_integer_motion_v2 into feature_extractor_list[] between &vmaf_fex_integer_motion and &vmaf_fex_integer_vif. Co-authored-by: Lusoris <lusoris@pm.me> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
integer_motion_v2.cto the meson CPU source list (removed inadvertently by PR port: Netflix upstream May–Jun 2026 (4 commits — integer_motion_v2 rename + 2160p@1.5H CSF + ADM SIMD dispatch + direct-read default) #532 / commit6bb5464511, upstream port of Netflix/vmaf@a4a1492d3)extern VmafFeatureExtractor vmaf_fex_integer_motion_v2declaration and&vmaf_fex_integer_motion_v2list entry infeature_extractor.cvmaf_feature_collector_get_score(motion2_score)to afterflush()intest_motion_three_frame_extract_emits_scores— the post-port contract defers motion2 emission to flush timeRegressions fixed
test_motion_v2_missingvmaf_get_feature_extractor_by_name("motion_v2")returned NULL on CPU-only builds after deregistrationtest_motion_three_frameget_score(motion2_score)called beforeflush(); post-port contract defers emission to flushBoth fail on ARM64 CPU-only CI (
Build — Ubuntu ARM clang (CPU)).Test plan
meson test -C build --suite=fast test_integer_motion_v2_coverage— passesmeson test -C build --suite=fast test_motion_min_dim— motion_v2 sub-tests passvmaf_get_feature_extractor_by_name("motion_v2") != NULLon all CPU buildsDeliverables checklist (ADR-0108)
docs/research/1052-arm-motion-v2-re-register.md(no digest needed: trivial)## Alternatives consideredchangelog.d/fixed/1052-arm-motion-v2-re-register.mddocs/rebase-notes.mdupdatedstate.md
T-ARM-MOTION-V2-MISSING-2026-06-04added to Recently closed.no rebase impact: no upstream-mirrored C paths or public API touched;
integer_motion_v2.cregistration is fork-local.🤖 Generated with Claude Code