UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
settings.cpp File Reference
#include <iostream>
#include <algorithm>
#include <random>
#include "settings.hpp"
#include "available_settings.hpp"
Include dependency graph for settings.cpp:

Go to the source code of this file.

Functions

static void addDevOpt (Settings *settings, const Device &dev, const char *parent)
 
static void fec_auto_callback (Option &opt, bool, void *)
 
static void fec_builder_callback (Option &opt, bool subopt, void *)
 

Variables

struct { 
 
   Option::Callback::fcn_type   callback 
 
   const char *   name 
 
} optionCallbacks [] 
 
struct { 
 
   const char *   defaultVal 
 
   bool   enabled 
 
   const char *   limit 
 
   const char *   name 
 
   const char *   param 
 
   const char *   parent 
 
   Option::OptType   type 
 
} optionList [] 
 

Function Documentation

◆ addDevOpt()

static void addDevOpt ( Settings * settings,
const Device & dev,
const char * parent )
static

Definition at line 443 of file settings.cpp.

443 {
444 settings->addOption(dev.type + ".device",
446 "",
447 "",
448 false,
449 parent,
450 dev.type);
451}
@ StringOpt
Definition settings.hpp:29
Option & addOption(std::string name, Option::OptType type, const std::string &param, const std::string &value="", bool enabled=true, const std::string &parent="", const std::string &limit="")
Definition settings.cpp:397
const char * parent
Definition settings.cpp:198
std::string type

References Settings::addOption(), parent, Option::StringOpt, and Device::type.

Referenced by Settings::populateDeviceSettings().

Here is the call graph for this function:

◆ fec_auto_callback()

static void fec_auto_callback ( Option & opt,
bool ,
void *  )
static

Definition at line 171 of file settings.cpp.

171 {
172 Settings *settings = opt.getSettings();
173
174 if(!settings->getOption("network.fec.auto").isEnabled())
175 return;
176
177 Option &fecOpt = settings->getOption("network.fec.type");
178 const std::string &video_compress = settings->getOption("video.compress").getValue();
179
180 if(video_compress == ""){
181 fecOpt.setValue("");
182 } else if(video_compress == "jpeg"){
183 fecOpt.setValue("ldgm");
184 } else if(video_compress == "libavcodec"
185 && settings->getOption("video.compress.libavcodec.codec").getValue() == "MJPEG"){
186 fecOpt.setValue("ldgm");
187 } else {
188 fecOpt.setValue("rs");
189 }
190}
std::string getValue() const
Definition settings.cpp:26
Settings * getSettings()
Definition settings.cpp:129
bool isEnabled() const
Definition settings.hpp:61
virtual void setValue(const std::string &val, bool suppressCallback=false)
Definition settings.cpp:73
const Option & getOption(const std::string &opt) const
Definition settings.cpp:384

References Settings::getOption(), Option::getSettings(), Option::getValue(), Option::isEnabled(), Option::settings, and Option::setValue().

Here is the call graph for this function:

◆ fec_builder_callback()

static void fec_builder_callback ( Option & opt,
bool subopt,
void *  )
static

Definition at line 141 of file settings.cpp.

141 {
142 if(!subopt)
143 return;
144
145 Settings *settings = opt.getSettings();
146 Option &fecOpt = settings->getOption("network.fec");
147 bool enabled = settings->getOption("network.fec.enabled").isEnabled();
148
149 std::string type = settings->getOption("network.fec.type").getValue();
150
151 if(type.empty() || !enabled){
152 fecOpt.setValue("");
153 } else if(type == "mult"){
154 fecOpt.setValue("mult:" + settings->getOption("network.fec.mult.factor").getValue());
155 } else if(type == "rs"){
156 fecOpt.setValue("rs:"
157 + settings->getOption("network.fec.rs.k").getValue()
158 + ":" + settings->getOption("network.fec.rs.n").getValue());
159 } else if(type == "ldgm"){
160 fecOpt.setValue("ldgm:"
161 + settings->getOption("network.fec.ldgm.k").getValue()
162 + ":" + settings->getOption("network.fec.ldgm.m").getValue()
163 + ":" + settings->getOption("network.fec.ldgm.c").getValue()
164 + settings->getOption("network.fec.ldgm.device").getParam()
165 + settings->getOption("network.fec.ldgm.device").getValue());
166 }
167
168
169}
std::string getParam() const
Definition settings.cpp:30
Option::OptType type
Definition settings.cpp:194
bool enabled
Definition settings.cpp:197

References Option::enabled, Settings::getOption(), Option::getParam(), Option::getSettings(), Option::getValue(), Option::isEnabled(), Option::settings, Option::setValue(), and Option::type.

Here is the call graph for this function:

Variable Documentation

◆ callback

◆ defaultVal

const char* defaultVal

Definition at line 196 of file settings.cpp.

◆ enabled

◆ limit

const char* limit

Definition at line 199 of file settings.cpp.

Referenced by Settings::addOption(), Option::addSuboption(), and init().

◆ name

const char* name

Definition at line 193 of file settings.cpp.

Referenced by resource_manager_t::acquire(), Settings::addOption(), append(), audio_alsa_list_devices(), audio_alsa_probe(), audio_ca_get_device_by_name(), audio_ca_probe(), audio_cap_alsa_init(), audio_cap_alsa_probe(), audio_cap_ca_help(), audio_cap_jack_help(), audio_cap_jack_init(), audio_cap_pipewire_probe(), audio_cap_sdi_probe_common(), audio_cap_sdl_mixer_probe(), audio_cap_testcard_probe(), audio_cap_wasapi_probe(), audio_filter_init(), audio_jack_probe(), audio_play_alsa_init(), audio_play_alsa_probe(), audio_play_ca_help(), audio_play_jack_help(), audio_play_jack_init(), audio_play_pw_probe(), audio_play_sdi_probe_common(), audio_play_wasapi_probe(), audio_portaudio_probe(), config_file_open(), crc32file(), create_implicit_dir(), decompress_init_multi(), dev_add_option(), display_aja_probe(), display_bluefish444_probe(), display_caca_probe(), display_decklink_probe(), display_deltacast_probe(), display_deltacast_reconfigure(), display_dummy_init(), display_dvs_init(), display_dvs_probe(), display_file_probe(), display_ndi_probe(), display_panogl_probe(), display_sage_probe(), display_sdl2_probe(), display_sdl_probe(), display_v4l2_probe(), display_xrgl_probe(), enable_export(), keyboard_control::impl::exec_local_command(), find_best_decompress(), get_argv_program_name(), get_cname(), get_codec_from_name(), get_codec_from_name_wo_alias(), get_codec_name(), get_configured_capture_aliases(), get_device_config_from_file(), get_input_modes(), get_keycode_name(), get_module_identifier(), get_property(), get_receiver_index(), get_replica_mod_name(), get_slave_param_from_file(), get_tile_count(), get_video_desc_from_string(), glfw_key_callback(), is_library_registered(), AvailableSettings::isAvailable(), jack_start(), list_audio_codecs(), load_library(), load_video_frame(), main(), output_summary(), parse_codecs(), parse_fmt(), parse_log_cfg(), parse_params(), portaudio_select_device_by_name(), print_capabilities(), print_help_item(), printf_duration(), probe_compress(), probe_device(), register_library(), resource_manager_t::release(), rm_acquire_shared_lock(), rm_get_shm(), rm_release_shared_lock(), rm_singleton(), run_tests(), save_video_frame(), save_video_frame_as_pnm(), save_video_frame_as_y4m(), screenshot(), set_thread_name(), show_codec_help(), show_help(), show_help(), show_help(), show_screen_help(), spout_sender_register(), test_helper(), testcard_show_codec_help(), usage(), usage(), usage(), usage(), usage(), usage(), vidcap_aja_probe(), vidcap_decklink_probe(), vidcap_dshow_probe_internal(), vidcap_dvs_probe(), vidcap_pw_probe(), vidcap_screen_osx_probe(), vidcap_screen_pw_probe(), vidcap_screen_win_probe(), vidcap_screen_x11_probe(), vidcap_spout_init(), vidcap_spout_probe(), vidcap_v4l2_probe(), vidcap_ximea_probe(), vidcap_ximea_show_help(), video_reader_callback(), and wait_for_channel().

◆ [struct]

const struct { ... } optionCallbacks[]
Initial value:
= {
{"network.fec", fec_builder_callback},
{"video.compress", fec_auto_callback},
{"network.fec.auto", fec_auto_callback},
}
static void fec_builder_callback(Option &opt, bool subopt, void *)
Definition settings.cpp:141
static void fec_auto_callback(Option &opt, bool, void *)
Definition settings.cpp:171

Referenced by Settings::Settings().

◆ [struct]

const struct { ... } optionList[]

Referenced by Settings::Settings().

◆ param

◆ parent

const char* parent

Definition at line 198 of file settings.cpp.

Referenced by keyboard_control::impl::impl(), module_raii::module_raii(), replica::replica(), state_gl::state_gl(), state_sdl::state_sdl(), state_video_decoder::state_video_decoder(), addDevOpt(), Settings::addOption(), audio_cap_alsa_init(), audio_cap_ca_init(), audio_cap_jack_init(), audio_cap_none_init(), audio_cap_pipewire_init(), audio_cap_portaudio_init(), audio_cap_sdi_init(), audio_cap_sdl_mixer_init(), audio_cap_testcard_init(), audio_cap_wasapi_init(), audio_capture_init(), audio_decoder_init(), audio_filter_init(), capture_filter_init(), cf_crop_init(), cf_deinterlace_init(), cf_text_init(), cineform_compress_init(), compress_init(), display_aggregate_init(), display_blend_init(), display_bluefish444_init(), display_caca_init(), display_conference_init(), display_decklink_init(), display_deltacast_init(), display_drm_init(), display_dummy_init(), display_dump_init(), display_dvs_init(), display_file_init(), display_gl_init(), display_multiplier_init(), display_ndi_init(), display_null_init(), display_panogl_init(), display_pipe_init(), display_sage_init(), display_sdl2_init(), display_sdl_init(), display_unix_sock_init(), display_unix_sock_init_no_preview(), display_unix_sock_init_preview(), display_v4l2_init(), display_xrgl_init(), export_init(), get_module_identifier(), hd_rum_decompress_init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), init(), initialize_video_capture(), initialize_video_display(), j2k_compress_init(), module_register(), recompress_init(), tx_init(), and video_decoder_init().

◆ type