Architecture, hacking
Branch “refactor”:
Multi-threaded application using C++11 threads.
CmdParser class that eats commands and executes various things (updates Gconf_s/Compose_s)
spawns other threads and passes three parameters to them:
Gconf_s - contains variables like framerate and resolution
compose - vector of pointers to Compose_s, each element describes one signal source
compose_mtx - mutex to protect that vector
data:
audio samples are read into queue
video samples into preallocated vector, because there are 100
MB
/s of it and I don't want to have allocations and deallocations in queue
AudioReader.cpp, VideoReader.cpp - reads audio/video into “compose”
each signal source has one reader thread
AudioStreamer.cpp, VideoStreamer.cpp - reads “compose”, combines frames and outputs them