diff options
Diffstat (limited to 'mp_core.h')
-rw-r--r-- | mp_core.h | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/mp_core.h b/mp_core.h new file mode 100644 index 0000000000..b0efcaeab3 --- /dev/null +++ b/mp_core.h @@ -0,0 +1,128 @@ +// definitions used internally by the core player code + +#define INITED_VO 1 +#define INITED_AO 2 +#define INITED_GUI 4 +#define INITED_GETCH2 8 +#define INITED_SPUDEC 32 +#define INITED_STREAM 64 +#define INITED_INPUT 128 +#define INITED_VOBSUB 256 +#define INITED_DEMUXER 512 +#define INITED_ACODEC 1024 +#define INITED_VCODEC 2048 +#define INITED_ALL 0xFFFF + + +#define SUB_SOURCE_SUBS 0 +#define SUB_SOURCE_VOBSUB 1 +#define SUB_SOURCE_DEMUX 2 +#define SUB_SOURCES 3 + + +#define PT_NEXT_ENTRY 1 +#define PT_PREV_ENTRY -1 +#define PT_NEXT_SRC 2 +#define PT_PREV_SRC -2 +#define PT_UP_NEXT 3 +#define PT_UP_PREV -3 + + +#define OSD_MSG_TV_CHANNEL 0 +#define OSD_MSG_TEXT 1 +#define OSD_MSG_SUB_DELAY 2 +#define OSD_MSG_SPEED 3 +#define OSD_MSG_OSD_STATUS 4 +#define OSD_MSG_BAR 5 +#define OSD_MSG_PAUSE 6 +#define OSD_MSG_RADIO_CHANNEL 7 +/// Base id for messages generated from the commmand to property bridge. +#define OSD_MSG_PROPERTY 0x100 + +#define MAX_OSD_LEVEL 3 +#define MAX_TERM_OSD_LEVEL 1 + + +typedef struct MPContext { + int osd_show_percentage; + int osd_function; + demux_stream_t *d_audio; + ao_functions_t *audio_out; + float begin_skip; ///< start time of the current skip while on edlout mode + play_tree_t *playtree; + play_tree_iter_t *playtree_iter; + int eof; + int play_tree_step; + + stream_t *stream; + demuxer_t *demuxer; + sh_audio_t *sh_audio; + sh_video_t *sh_video; + demux_stream_t *d_video; + demux_stream_t *d_sub; + mixer_t mixer; + vo_functions_t *video_out; + + short edl_muted; ///< Stores whether EDL is currently in muted mode. + short user_muted; ///< Stores whether user wanted muted mode. + + int global_sub_size; // this encompasses all subtitle sources + int global_sub_pos; // this encompasses all subtitle sources + int set_of_sub_pos; + int set_of_sub_size; + int global_sub_indices[SUB_SOURCES]; +#ifdef USE_ASS + // set_of_ass_tracks[i] contains subtitles from set_of_subtitles[i] + // parsed by libass or NULL if format unsupported + ass_track_t* set_of_ass_tracks[MAX_SUBTITLE_FILES]; +#endif + sub_data* set_of_subtitles[MAX_SUBTITLE_FILES]; + + int file_format; + +#ifdef HAS_DVBIN_SUPPORT + int last_dvb_step; + int dvbin_reopen; +#endif + + int was_paused; +} MPContext; + + +// Most of these should not be globals +extern int abs_seek_pos; +extern float rel_seek_secs; +extern FILE *edl_fd; +extern int file_filter; +// These appear in options list +extern float playback_speed; +extern int osd_duration; +extern int term_osd; +extern int fixed_vo; +extern int ass_enabled; +extern int fixed_vo; +extern int forced_subs_only; + +// These were listed as externs in mplayer.c, should be in some other header +extern int vo_gamma_gamma; +extern int vo_gamma_brightness; +extern int vo_gamma_contrast; +extern int vo_gamma_saturation; +extern int vo_gamma_hue; + + + +int build_afilter_chain(sh_audio_t *sh_audio, ao_data_t *ao_data); +void uninit_player(unsigned int mask); +void reinit_audio_chain(void); +void init_vo_spudec(void); +void set_osd_bar(int type,const char* name,double min,double max,double val); +void set_osd_msg(int id, int level, int time, const char* fmt, ...); +double playing_audio_pts(sh_audio_t *sh_audio, demux_stream_t *d_audio, + ao_functions_t *audio_out); +void exit_player_with_rc(const char* how, int rc); +char *get_path(const char *filename); +void rm_osd_msg(int id); +void add_subtitles(char *filename, float fps, int silent); +void mplayer_put_key(int code); +int reinit_video_chain(void); |