mirror of
https://github.com/Lakr233/vphone-cli.git
synced 2026-10-02 08:04:32 +08:00
libvcamcaptured's nine .inc files and the single libcamfix.m become separate .m files grouped by subsystem, with private headers for what crosses a file. Shared symbols are hidden, so neither dylib exports more than the data plane's vcc_* functions. The Makefile already discovers them; the data plane test now resolves its header through -I as well. Fixes found while reading the whole camera path: - The copyDeviceWithID: and copyStreams hooks return owned objects but lacked ns_returns_retained, so ARC autoreleased the result and the caller's release over-released it. - Captured video sinks are held weakly, so a finished session's graph is neither kept alive nor fed at 30 Hz forever. - Viewfinder streams, preview layers and the shm mapping are guarded against the threads that touch them; the preview timer is created once. - Moment captures are stashed per uniqueID and removed on commit or cancel, so back-to-back shutter taps keep their own settings and the output no longer retains its delegate indefinitely. - The resolved settings stub assigns ivars with the strong-default setter instead of an extra manual retain. - A photo's JPEG and CGImage come from one frame, and the preview drops the last graph sample once no layer shows it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>