====== 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