#ifndef MPLAYER_OPTIONS_H #define MPLAYER_OPTIONS_H #include #include #include "m_option.h" #include "common/common.h" typedef struct mp_vo_opts { struct m_obj_settings *video_driver_list; bool taskbar_progress; bool snap_window; int drag_and_drop; bool ontop; int ontop_level; bool fullscreen; bool border; bool title_bar; bool all_workspaces; bool window_minimized; bool window_maximized; int focus_on; int screen_id; char *screen_name; int fsscreen_id; char *fsscreen_name; char *winname; char *appid; int content_type; int x11_netwm; int x11_bypass_compositor; int x11_present; bool x11_wid_title; bool cursor_passthrough; bool native_keyrepeat; float panscan; float zoom; float pan_x, pan_y; float align_x, align_y; float scale_x, scale_y; float margin_x[2]; float margin_y[2]; int unscaled; struct m_geometry geometry; struct m_geometry autofit; struct m_geometry autofit_larger; struct m_geometry autofit_smaller; double window_scale; bool auto_window_resize; bool keepaspect; bool keepaspect_window; bool hidpi_window_scale; bool native_fs; bool native_touch; bool show_in_taskbar; int64_t WinID; float force_monitor_aspect; float monitor_pixel_aspect; bool force_render; bool force_window_position; int backdrop_type; int window_affinity; char *mmcss_profile; int window_corners; double display_fps_override; double timing_offset; int video_sync; struct m_geometry android_surface_size; int swapchain_depth; // max number of images to render ahead struct m_geometry video_crop; } mp_vo_opts; // Subtitle options needed by the subtitle decoders/renderers. struct mp_subtitle_opts { float sub_fps; float sub_speed; bool sub_forced_events_only; bool stretch_dvd_subs; bool stretch_image_subs; bool image_subs_video_res; bool sub_fix_timing; bool sub_stretch_durations; bool sub_scale_by_window; bool sub_scale_with_window; bool ass_scale_with_window; struct osd_style_opts *sub_style; float sub_scale; float sub_gauss; bool sub_gray; bool ass_enabled; float ass_line_spacing; bool ass_use_margins; bool sub_use_margins; bool ass_vsfilter_aspect_compat; int ass_vsfilter_color_compat; bool ass_vsfilter_blur_compat; bool sub_vsfilter_bidi_compat; bool use_embedded_fonts; char **ass_style_override_list; char *ass_styles_file; int ass_hinting; int ass_shaper; bool ass_justify; bool sub_clear_on_seek; int teletext_page; bool sub_past_video_end; char **sub_avopts; }; // Options for both primary and secondary subs. struct mp_subtitle_shared_opts { float sub_delay[2]; float sub_pos[2]; bool sub_visibility[2]; int ass_style_override[2]; }; struct mp_sub_filter_opts { bool sub_filter_SDH; bool sub_filter_SDH_harder; char *sub_filter_SDH_enclosures; bool rf_enable; bool rf_plain; char **rf_items; char **jsre_items; bool rf_warn; }; struct mp_osd_render_opts { float osd_bar_align_x; float osd_bar_align_y; float osd_bar_w; float osd_bar_h; float osd_bar_border_size; float osd_scale; bool osd_scale_by_window; struct osd_style_opts *osd_style; bool force_rgba_osd; }; typedef struct MPOpts { bool property_print_help; bool use_terminal; char *dump_stats; int verbose; bool msg_really_quiet; char **msg_levels; bool msg_color; bool msg_module; bool msg_time; char *log_file; int operation_mode; char **reset_options; char **script_files; char **script_opts; bool js_memory_report; bool lua_load_osc; bool lua_load_ytdl; char *lua_ytdl_format; char **lua_ytdl_raw_options; bool lua_load_stats; bool lua_load_console; int lua_load_auto_profiles; bool lua_load_select; bool auto_load_scripts; bool audio_exclusive; bool ao_null_fallback; bool audio_stream_silence; float audio_wait_open; int force_vo; float softvol_volume; int rgain_mode; float rgain_preamp; // Set replaygain pre-amplification bool rgain_clip; // Enable/disable clipping prevention float rgain_fallback; int softvol_mute; float softvol_max; float softvol_gain; float softvol_gain_min; float softvol_gain_max; int gapless_audio; mp_vo_opts *vo; struct ao_opts *ao_opts; char *wintitle; char *media_title; struct mp_csp_equalizer_opts *video_equalizer; int stop_screensaver; int cursor_autohide_delay; bool cursor_autohide_fs; struct mp_subtitle_opts *subs_rend; struct mp_subtitle_shared_opts *subs_shared; struct mp_sub_filter_opts *subs_filt; struct mp_osd_render_opts *osd_rend; int osd_level; int osd_duration; bool osd_fractions; int osd_on_seek; bool video_osd; bool untimed; char *stream_dump; bool stop_playback_on_init_failure; int loop_times; int loop_file; bool shuffle; bool ordered_chapters; char *ordered_chapters_files; int chapter_merge_threshold; double chapter_seek_threshold; char *chapter_file; bool merge_files; bool quiet; bool load_config; char *force_configdir; bool use_filedir_conf; int hls_bitrate; int edition_id; bool initial_audio_sync; double sync_max_video_change; double sync_max_audio_change; int sync_max_factor; int hr_seek; float hr_seek_demuxer_offset; bool hr_seek_framedrop; float audio_delay; float default_max_pts_correction; int autosync; int frame_dropping; bool video_latency_hacks; int term_osd; bool term_osd_bar; char *term_osd_bar_chars; char *term_title; char *playing_msg; char *osd_playing_msg; int osd_playing_msg_duration; char *status_msg; char *osd_status_msg; char *osd_msg[3]; int player_idle_mode; char **input_commands; bool consolecontrols; int playlist_pos; struct m_rel_time play_start; struct m_rel_time play_end; struct m_rel_time play_length; int play_dir; bool rebase_start_time; int play_frames; double ab_loop[2]; int ab_loop_count; double step_sec; bool position_resume; bool position_check_mtime; bool position_save_on_quit; bool write_filename_in_watch_later_config; bool ignore_path_in_watch_later_config; char *watch_later_dir; char **watch_later_options; bool pause; int keep_open; bool keep_open_pause; double image_display_duration; char *lavfi_complex; int stream_id[2][STREAM_TYPE_COUNT]; char **stream_lang[STREAM_TYPE_COUNT]; bool stream_auto_sel; int subs_with_matching_audio; bool subs_match_os_language; int subs_fallback; int subs_fallback_forced; int audio_display; char **display_tags; char **audio_files; char *demuxer_name; bool demuxer_thread; double demux_termination_timeout; bool demuxer_cache_wait; bool prefetch_open; char *audio_demuxer_name; char *sub_demuxer_name; bool cache_pause; bool cache_pause_initial; float cache_pause_wait; struct image_writer_opts *screenshot_image_opts; char *screenshot_template; char *screenshot_dir; bool screenshot_sw; struct m_channels audio_output_channels; int audio_output_format; int force_srate; double playback_speed; bool pitch_correction; struct m_obj_settings *vf_settings; struct m_obj_settings *af_settings; struct filter_opts *filter_opts; struct dec_wrapper_opts *dec_wrapper; char **sub_name; char **sub_paths; char **audiofile_paths; char **coverart_files; char **external_files; bool autoload_files; int sub_auto; char **sub_auto_exts; int audiofile_auto; char **audiofile_auto_exts; int coverart_auto; char **coverart_auto_exts; bool coverart_whitelist; bool osd_bar_visible; int w32_priority; struct bluray_opts *stream_bluray_opts; struct cdda_opts *stream_cdda_opts; struct dvb_opts *stream_dvb_opts; struct lavf_opts *stream_lavf_opts; char *bluray_device; struct demux_rawaudio_opts *demux_rawaudio; struct demux_rawvideo_opts *demux_rawvideo; struct demux_playlist_opts *demux_playlist; struct demux_lavf_opts *demux_lavf; struct demux_mkv_opts *demux_mkv; struct demux_cue_opts *demux_cue; struct demux_opts *demux_opts; struct demux_cache_opts *demux_cache_opts; struct stream_opts *stream_opts; struct vd_lavc_params *vd_lavc_params; struct ad_lavc_params *ad_lavc_params; struct input_opts *input_opts; // may be NULL if encoding is not compiled-in struct encode_opts *encode_opts; char *ipc_path; char *ipc_client; struct mp_resample_opts *resample_opts; struct ra_ctx_opts *ra_ctx_opts; struct gl_video_opts *gl_video_opts; struct gl_next_opts *gl_next_opts; struct angle_opts *angle_opts; struct opengl_opts *opengl_opts; struct vulkan_opts *vulkan_opts; struct vulkan_display_opts *vulkan_display_opts; struct spirv_opts *spirv_opts; struct d3d11_opts *d3d11_opts; struct d3d11va_opts *d3d11va_opts; struct macos_opts *macos_opts; struct drm_opts *drm_opts; struct wayland_opts *wayland_opts; struct wingl_opts *wingl_opts; struct cuda_opts *cuda_opts; struct dvd_opts *dvd_opts; struct vaapi_opts *vaapi_opts; struct sws_opts *sws_opts; struct zimg_opts *zimg_opts; int cuda_device; } MPOpts; struct cuda_opts { int cuda_device; }; struct dvd_opts { int angle; int speed; char *device; }; struct filter_opts { int deinterlace; int field_parity; }; extern const struct m_sub_options vo_sub_opts; extern const struct m_sub_options cuda_conf; extern const struct m_sub_options dvd_conf; extern const struct m_sub_options mp_subtitle_sub_opts; extern const struct m_sub_options mp_subtitle_shared_sub_opts; extern const struct m_sub_options mp_sub_filter_opts; extern const struct m_sub_options mp_osd_render_sub_opts; extern const struct m_sub_options filter_conf; extern const struct m_sub_options resample_conf; extern const struct m_sub_options stream_conf; extern const struct m_sub_options dec_wrapper_conf; extern const struct m_sub_options mp_opt_root; #endif