Good to hear. I'll make a note about docuenting it. Perhaps at least with a "-h" flag listing options available.
The stderr fd not being 2 was something I saw several years ago when a user was using Docker to deploy Snowmix. In that setup running Snowmix in a Docker container, the selected setup resulted in Snowmix haviing no stdin and stdout and stderr would get fd=0 and fd=1 respectively and opening the first feeds control connection would then get fd=2 creating havoc when the compiler executed a lot of fprintf(stderr,...... to fd=2. I never checked if issue was with the compiler or the issue had something...
Snowmix has code for creating/defining/building on the fly multiple pipelines for hardware encoding, decoding, scaling, rendering and many more things .... and it iis all based on the OpenMAX specs which was fine on Pi 3, but seems sketchy maybe on Pi4 and newer. Maybe it is just the renderer that is sketchy ... I was unsure so the 0.5.2.x releases has not documented the use of Hardware support for the SNowmix program ... although it is there. But iis complicated to use withouth documentation. Documentation...
What time zone are you in?
Not having stdin opened, have you tried running snowmix in daemon mode? snowmix -d I don't remember if that code was thoroughly tested. When in Snowmix calling for the creation of the object VideoMixer, it passes a "daemon mode flag" that may possible prevent snowmix to bail out when it does not have a stdin opened. This flag is enabled with the '-d' paramter. Look also in the code for m_daemon_mode variable. Let me now if iit works. P
You are not completely wrong and I am lazy. Here is the thing. There are a lot writing log messages using fprintf(stderr, ...... At a certain time in the past and probably also now for some compilers this will mean the binary is hardcoded to write to a socket with the socket fd = 2. Now if you on linux run a program with no stdin, then the stderr socket can get a fd id not being 2 .... and as you can imagine ... that is not nice for writing data with fprintf to stderr will send data either to an...
Snowmix doesn't per ay require a windowing system. In the original development setup for Copenhagen Suborbitals rockket launches, was two mixers running 400km away on a launch control ship doing on site primary mixing and control and had no windowing system. Then back at the main studio, I would 4-5 setups concurrently for both speaker booth, control panel and overviewing and one for end mixing (call continuity) before going to CDN (Youtube). The first stage mixing all ran with no windowing system....
I mostly have been using tk/tcl .... a habit from the past. More modern take would be tk+python or maybe a more modern toolkit than tk. Do you know how to get video (or images, video is one image at a time) from a C++ binary like Snowmix into a GUI script (tcl and python + Tk and more) preferably using as little copying as possible? Many many many years ago you could have a frame area inside a Tk/Tcl script (wish) where another process could overlay video (using XVideo), but that model is not only...