annotate mpcommon.h @ 36682:68794f2fbf1e

Add support for default of multiple video tracks. Some container formats like matroska support multiple video tracks, one of which may be flagged the 'default' one which thus should be played by default. Works with the lavf demuxer.
author ib
date Sun, 02 Feb 2014 19:18:31 +0000
parents 3edaed3c1d60
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30429
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
1 /*
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
2 * This file is part of MPlayer.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
3 *
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
5 * it under the terms of the GNU General Public License as published by
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
7 * (at your option) any later version.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
8 *
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
12 * GNU General Public License for more details.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
13 *
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
14 * You should have received a copy of the GNU General Public License along
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
17 */
c1a3f1bbba26 Add license header to all top-level files missing them.
diego
parents: 30065
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26008
diff changeset
19 #ifndef MPLAYER_MPCOMMON_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26008
diff changeset
20 #define MPLAYER_MPCOMMON_H
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 24165
diff changeset
21
32063
bfd3e0d9ab9d Move mconfig extern variable declaration to mpcommon.h.
diego
parents: 32062
diff changeset
22 #include "m_config.h"
31430
a2c6762a9adc Move noconfig_opts extern variable declaration to mpcommon.h.
diego
parents: 30907
diff changeset
23 #include "m_option.h"
32454
69d3be4d52a2 Create a new directory, "sub", for subtitles and OSD related code.
cigaes
parents: 32383
diff changeset
24 #include "sub/subreader.h"
26131
83c95bd31aab Add necessary #includes to pass 'make checkheaders'.
diego
parents: 26090
diff changeset
25 #include "libmpdemux/demuxer.h"
32461
bc43cf7638e6 Move ass_mp.[ch] to the sub directory.
cigaes
parents: 32454
diff changeset
26 #include "sub/ass_mp.h"
26131
83c95bd31aab Add necessary #includes to pass 'make checkheaders'.
diego
parents: 26090
diff changeset
27
32664
6d08af681d54 Factorize ROUND() redefinitions macro.
cboesch
parents: 32461
diff changeset
28 #define ROUND(x) ((int)((x) < 0 ? (x) - 0.5 : (x) + 0.5))
6d08af681d54 Factorize ROUND() redefinitions macro.
cboesch
parents: 32461
diff changeset
29
33577
c111d9e9cfb0 Move init_vo_spudec to mp_common.c and reuse it in mencoder.
reimar
parents: 32864
diff changeset
30 struct stream;
32864
ccdfd500453c Apply forgotten part of previous patch, adding calc_a_pts to mpcommon.h.
reimar
parents: 32773
diff changeset
31 struct sh_audio;
32171
d15f1bca9ae0 Replace libmpdemux/stheader.h #include by 'struct sh_video' declaration.
diego
parents: 32170
diff changeset
32 struct sh_video;
33577
c111d9e9cfb0 Move init_vo_spudec to mp_common.c and reuse it in mencoder.
reimar
parents: 32864
diff changeset
33 struct sh_sub;
32171
d15f1bca9ae0 Replace libmpdemux/stheader.h #include by 'struct sh_video' declaration.
diego
parents: 32170
diff changeset
34
22233
5bf6c178f09a Move some subtitle handling from mplayer.c to mpcommon.c and share it with mencoder.c
reimar
parents:
diff changeset
35 extern double sub_last_pts;
31792
55dacfca4a43 Rename libass types to match upstream libass >= 0.9.7
greg
parents: 31511
diff changeset
36 extern ASS_Track *ass_track;
22233
5bf6c178f09a Move some subtitle handling from mplayer.c to mpcommon.c and share it with mencoder.c
reimar
parents:
diff changeset
37 extern subtitle *vo_sub_last;
33577
c111d9e9cfb0 Move init_vo_spudec to mp_common.c and reuse it in mencoder.
reimar
parents: 32864
diff changeset
38 extern char *spudec_ifo;
c111d9e9cfb0 Move init_vo_spudec to mp_common.c and reuse it in mencoder.
reimar
parents: 32864
diff changeset
39 extern int forced_subs_only;
28325
21504ba0f5d3 Factorize print_version().
diego
parents: 26416
diff changeset
40
32043
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
41 extern int sub_auto;
31489
dc26022e9c27 Clean up sub-related extern declarations.
diego
parents: 31430
diff changeset
42 extern float sub_delay;
dc26022e9c27 Clean up sub-related extern declarations.
diego
parents: 31430
diff changeset
43 extern float sub_fps;
32032
52b0385d2d7a Move **sub_name extern declaration to mpcommon.h.
diego
parents: 32029
diff changeset
44 extern char **sub_name;
32773
06b75ec1b9c9 Add sub-paths option.
cboesch
parents: 32664
diff changeset
45 extern char **sub_paths;
32043
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
46 extern char *font_name;
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
47 extern char *sub_font_name;
32060
c3b7fc7eb796 Move audio_lang / dvdsub_lang extern variable declarations to mpcommon.h.
diego
parents: 32043
diff changeset
48 extern char *audio_lang;
c3b7fc7eb796 Move audio_lang / dvdsub_lang extern variable declarations to mpcommon.h.
diego
parents: 32043
diff changeset
49 extern char *dvdsub_lang;
c3b7fc7eb796 Move audio_lang / dvdsub_lang extern variable declarations to mpcommon.h.
diego
parents: 32043
diff changeset
50
32043
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
51 extern float font_factor;
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
52 extern double force_fps;
32061
dcdcbe7f6713 Move video_time_usage / vout_time_usage extern var declarations to mpcommon.h.
diego
parents: 32060
diff changeset
53 extern double video_time_usage;
dcdcbe7f6713 Move video_time_usage / vout_time_usage extern var declarations to mpcommon.h.
diego
parents: 32060
diff changeset
54 extern double vout_time_usage;
31489
dc26022e9c27 Clean up sub-related extern declarations.
diego
parents: 31430
diff changeset
55
32029
b81172c6dd5c cosmetics: Group all extern variable declarations together.
diego
parents: 31792
diff changeset
56 extern int disable_system_conf;
b81172c6dd5c cosmetics: Group all extern variable declarations together.
diego
parents: 31792
diff changeset
57 extern int disable_user_conf;
32043
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
58 extern int audio_id;
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
59 extern int video_id;
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
60 extern int dvdsub_id;
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32032
diff changeset
61 extern int vobsub_id;
32029
b81172c6dd5c cosmetics: Group all extern variable declarations together.
diego
parents: 31792
diff changeset
62
32062
734f9a57c186 Move stream_cache_* extern variable declarations to mpcommon.h.
diego
parents: 32061
diff changeset
63 extern int stream_cache_size;
734f9a57c186 Move stream_cache_* extern variable declarations to mpcommon.h.
diego
parents: 32061
diff changeset
64 extern float stream_cache_min_percent;
734f9a57c186 Move stream_cache_* extern variable declarations to mpcommon.h.
diego
parents: 32061
diff changeset
65 extern float stream_cache_seek_min_percent;
734f9a57c186 Move stream_cache_* extern variable declarations to mpcommon.h.
diego
parents: 32061
diff changeset
66
31511
13ca93203358 Factorize MPlayer/MEncoder version string handling.
diego
parents: 31489
diff changeset
67 extern const char *mencoder_version;
13ca93203358 Factorize MPlayer/MEncoder version string handling.
diego
parents: 31489
diff changeset
68 extern const char *mplayer_version;
13ca93203358 Factorize MPlayer/MEncoder version string handling.
diego
parents: 31489
diff changeset
69
32063
bfd3e0d9ab9d Move mconfig extern variable declaration to mpcommon.h.
diego
parents: 32062
diff changeset
70 extern m_config_t *mconfig;
31430
a2c6762a9adc Move noconfig_opts extern variable declaration to mpcommon.h.
diego
parents: 30907
diff changeset
71 extern const m_option_t noconfig_opts[];
a2c6762a9adc Move noconfig_opts extern variable declaration to mpcommon.h.
diego
parents: 30907
diff changeset
72
28325
21504ba0f5d3 Factorize print_version().
diego
parents: 26416
diff changeset
73 void print_version(const char* name);
33577
c111d9e9cfb0 Move init_vo_spudec to mp_common.c and reuse it in mencoder.
reimar
parents: 32864
diff changeset
74 void init_vo_spudec(struct stream *stream, struct sh_video *sh_video, struct sh_sub *sh_sub);
32095
96bdac8d878d Remove stheader.h include from mpcommon.h since it
reimar
parents: 32063
diff changeset
75 void update_subtitles(struct sh_video *sh_video, double refpts, demux_stream_t *d_dvdsub, int reset);
96bdac8d878d Remove stheader.h include from mpcommon.h since it
reimar
parents: 32063
diff changeset
76 void update_teletext(struct sh_video *sh_video, demuxer_t *demuxer, int reset);
26090
c585e2ad8ebf Select audio stream in mplayer and mencoder, overriding demuxer decision.
eugeni
parents: 26029
diff changeset
77 int select_audio(demuxer_t* demuxer, int audio_id, char* audio_lang);
36682
68794f2fbf1e Add support for default of multiple video tracks.
ib
parents: 35868
diff changeset
78 int select_video(demuxer_t* demuxer, int video_id);
29670
2e3751815a21 Add support for displaying subtitles on the command-line when playing
reimar
parents: 29669
diff changeset
79 void set_osd_subtitle(subtitle *subs);
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 24165
diff changeset
80
33877
c52940fe54dd Move cfg_inc_verbose and cfg_include into mpcommon.c.
diego
parents: 33577
diff changeset
81 int cfg_inc_verbose(m_option_t *conf);
c52940fe54dd Move cfg_inc_verbose and cfg_include into mpcommon.c.
diego
parents: 33577
diff changeset
82 int cfg_include(m_option_t *conf, const char *filename);
c52940fe54dd Move cfg_inc_verbose and cfg_include into mpcommon.c.
diego
parents: 33577
diff changeset
83
35868
3edaed3c1d60 Win32: support file names with characters outside system code-page
reimar
parents: 33877
diff changeset
84 void common_preinit(int *argc_ptr, char **argv_ptr[]);
32383
f6e78eef2e1b Avoid duplicating common init code between MPlayer and mencoder.
reimar
parents: 32209
diff changeset
85 int common_init(void);
f6e78eef2e1b Avoid duplicating common init code between MPlayer and mencoder.
reimar
parents: 32209
diff changeset
86
32864
ccdfd500453c Apply forgotten part of previous patch, adding calc_a_pts to mpcommon.h.
reimar
parents: 32773
diff changeset
87 double calc_a_pts(struct sh_audio *sh_audio, demux_stream_t *d_audio);
ccdfd500453c Apply forgotten part of previous patch, adding calc_a_pts to mpcommon.h.
reimar
parents: 32773
diff changeset
88
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26008
diff changeset
89 #endif /* MPLAYER_MPCOMMON_H */