1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-27 17:42:17 +00:00
mpv/mpvcore/options.h
wm4 216e8320b0 video: make it possible to scale/pan the video by arbitrary amounts
Add --video-align-x/y, --video-pan-x/y, --video-scale options and
properties. See the additions to the manpage for description and
semantics.

These transformations are intentionally done on top of panscan. Unlike
the (now removed) --panscanrange option, this doesn't affect the default
panscan behavior. (Although panscan itself becomes kind of useless if
the new options are used.)
2013-08-19 13:03:08 +02:00

281 lines
6.1 KiB
C

#ifndef MPLAYER_OPTIONS_H
#define MPLAYER_OPTIONS_H
#include <stdbool.h>
#include <stdint.h>
#include "mpvcore/m_option.h"
typedef struct mp_vo_opts {
struct m_obj_settings *video_driver_list;
int screenwidth;
int screenheight;
int ontop;
int fullscreen;
int screen_id;
int fsscreen_id;
char *winname;
char** fstype_list;
int native_keyrepeat;
float panscan;
float zoom;
float pan_x, pan_y;
float align_x, align_y;
struct m_geometry geometry;
struct m_geometry autofit;
struct m_geometry autofit_larger;
int fsmode;
int keepaspect;
int border;
int nomouse_input;
int enable_mouse_movements;
int cursor_autohide_delay;
int64_t WinID;
float force_monitor_aspect;
float monitor_pixel_aspect;
int force_window_position;
int native_fs;
} mp_vo_opts;
typedef struct MPOpts {
char **reset_options;
struct m_obj_settings *audio_driver_list;
int fixed_vo;
int softvol;
float mixer_init_volume;
int mixer_init_mute;
int volstep;
float softvol_max;
int gapless_audio;
mp_vo_opts vo;
char *wintitle;
int force_rgba_osd;
// ranges -100 - 100, 1000 if the vo default should be used
int gamma_gamma;
int gamma_brightness;
int gamma_contrast;
int gamma_saturation;
int gamma_hue;
int stop_screensaver;
int requested_colorspace;
int requested_input_range;
int requested_output_range;
char *audio_decoders;
char *video_decoders;
int osd_level;
int osd_duration;
int osd_fractions;
int untimed;
char *stream_capture;
char *stream_dump;
int loop_times;
int shuffle;
int ordered_chapters;
int chapter_merge_threshold;
double chapter_seek_threshold;
int quiet;
int load_config;
int use_filedir_conf;
int stream_cache_size;
int stream_cache_def_size;
float stream_cache_min_percent;
float stream_cache_seek_min_percent;
int stream_cache_pause;
int chapterrange[2];
int edition_id;
int correct_pts;
int user_pts_assoc_mode;
int initial_audio_sync;
int hr_seek;
float hr_seek_demuxer_offset;
float audio_delay;
float default_max_pts_correction;
int autosync;
int softsleep;
int frame_dropping;
int term_osd;
char *term_osd_esc;
char *playing_msg;
char *status_msg;
char *osd_status_msg;
char *heartbeat_cmd;
float heartbeat_interval;
int player_idle_mode;
int slave_mode;
int consolecontrols;
int list_properties;
struct m_rel_time play_start;
struct m_rel_time play_end;
struct m_rel_time play_length;
int play_frames;
double step_sec;
int64_t seek_to_byte;
int position_resume;
int position_save_on_quit;
int pause;
int keep_open;
int audio_id;
int video_id;
int sub_id;
char **audio_lang;
char **sub_lang;
int audio_display;
int sub_visibility;
int sub_pos;
float sub_delay;
float sub_fps;
float sub_speed;
int forced_subs_only;
char *quvi_format;
// subreader.c
int suboverlap_enabled;
char *sub_cp;
char *audio_stream;
int audio_stream_cache;
char *demuxer_name;
char *audio_demuxer_name;
char *sub_demuxer_name;
int mkv_subtitle_preroll;
struct image_writer_opts *screenshot_image_opts;
char *screenshot_template;
double force_fps;
int index_mode; // -1=untouched 0=don't use index 1=use (generate) index
struct mp_chmap audio_output_channels;
int audio_output_format;
int force_srate;
int dtshd;
double playback_speed;
struct m_obj_settings *vf_settings;
struct m_obj_settings *af_settings;
float movie_aspect;
int flip;
int field_dominance;
int divx_quality;
char **sub_name;
char **sub_paths;
int sub_auto;
int sub_match_fuzziness;
int osd_bar_visible;
float osd_bar_align_x;
float osd_bar_align_y;
float osd_bar_w;
float osd_bar_h;
float osd_scale;
struct osd_style_opts *osd_style;
struct osd_style_opts *sub_text_style;
float sub_scale;
float sub_gauss;
int sub_gray;
int ass_enabled;
float ass_line_spacing;
int ass_use_margins;
int ass_vsfilter_aspect_compat;
int ass_vsfilter_color_compat;
int ass_vsfilter_blur_compat;
int use_embedded_fonts;
char **ass_force_style_list;
char *ass_styles_file;
int ass_style_override;
int ass_hinting;
int hwdec_api;
char *hwdec_codecs;
struct lavc_param {
int fast;
char *skip_loop_filter_str;
char *skip_idct_str;
char *skip_frame_str;
int threads;
int bitexact;
char *avopt;
} lavc_param;
struct ad_lavc_param {
float ac3drc;
int downmix;
char *avopt;
} ad_lavc_param;
struct lavfdopts {
int probesize;
int probescore;
float analyzeduration;
int buffersize;
int allow_mimetype;
char *format;
char *cryptokey;
char *avopt;
int genptsmode;
} lavfdopts;
struct input_conf {
char *config_file;
int doubleclick_time;
int key_fifo_size;
int ar_delay;
int ar_rate;
char *js_dev;
char *in_file;
int use_joystick;
int use_lirc;
int use_lircc;
int use_ar;
int use_media_keys;
int default_bindings;
int test;
} input;
struct encode_output_conf {
char *file;
char *format;
char **fopts;
float fps;
float maxfps;
char *vcodec;
char **vopts;
char *acodec;
char **aopts;
int harddup;
float voffset;
float aoffset;
int copyts;
int rawts;
int autofps;
int neverdrop;
int video_first;
int audio_first;
} encode_output;
} MPOpts;
// Should be moved into MPOpts
extern char **network_http_header_fields;
extern char *network_useragent;
extern char *network_referrer;
extern int network_cookies_enabled;
extern char *cookies_file;
extern const m_option_t mp_opts[];
extern const struct MPOpts mp_default_opts;
#endif