Files
Velix-MPV-Core/core/options.h
T
wm4 ef3c0e6eda osd: draw the OSD bar with ASS vector drawings
Drawing the bar with vector drawings (instead with characters from the
OSD font) offers more flexibility and looks better. This also adds
chapter marks to the OSD bar, which are visible as small triangles on
the top and bottom inner border of the bar.

Change the default position of the OSD bar below the center of the
screen. This is less annoying than putting the bar directly into the
center of the view, where it obscures the video. The new position is
not quite on the bottom of the screen to avoid collisions with
subtitles.

The old centered position can be forced with ``--osd-bar-align-y=0``.

Also make it possible to change the OSD bar width/height with the new
--osd-bar-w and --osd-bar-h options.

It's possible that the new OSD bar renders much slower than the old
one. There are two reasons for this: 1. the character based bar
allowed libass to cache each character, while the vector drawing forces
it to redraw every time the bar position changes. 2., the bar position
is updated at a much higher granularity (the bar position is passed
along as float instead of as integer in the range 0-100, so the bar
will be updated on every single video frame).
2013-03-30 20:23:45 +01:00

249 lines
5.3 KiB
C

#ifndef MPLAYER_OPTIONS_H
#define MPLAYER_OPTIONS_H
#include <stdbool.h>
#include <stdint.h>
#include "core/m_option.h"
typedef struct mp_vo_opts {
char **video_driver_list;
int screenwidth;
int screenheight;
int ontop;
bool fs;
int screen_id;
int fsscreen_id;
int stop_screensaver;
char *winname;
char** fstype_list;
float panscan;
float panscanrange;
struct m_geometry geometry;
struct m_geometry autofit;
struct m_geometry autofit_larger;
int fsmode;
int keepaspect;
int border;
int colorkey;
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;
} mp_vo_opts;
typedef struct MPOpts {
char **audio_driver_list;
int fixed_vo;
char *mixer_device;
char *mixer_channel;
int softvol;
float mixer_init_volume;
int mixer_init_mute;
float softvol_max;
int gapless_audio;
int ao_buffersize;
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 fullscreen;
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;
char *vobsub_name;
int untimed;
int loop_times;
int ordered_chapters;
int chapter_merge_threshold;
int quiet;
int load_config;
int use_filedir_conf;
int stream_cache_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_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 ignore_start;
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;
int player_idle_mode;
int slave_mode;
int consolecontrols;
int doubleclick_time;
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 start_paused;
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 forced_subs_only;
char *quvi_format;
char *audio_stream;
int audio_stream_cache;
char *sub_stream;
char *demuxer_name;
char *audio_demuxer_name;
char *sub_demuxer_name;
int extension_parsing;
struct image_writer_opts *screenshot_image_opts;
char *screenshot_template;
double force_fps;
int audio_output_channels;
int audio_output_format;
int force_srate;
int dtshd;
float playback_speed;
float drc_level;
struct m_obj_settings *vf_settings;
float movie_aspect;
int flip;
int vd_use_dr1;
char **sub_name;
char **sub_paths;
int sub_auto;
int osd_bar_visible;
float osd_bar_align_x;
float osd_bar_align_y;
float osd_bar_w;
float osd_bar_h;
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 use_embedded_fonts;
char **ass_force_style_list;
char *ass_styles_file;
int ass_style_override;
int ass_hinting;
int hwdec_api;
struct lavc_param {
int workaround_bugs;
int error_resilience;
int error_concealment;
int gray;
int idct_algo;
int debug;
int vismv;
int skip_top;
int skip_bottom;
int fast;
char *skip_loop_filter_str;
char *skip_idct_str;
char *skip_frame_str;
int threads;
int bitexact;
char *avopt;
} lavc_param;
struct lavfdopts {
int probesize;
int probescore;
int analyzeduration;
char *format;
char *cryptokey;
char *avopt;
} lavfdopts;
struct input_conf {
char *config_file;
int key_fifo_size;
int ar_delay;
int ar_rate;
char *js_dev;
char *ar_dev;
char *in_file;
int use_joystick;
int use_lirc;
int use_lircc;
int use_ar; // apple remote
int default_bindings;
int test;
} input;
struct encode_output_conf {
char *file;
char *format;
char **fopts;
float fps;
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;
#endif