How mindstudioofficial/scopes_plusplus works
Scopes++ is a native realtime video-analysis application: users choose a live NDI source and configure color space/range and scope visibility, then inspect a preview, false-color view, waveforms, and scopes. The documented GPU pipeline converts source frames and produces analysis images using OpenCL with OpenGL texture interop; ImGui presents those results. The sampled excerpts establish the application UI and renderer behavior, while source-provider and device-provider internals were not sampled, so uncertain call wiring is omitted.
Main entry points: app.cpp Application UI · cl_renderer.cpp OpenCL renderer · cl_renderer.hpp Analysis textures · common.cl Kernel utilities
Components 20
Application and UI
- Application UI
src/app/src/app.cpp
Video sources
- NDI source provider
src/app/src/ndi_source_provider.cpp - NDI source
src/app/src/ndi_source.cpp - Video source interface
src/app/src/video_source.hpp
GPU processing
- OpenCL device provider
src/app/src/cl_device_provider.cpp - OpenCL renderer
src/app/src/cl_renderer.cpp - GL/CL texture interop
src/app/src/util/cl_gl_utils.cpp - Frame conversion
src/app/kernels/01_convert.cl - Scope accumulation
src/app/kernels/02_accumulate.cl - Analysis image creation
src/app/kernels/03_create_images.cl - False-color processing
src/app/kernels/04_post_fx.cl - Color-space kernels
src/app/kernels/colorspaces.cl - Kernel utilities
src/app/kernels/common.cl
Analysis views
- Analysis textures
src/app/src/cl_renderer.hpp - Source preview
src/app/src/app.cpp - False-color viewer
src/app/src/app.cpp - Waveform views
src/app/src/app.cpp - Scope views
src/app/src/app.cpp
Other components
- Video professional
- NDI stream
Connections 25
- Video professional → Application UI: configures and views
- Application UI → NDI source provider: lists NDI sources
- NDI source provider → NDI stream: discovers streams
- NDI source → NDI stream: receives stream
- Application UI → OpenCL device provider: owns provider
- OpenCL device provider → OpenCL renderer: provides kernels
- OpenCL renderer → Frame conversion: dispatches conversion
- OpenCL renderer → Scope accumulation: dispatches accumulation
- OpenCL renderer → Analysis image creation: dispatches image creation
- OpenCL renderer → False-color processing: dispatches false color
- Frame conversion → Color-space kernels: uses color transforms
- Frame conversion → Kernel utilities: uses utilities
- Scope accumulation → Kernel utilities: uses utilities
- Analysis image creation → Kernel utilities: uses utilities
- False-color processing → Kernel utilities: uses utilities
- OpenCL renderer → GL/CL texture interop: creates shared textures
- OpenCL renderer → Analysis textures: produces images
- Application UI → Source preview: renders preview
- Application UI → False-color viewer: renders false color
- Application UI → Waveform views: renders waveforms
- Application UI → Scope views: renders scopes
- Analysis textures → Source preview: supplies texture
- Analysis textures → False-color viewer: supplies texture
- Analysis textures → Waveform views: supplies textures
- Analysis textures → Scope views: supplies textures