mirror of
https://github.com/mpv-player/mpv
synced 2024-11-07 01:47:00 +01:00
dc2a4863af
Add an alternate mode for option parser objects (struct m_config) which is not inherently tied to any particular instance of an option value struct. Instead, this type or parsers can be used to initialize defaults in or parse values into a struct given as a parameter. They do not have the save slot functionality used for main player configuration. The new functionality will be used to replace the separate subopt_helper.c parsing code that is currently used to parse per-object suboptions in VOs etc. Previously, option default values were handled by initializing them in external code before creating a parser. This initialization was done with constants even for dynamically-allocated types like strings. Because trying to free a pointer to a constant would cause a crash when trying to replace the default with another value, parser initialization code then replaced all the original defaults with dynamically-allocated copies. This replace-with-copy behavior is no longer supported for new-style options; instead the option definition itself may contain a default value (new OPTDEF macros), and the new function m_config_initialize() is used to set all options to their default values. Convert the existing initialized dynamically allocated options in main config (the string options --dumpfile, --term-osd-esc, --input=conf) to use this. Other non-dynamic ones could be later converted to use this style of initialization too. There's currently no public call to free all dynamically allocated options in a given option struct because I intend to use talloc functionality for that (make them children of the struct and free with it).
74 lines
2.0 KiB
C
74 lines
2.0 KiB
C
#include <stddef.h>
|
|
|
|
#include "config.h"
|
|
#include "defaultopts.h"
|
|
#include "options.h"
|
|
|
|
void set_default_mplayer_options(struct MPOpts *opts)
|
|
{
|
|
*opts = (const struct MPOpts){
|
|
.audio_driver_list = NULL,
|
|
.video_driver_list = NULL,
|
|
.fixed_vo = 1,
|
|
.softvol_max = 110,
|
|
.ao_buffersize = -1,
|
|
.monitor_pixel_aspect = 1.0,
|
|
.vo_panscanrange = 1.0,
|
|
.cursor_autohide_delay = 1000,
|
|
.vo_gamma_gamma = 1000,
|
|
.vo_gamma_brightness = 1000,
|
|
.vo_gamma_contrast = 1000,
|
|
.vo_gamma_saturation = 1000,
|
|
.vo_gamma_hue = 1000,
|
|
.osd_level = 1,
|
|
.osd_duration = 1000,
|
|
.loop_times = -1,
|
|
.ordered_chapters = 1,
|
|
.chapter_merge_threshold = 100,
|
|
.stream_cache_min_percent = 20.0,
|
|
.stream_cache_seek_min_percent = 50.0,
|
|
.chapterrange = {-1, -1},
|
|
.edition_id = -1,
|
|
.user_correct_pts = -1,
|
|
.initial_audio_sync = 1,
|
|
.term_osd = 1,
|
|
.consolecontrols = 1,
|
|
.doubleclick_time = 300,
|
|
.audio_id = -1,
|
|
.video_id = -1,
|
|
.sub_id = -1,
|
|
.extension_parsing = 1,
|
|
.audio_output_channels = 2,
|
|
.audio_output_format = -1, // AF_FORMAT_UNKNOWN
|
|
.playback_speed = 1.,
|
|
.drc_level = 1.,
|
|
.movie_aspect = -1.,
|
|
.flip = -1,
|
|
.vd_use_slices = 1,
|
|
.sub_auto = 1,
|
|
#ifdef CONFIG_ASS
|
|
.ass_enabled = 1,
|
|
#endif
|
|
.ass_font_scale = 1,
|
|
.ass_vsfilter_aspect_compat = 1,
|
|
.use_embedded_fonts = 1,
|
|
|
|
.lavc_param = {
|
|
.workaround_bugs = 1, // autodetect
|
|
.error_concealment = 3,
|
|
},
|
|
.input = {
|
|
.key_fifo_size = 7,
|
|
.ar_delay = 100,
|
|
.ar_rate = 8,
|
|
.use_joystick = 1,
|
|
.use_lirc = 1,
|
|
.use_lircc = 1,
|
|
#ifdef CONFIG_APPLE_REMOTE
|
|
.use_ar = 1,
|
|
#endif
|
|
.default_bindings = 1,
|
|
}
|
|
};
|
|
}
|