diff --git a/src/audio/playback/alsa.c b/src/audio/playback/alsa.c index 038043903..6f6ec8f94 100644 --- a/src/audio/playback/alsa.c +++ b/src/audio/playback/alsa.c @@ -430,9 +430,9 @@ static void write_fill(struct state_alsa_playback *s) { free(f.data); } -ADD_TO_PARAM(alsa_playback_buffer, "alsa-playback-buffer", "* alsa-playback-buffer=\n" +ADD_TO_PARAM("alsa-playback-buffer", "* alsa-playback-buffer=\n" " Buffer length. Can be used to balance robustness and latency, in microseconds.\n"); -ADD_TO_PARAM(alsa_play_period_size, "alsa-play-period-size", "* alsa-play-period-size=\n" +ADD_TO_PARAM("alsa-play-period-size", "* alsa-play-period-size=\n" " ALSA playback period size in frames (default is minimal) .\n"); /** * @todo @@ -790,7 +790,7 @@ init_local_config_with_workaround(char const * pcm_node_name) return lconf; } -ADD_TO_PARAM(alsa_playback_api, "alsa-playback-api", "* alsa-playback-api={thread|sync|async}\n" +ADD_TO_PARAM("alsa-playback-api", "* alsa-playback-api={thread|sync|async}\n" " ALSA API.\n"); static void * audio_play_alsa_init(const char *cfg) { diff --git a/src/audio/playback/coreaudio.cpp b/src/audio/playback/coreaudio.cpp index 2271432f8..7afe46fff 100644 --- a/src/audio/playback/coreaudio.cpp +++ b/src/audio/playback/coreaudio.cpp @@ -152,7 +152,7 @@ static bool audio_play_ca_ctl(void *state [[gnu::unused]], int request, void *da } } -ADD_TO_PARAM(ca_disable_adaptive_buf, "ca-disable-adaptive-buf", "* ca-disable-adaptive-buf\n" +ADD_TO_PARAM("ca-disable-adaptive-buf", "* ca-disable-adaptive-buf\n" " Core Audio - use fixed audio playback buffer instead of an adaptive one\n"); static int audio_play_ca_reconfigure(void *state, struct audio_desc desc) { diff --git a/src/control_socket.cpp b/src/control_socket.cpp index ac6546f95..6ef6d39a5 100644 --- a/src/control_socket.cpp +++ b/src/control_socket.cpp @@ -717,7 +717,7 @@ static void set_socket_nonblock(fd_t fd) { #endif } -ADD_TO_PARAM(control_accept_global, "control-accept-global", "* control-accept-global\n" +ADD_TO_PARAM("control-accept-global", "* control-accept-global\n" " Open control socket to public network.\n"); static void * control_thread(void *args) { diff --git a/src/host.cpp b/src/host.cpp index 0dd45d3ee..b590097f9 100644 --- a/src/host.cpp +++ b/src/host.cpp @@ -133,10 +133,10 @@ void common_cleanup(struct init_data *init) #endif } -ADD_TO_PARAM(stdout_buf, "stdout-buf", +ADD_TO_PARAM("stdout-buf", "* stdout-buf={no|line|full}\n" " Buffering for stdout\n"); -ADD_TO_PARAM(stderr_buf, "stderr-buf", +ADD_TO_PARAM("stderr-buf", "* stderr-buf={no|line|full}\n" " Buffering for stderr\n"); bool set_output_buffering() { @@ -518,7 +518,7 @@ void register_should_exit_callback(struct module *mod, void (*callback)(void *), free_response(r); } -ADD_TO_PARAM(errors_fatal, "errors-fatal", "* errors-fatal\n" +ADD_TO_PARAM("errors-fatal", "* errors-fatal\n" " Treats every error as a fatal (exits " PACKAGE_NAME ")\n"); /** * Soft version of exit_uv() checks errors-fatal command-line parameters and @@ -534,14 +534,14 @@ void error(int status) { } // some common parameters used within multiple modules -ADD_TO_PARAM(audio_buffer_len, "audio-buffer-len", "* audio-buffer-len=\n" +ADD_TO_PARAM("audio-buffer-len", "* audio-buffer-len=\n" " Sets length of software audio playback buffer (in ms, ALSA/Coreaudio/Portaudio/WASAPI)\n"); -ADD_TO_PARAM(audio_cap_frames, "audio-cap-frames", "* audio-cap-frames=\n" +ADD_TO_PARAM("audio-cap-frames", "* audio-cap-frames=\n" " Sets number of audio frames captured at once (CoreAudio)\n"); -ADD_TO_PARAM(audio_disable_adaptive_buffer, "audio-disable-adaptive-buffer", "* audio-disable-adaptive-buffer\n" +ADD_TO_PARAM("audio-disable-adaptive-buffer", "* audio-disable-adaptive-buffer\n" " Disables audio adaptive playback buffer (CoreAudio/JACK)\n"); -ADD_TO_PARAM(low_latency_audio, "low-latency-audio", "* low-latency-audio\n" +ADD_TO_PARAM("low-latency-audio", "* low-latency-audio\n" " Try to reduce audio latency at the expense of worse reliability\n"); -ADD_TO_PARAM(window_title, "window-title", "* window-title=\n" +ADD_TO_PARAM("window-title", "* window-title=<title>\n" " Use alternative window title (SDL/GL only)\n"); diff --git a/src/host.h b/src/host.h index e8fa6eb22..1b8b5eb27 100644 --- a/src/host.h +++ b/src/host.h @@ -159,17 +159,13 @@ extern std::unordered_map<std::string, std::string> commandline_params; * Introduces new parameter. Without calling that, parameter from command-line * would be rejected. * - * @todo - * Remove salt - use UNIQUE_NAME instead - * - * @param salt unique salt to be added to identifier. Must be a sequence - * of digits, underscores, lowercase and uppercase Latin letters. - * @param param parameter name ("-enclosed string) + * @param param parameter name * @param doc documentation - string */ -#define ADD_TO_PARAM(salt, param, doc) static void add_to_param_doc##salt(void) __attribute__((constructor));\ +#define ADD_TO_PARAM(param, doc) ADD_TO_PARAM_SALT(UNIQUE_NAME, param, doc) +#define ADD_TO_PARAM_SALT(salt, param, doc) static void MERGE_(add_to_param_doc_, salt)(void) __attribute__((constructor));\ \ -static void add_to_param_doc##salt(void) \ +static void MERGE_(add_to_param_doc_, salt)(void) \ {\ register_param(param, doc);\ }\ diff --git a/src/keyboard_control.cpp b/src/keyboard_control.cpp index ec10ab48e..69691fd45 100644 --- a/src/keyboard_control.cpp +++ b/src/keyboard_control.cpp @@ -144,7 +144,7 @@ keyboard_control::~keyboard_control() { stop(); // in case that it was not called explicitly } -ADD_TO_PARAM(disable_keyboard_control, "disable-keyboard-control", "* disable-keyboard-control\n" +ADD_TO_PARAM("disable-keyboard-control", "* disable-keyboard-control\n" " disables keyboard control (usable mainly for non-interactive runs)\n"); void keyboard_control::start() { diff --git a/src/rtp/ldgm.cpp b/src/rtp/ldgm.cpp index fdd86b179..d426014ef 100644 --- a/src/rtp/ldgm.cpp +++ b/src/rtp/ldgm.cpp @@ -199,7 +199,7 @@ void ldgm::set_params(unsigned int k, unsigned int m, unsigned int c, unsigned i m_coding_session->set_pcMatrix(filename); } -ADD_TO_PARAM(ldgm_device, "ldgm-device", "* ldgm-device={CPU|GPU}\n" +ADD_TO_PARAM("ldgm-device", "* ldgm-device={CPU|GPU}\n" " specify whether use CPU or GPU for LDGM\n"); void ldgm::init(unsigned int k, unsigned int m, unsigned int c, unsigned int seed) diff --git a/src/rtp/net_udp.cpp b/src/rtp/net_udp.cpp index c022910aa..7259c317b 100644 --- a/src/rtp/net_udp.cpp +++ b/src/rtp/net_udp.cpp @@ -726,11 +726,11 @@ static bool set_sock_opts_and_bind(fd_t fd, bool ipv6, uint16_t rx_port) { return true; } -ADD_TO_PARAM(udp_queue_len, "udp-queue-len", +ADD_TO_PARAM("udp-queue-len", "* udp-queue-len=<l>\n" " Use different queue size than default DEFAULT_MAX_UDP_READER_QUEUE_LEN\n"); #ifdef WIN32 -ADD_TO_PARAM(udp_disable_multi_socket, "udp-disable-multi-socket", +ADD_TO_PARAM("udp-disable-multi-socket", "* disable separate sockets for RX and TX (Win only)\n"); #endif /** diff --git a/src/rtp/video_decoders.cpp b/src/rtp/video_decoders.cpp index 83f567fda..c2dfa1027 100644 --- a/src/rtp/video_decoders.cpp +++ b/src/rtp/video_decoders.cpp @@ -836,7 +836,7 @@ static auto codec_list_to_str(const codec_t *codecs) { return oss.str(); } -ADD_TO_PARAM(decoder_use_codec, "decoder-use-codec", +ADD_TO_PARAM("decoder-use-codec", "* decoder-use-codec=<codec>\n" " Use specified pixel format for decoding (eg. v210). This overrides automatic\n" " choice. The pixel format must be supported by the video display.\n"); diff --git a/src/video_capture/aja.cpp b/src/video_capture/aja.cpp index 08a772b87..6ed08ec5e 100644 --- a/src/video_capture/aja.cpp +++ b/src/video_capture/aja.cpp @@ -300,7 +300,7 @@ vidcap_state_aja::vidcap_state_aja(unordered_map<string, string> const & paramet } #ifndef _MSC_VER -ADD_TO_PARAM(aja_fourcc, "aja-fourcc", "* aja-fourcc\n" +ADD_TO_PARAM("aja-fourcc", "* aja-fourcc\n" " Specifies application FourCC for AJA.\n"); #endif void vidcap_state_aja::Init() diff --git a/src/video_compress/libavcodec.cpp b/src/video_compress/libavcodec.cpp index 1fc95535d..d63e90a39 100644 --- a/src/video_compress/libavcodec.cpp +++ b/src/video_compress/libavcodec.cpp @@ -880,7 +880,7 @@ static list<enum AVPixelFormat> get_available_pix_fmts(struct video_desc in_desc } -ADD_TO_PARAM(lavc_use_codec, "lavc-use-codec", +ADD_TO_PARAM("lavc-use-codec", "* lavc-use-codec=<c>\n" " Restrict codec to use user specified pixel fmt. Use either FFmpeg name\n" " (eg. nv12, yuv422p10le or yuv444p10le) or UltraGrid pixel formats names\n" @@ -1582,7 +1582,7 @@ static void setparam_jpeg(AVCodecContext *codec_ctx, struct setparam_param *para } } -ADD_TO_PARAM(lavc_h264_interlaced_dct, "lavc-h264-interlaced-dct", "* lavc-h264-interlaced-dct\n" +ADD_TO_PARAM("lavc-h264-interlaced-dct", "* lavc-h264-interlaced-dct\n" " Use interlaced DCT for H.264\n"); static void configure_x264_x265(AVCodecContext *codec_ctx, struct setparam_param *param) { diff --git a/src/video_decompress.cpp b/src/video_decompress.cpp index 6963c58f6..4ae9288ab 100644 --- a/src/video_decompress.cpp +++ b/src/video_decompress.cpp @@ -62,7 +62,7 @@ struct state_decompress { void *state; ///< decoder driver state }; -ADD_TO_PARAM(decompress, "decompress", "* decompress=<name>[:<codec>]\n" +ADD_TO_PARAM("decompress", "* decompress=<name>[:<codec>]\n" " Forces specified decompress module (will fail if not able to decompress\n" " the received compression). Optionaly also force codec to decode to." " See 'uv --list-modules' to see available decompress modules.\n"); diff --git a/src/video_decompress/cmpto_j2k.cpp b/src/video_decompress/cmpto_j2k.cpp index 05196f57f..21b9a9799 100644 --- a/src/video_decompress/cmpto_j2k.cpp +++ b/src/video_decompress/cmpto_j2k.cpp @@ -196,13 +196,13 @@ next_image: return NULL; } -ADD_TO_PARAM(j2k_dec_mem_limit, "j2k-dec-mem-limit", "* j2k-dec-mem-limit=<limit>\n" +ADD_TO_PARAM("j2k-dec-mem-limit", "* j2k-dec-mem-limit=<limit>\n" " J2K max memory usage in bytes.\n"); -ADD_TO_PARAM(j2k_dec_tile_limit, "j2k-dec-tile-limit", "* j2k-dec-tile-limit=<limit>\n" +ADD_TO_PARAM("j2k-dec-tile-limit", "* j2k-dec-tile-limit=<limit>\n" " number of tiles decoded at moment (less to reduce latency, more to increase performance, 0 unlimited)\n"); -ADD_TO_PARAM(j2k_dec_queue_len, "j2k-dec-queue-len", "* j2k-queue-len=<len>\n" +ADD_TO_PARAM("j2k-dec-queue-len", "* j2k-queue-len=<len>\n" " max queue len\n"); -ADD_TO_PARAM(j2k_dec_encoder_queue, "j2k-dec-encoder-queue", "* j2k-encoder-queue=<len>\n" +ADD_TO_PARAM("j2k-dec-encoder-queue", "* j2k-encoder-queue=<len>\n" " max number of frames hold by encoder\n"); static void * j2k_decompress_init(void) { diff --git a/src/video_decompress/libavcodec.c b/src/video_decompress/libavcodec.c index a244ed699..1f612c5e1 100644 --- a/src/video_decompress/libavcodec.c +++ b/src/video_decompress/libavcodec.c @@ -215,12 +215,12 @@ static const struct decoder_info decoders[] = { { AV1, AV_CODEC_ID_AV1, NULL, { NULL } }, }; -ADD_TO_PARAM(force_lavd_decoder, "force-lavd-decoder", "* force-lavd-decoder=<decoder>[:<decoder2>...]\n" +ADD_TO_PARAM("force-lavd-decoder", "* force-lavd-decoder=<decoder>[:<decoder2>...]\n" " Forces specified Libavcodec decoder. If more need to be specified, use colon as a delimiter.\n" " Use '-c libavcodec:help' to see available decoders.\n"); #ifdef HWACC_COMMON -ADD_TO_PARAM(force_hw_accel, "use-hw-accel", "* use-hw-accel\n" +ADD_TO_PARAM("use-hw-accel", "* use-hw-accel\n" " Tries to use hardware acceleration. \n"); #endif static bool configure_with(struct state_libavcodec_decompress *s, @@ -799,7 +799,7 @@ static decompress_status libavcodec_decompress(void *state, unsigned char *dst, return res; } -ADD_TO_PARAM(lavd_accept_corrputed, "lavd-accept-corrupted", +ADD_TO_PARAM("lavd-accept-corrupted", "* lavd-accept-corrupted[=no]\n" " Pass corrupted frames to decoder. If decoder isn't error-resilient,\n" " may crash! Use \"no\" to disable even if enabled by default.\n"); @@ -873,10 +873,10 @@ static const struct decode_from_to dec_template[] = { #define SUPP_CODECS_CNT (sizeof supp_codecs / sizeof supp_codecs[0]) #define DEC_TEMPLATE_CNT (sizeof dec_template / sizeof dec_template[0]) /// @todo to remove -ADD_TO_PARAM(lavd_use_10bit, "lavd-use-10bit", +ADD_TO_PARAM("lavd-use-10bit", "* lavd-use-10bit\n" " Do not use, use \"--param decoder-use-codec=v210\" instead.\n"); -ADD_TO_PARAM(lavd_use_codec, "lavd-use-codec", +ADD_TO_PARAM("lavd-use-codec", "* lavd-use-codec=<codec>\n" " Do not use, use \"--param decoder-use-codec=<codec>\" instead.\n"); static const struct decode_from_to *libavcodec_decompress_get_decoders() {