Handle unsupported modulation and DVB-S code rates in
getDVBSDataBitrate() and stop checkBitrates() when no valid bitrate
can be calculated.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
The modulation and FEC switches in getDVBSDataBitrate() did not define values
for unsupported settings, allowing execution to continue with uninitialized
bitrate calculation inputs. Return an invalid bitrate for unsupported settings
and check the result before using it.
Avoid passing an invalid bitrate to still-image TS generation, and keep
modulateSample() running so the existing null transport-stream packet handling
can continue to produce samples when generation cannot proceed.
Coverity identified these paths as uninitialized scalar variables
(UNINIT).
Initialize the MPEG transport stream, IQ symbol, and UDP buffers to zero to
eliminate cppcheck UNINIT_CTOR warnings. This ensures the buffers have a
defined initial state before they are accessed during DATV modulation and
avoids undefined behavior from reading uninitialized data.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
Initialize previously uninitialized DATVModSource members to safe default
values to eliminate cppcheck UNINIT_CTOR warnings and prevent undefined
behavior from reading uninitialized state.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
The same fix as da31464dd for the plugins whose applySettings takes the key list first, which
that sweep missed: 35 channels, modulators, sinks, sources and one MIMO device copied the
whole settings struct on every message, so a GUI message with no keys arriving just after an
API patch put the old values back. The DSD demodulator lost the deviation set at creation
this way.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>