feat(pkg): compat.opencv full-platform full-function — windows videoio + macOS dnn (mcpp 0.0.101)#103
Merged
Merged
Conversation
…cpp 0.0.101 per-feature flags — clears feature-off dead-glob warnings; per-OS deltas land via merge)
…erywhere) via fixed gen_descriptor
…ntax error; merge_opencv: per-OS dnn common/delta split (mcpp#253) + warn-fix flag relocation
…-OS NEON dnn build + import opencv.dnn on macos-arm64)
…o + macOS dnn (per-OS NEON) + warning-free (mcpp 0.0.101)
…-cl dnn+protobuf CI-clean) + widen dnn tests to windows
Member
Author
|
Upgraded: windows now has dnn too. The windows full+videoio+dnn snapshot succeeded — dnn + vendored protobuf compile clean under clang-cl ( |
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.
Makes compat.opencv full-platform full-function on mcpp 0.0.101: windows gains the FFmpeg videoio backend, macOS-arm64 gains the dnn module, and the
dnnfeature is restructured per-OS (mcpp#253). Consumers just doopencv = { features = ["dnn"] }and it works on linux/macOS (windows videoio available now; windows dnn is a follow-up).What changed
Windows videoio (the deep HAVE_FFMPEG handoff — solved).
OpenCV's videoio gates
cap_ffmpeg.cppon the CMake targetocv.3rdparty.ffmpeg(created byocv_add_external_targetindetect_ffmpeg.cmake), not on theHAVE_FFMPEGvariable — so forcing the variable never helped. Fix: the sanctionedOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG+ aFindFFMPEG.cmakeshim, which setsHAVE_FFMPEG=TRUEbefore the target is created. CI confirmsTARGET ocv.3rdparty.ffmpeg CREATED → cap_ffmpeg: YES (2 TUs)under clang-cl.macOS dnn (per-OS NEON).
The
dnnfeature's payload is now split (mcpp#253 per-OS features): neutralfeatures.dnncarries the cross-platform common payload (dnn/protobuf/mlas C++ +mlas_hgemm_stub), and each OS's SIMD delta ridesmcpp.<os>.features.dnn— x86 (mlas/lib/x86_64/*.S+ avx/avx2/avx512 kernels) on linux/windows, arm (mlas/lib/aarch64/*.S+ neon/neon_fp16 kernels) on macOS. Snapshot built core+imgproc+…+dnn on macos-15 (NEON): 70.neon.cppkernels.Dead-glob warning cleared (mcpp 0.0.101 per-feature flags).
dnn-group flag-globs (mlas/protobuf/mlasgemm + per-ISA) moved out of the feature-off base
flagsintofeatures.dnn.flags, so they no longermatched no source filewhen dnn is off.Tooling
gen_descriptor.py: route dnn flag-globs →features.dnn.flags; fix empty-baseline (arm)cxxflags = { , "-w" }lua syntax bug.merge_opencv.lua: per-OS dnn common/delta split + flag relocation (format-robust across pre/post-warnfix inputs).Validation
mcpp 0.0.101 xpkg parseclean on all 3 OSes.opencv-dnn+opencv-module-dnntest members widened to macOS — this PR'sworkspace (macos)job builds the full dnn closure from source and runs theblobFromImageNCHW assertion +import opencv.dnn;on macos-arm64.