The state_root::new_message is now handled in host.cpp, which processed
all messages, even those intended for reflector.
As a solution, the new_message callback of state_root processes only
messages for it and puts remaining messages back to the pool with the
new function module_store_message() that doesn't call the new_message
callback.
erase should_exit_callbacks before calling broadcast_should_exit
The destructor is called after most of the modules are destroyed but the
should_exit callbacks are not unregistered (it is not supposed to be
required since it should be called only to unblock blocking modules
calls to allow destroying them).
The management of should_exit events should be also be shared with the
transcoding reflector that uses some parts that may depend upon this
functionality.
This is not purely a refactorization but slightly changes behavior,
namely the shared state cleanup is done in a destructor, not by
`uv.stop()` as it used to be.
see GH-307
- removed `needs_mainloop` attribute and deduce if mainloop is needed
from the presence of _run callback (the information is now redundant
only displays needing/running mainloop should announce _run callback)
- run the custom mainloop (currently only Syphon!) only when display
doesn't run its mainloop. This allows running Syphon and GL/SDL
display because it connects to the display mainloop.
If user didn't set anything on command line, do not override the default
value of `log_level` specified by the initializer.
This is a bit contraintuitive if a developer sets the value ad hoc to a
different val, it won't take effect.
lrand48() is now called in rtp_init_if() prior to init_rng() to get
random port offset. But when not seeded, first call of lrand48() return
always 0 (with glibc 2.37).
The original name was now slightly misleading since there is also bob
and linear deinterlators.
Also for user it is "double_framerate", not corresponding with the
original file name (underscore instead of minus sign).
+ moved to C
Fixed some of (easy) newly detected Coverity bugs. Those are mostly
innocent ones (performance) and not new (detected because of new release
of Coverity).