summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-04-29 01:49:20 +0200
committerwm4 <wm4@nowhere>2013-05-30 22:44:18 +0200
commit28116b8a799078b3c6b3b559ed4463669c79cf0e (patch)
tree43e78d552443e08d5250774c01a5da245cd2b50f /core
parentfd02f0f4d88371c728aff3b4487974118ba4d014 (diff)
downloadmpv-28116b8a799078b3c6b3b559ed4463669c79cf0e.tar.bz2
mpv-28116b8a799078b3c6b3b559ed4463669c79cf0e.tar.xz
sub: remove some global variables
Diffstat (limited to 'core')
-rw-r--r--core/cfg-mplayer.h16
-rw-r--r--core/command.c12
-rw-r--r--core/defaultopts.c2
-rw-r--r--core/mplayer.c11
-rw-r--r--core/options.h10
5 files changed, 32 insertions, 19 deletions
diff --git a/core/cfg-mplayer.h b/core/cfg-mplayer.h
index 529972766b..c29d4c4060 100644
--- a/core/cfg-mplayer.h
+++ b/core/cfg-mplayer.h
@@ -472,18 +472,18 @@ const m_option_t common_opts[] = {
OPT_STRINGLIST("sub", sub_name, 0),
OPT_PATHLIST("sub-paths", sub_paths, 0),
- {"subcp", &sub_cp, CONF_TYPE_STRING, 0, 0, 0, NULL},
- {"sub-delay", &sub_delay, CONF_TYPE_FLOAT, 0, 0.0, 10.0, NULL},
- {"subfps", &sub_fps, CONF_TYPE_FLOAT, 0, 0.0, 10.0, NULL},
+ OPT_STRING("subcp", sub_cp, 0),
+ OPT_FLOAT("sub-delay", sub_delay, 0),
+ OPT_FLOAT("subfps", sub_fps, 0),
OPT_FLAG("autosub", sub_auto, 0),
OPT_FLAG("sub-visibility", sub_visibility, 0),
OPT_FLAG("sub-forced-only", forced_subs_only, 0),
// enable Closed Captioning display
- {"overlapsub", &suboverlap_enabled, CONF_TYPE_FLAG, 0, 0, 2, NULL},
- {"sub-no-text-pp", &sub_no_text_pp, CONF_TYPE_FLAG, 0, 0, 1, NULL},
- {"autosub-match", &sub_match_fuzziness, CONF_TYPE_CHOICE, 0,
- M_CHOICES(({"exact", 0}, {"fuzzy", 1}, {"all", 2}))},
- {"sub-pos", &sub_pos, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
+ OPT_FLAG_CONSTANTS("overlapsub", suboverlap_enabled, 0, 0, 2),
+ OPT_FLAG_STORE("sub-no-text-pp", sub_no_text_pp, 0, 1),
+ OPT_CHOICE("autosub-match", sub_match_fuzziness, 0,
+ ({"exact", 0}, {"fuzzy", 1}, {"all", 2})),
+ OPT_INTRANGE("sub-pos", sub_pos, 0, 0, 100),
OPT_FLOATRANGE("sub-gauss", sub_gauss, 0, 0.0, 3.0),
OPT_FLAG("sub-gray", sub_gray, 0),
OPT_FLAG("ass", ass_enabled, 0),
diff --git a/core/command.c b/core/command.c
index 5fa914fdf7..7971180553 100644
--- a/core/command.c
+++ b/core/command.c
@@ -1272,11 +1272,12 @@ static int mp_property_sub(m_option_t *prop, int action, void *arg,
static int mp_property_sub_delay(m_option_t *prop, int action, void *arg,
MPContext *mpctx)
{
+ struct MPOpts *opts = &mpctx->opts;
if (!mpctx->sh_video)
return M_PROPERTY_UNAVAILABLE;
switch (action) {
case M_PROPERTY_PRINT:
- *(char **)arg = format_delay(sub_delay);
+ *(char **)arg = format_delay(opts->sub_delay);
return M_PROPERTY_OK;
}
return mp_property_generic_option(prop, action, arg, mpctx);
@@ -1285,10 +1286,11 @@ static int mp_property_sub_delay(m_option_t *prop, int action, void *arg,
static int mp_property_sub_pos(m_option_t *prop, int action, void *arg,
MPContext *mpctx)
{
+ struct MPOpts *opts = &mpctx->opts;
if (!mpctx->sh_video)
return M_PROPERTY_UNAVAILABLE;
if (action == M_PROPERTY_PRINT) {
- *(char **)arg = talloc_asprintf(NULL, "%d/100", sub_pos);
+ *(char **)arg = talloc_asprintf(NULL, "%d/100", opts->sub_pos);
return M_PROPERTY_OK;
}
return property_osd_helper(prop, action, arg, mpctx);
@@ -1954,9 +1956,9 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd)
struct ass_track *ass_track = sub_get_ass_track(mpctx->osd);
if (ass_track) {
set_osd_tmsg(mpctx, OSD_MSG_SUB_DELAY, osdl, osd_duration,
- "Sub delay: %d ms", ROUND(sub_delay * 1000));
- sub_delay += ass_step_sub(ass_track,
- (mpctx->video_pts + sub_delay) * 1000 + .5, movement) / 1000.;
+ "Sub delay: %d ms", ROUND(opts->sub_delay * 1000));
+ double cur = (mpctx->video_pts + opts->sub_delay) * 1000 + .5;
+ opts->sub_delay += ass_step_sub(ass_track, cur, movement) / 1000.;
}
}
#endif
diff --git a/core/defaultopts.c b/core/defaultopts.c
index c4e2a0fa98..93dad1e624 100644
--- a/core/defaultopts.c
+++ b/core/defaultopts.c
@@ -74,6 +74,7 @@ void set_default_mplayer_options(struct MPOpts *opts)
.sub_id = -1,
.audio_display = 1,
.sub_visibility = 1,
+ .sub_pos = 100,
.extension_parsing = 1,
.audio_output_channels = MP_CHMAP_INIT_STEREO,
.audio_output_format = -1, // AF_FORMAT_UNKNOWN
@@ -89,6 +90,7 @@ void set_default_mplayer_options(struct MPOpts *opts)
.ass_vsfilter_aspect_compat = 1,
.ass_style_override = 1,
.use_embedded_fonts = 1,
+ .suboverlap_enabled = 1,
.hwdec_codecs = "all",
diff --git a/core/mplayer.c b/core/mplayer.c
index c596aa8504..c832aa1fcb 100644
--- a/core/mplayer.c
+++ b/core/mplayer.c
@@ -1056,7 +1056,7 @@ struct track *mp_add_subtitles(struct MPContext *mpctx, char *filename,
// the weird special-cases.
#ifdef CONFIG_ASS
if (opts->ass_enabled) {
- asst = mp_ass_read_stream(mpctx->ass_library, filename, sub_cp);
+ asst = mp_ass_read_stream(mpctx->ass_library, filename, opts->sub_cp);
codec = "ass";
}
if (!asst) {
@@ -1389,7 +1389,7 @@ static mp_osd_msg_t *get_osd_msg(struct MPContext *mpctx)
if (mpctx->osd_visible && now >= mpctx->osd_visible) {
mpctx->osd_visible = 0;
mpctx->osd->progbar_type = -1; // disable
- vo_osd_changed(OSDTYPE_PROGBAR);
+ osd_changed(mpctx->osd, OSDTYPE_PROGBAR);
}
if (mpctx->osd_function_visible && now >= mpctx->osd_function_visible) {
mpctx->osd_function_visible = 0;
@@ -1448,7 +1448,7 @@ void set_osd_bar(struct MPContext *mpctx, int type, const char *name,
mpctx->osd->progbar_type = type;
mpctx->osd->progbar_value = (val - min) / (max - min);
mpctx->osd->progbar_num_stops = 0;
- vo_osd_changed(OSDTYPE_PROGBAR);
+ osd_changed(mpctx->osd, OSDTYPE_PROGBAR);
return;
}
@@ -1465,7 +1465,7 @@ static void update_osd_bar(struct MPContext *mpctx, int type,
float new_value = (val - min) / (max - min);
if (new_value != mpctx->osd->progbar_value) {
mpctx->osd->progbar_value = new_value;
- vo_osd_changed(OSDTYPE_PROGBAR);
+ osd_changed(mpctx->osd, OSDTYPE_PROGBAR);
}
}
}
@@ -1831,6 +1831,7 @@ static void reset_subtitles(struct MPContext *mpctx)
static void update_subtitles(struct MPContext *mpctx, double refpts_tl)
{
+ struct MPOpts *opts = &mpctx->opts;
struct sh_sub *sh_sub = mpctx->sh_sub;
struct demux_stream *d_sub = sh_sub ? sh_sub->ds : NULL;
unsigned char *packet = NULL;
@@ -1843,7 +1844,7 @@ static void update_subtitles(struct MPContext *mpctx, double refpts_tl)
double video_offset = track->under_timeline ? mpctx->video_offset : 0;
- mpctx->osd->sub_offset = video_offset - sub_delay;
+ mpctx->osd->sub_offset = video_offset - opts->sub_delay;
double curpts_s = refpts_tl - mpctx->osd->sub_offset;
double refpts_s = refpts_tl - video_offset;
diff --git a/core/options.h b/core/options.h
index d870ab9677..31b4bc9136 100644
--- a/core/options.h
+++ b/core/options.h
@@ -83,7 +83,6 @@ typedef struct MPOpts {
int osd_level;
int osd_duration;
int osd_fractions;
- char *vobsub_name;
int untimed;
char *stream_capture;
char *stream_dump;
@@ -140,9 +139,17 @@ typedef struct MPOpts {
char **sub_lang;
int audio_display;
int sub_visibility;
+ int sub_pos;
+ float sub_delay;
+ float sub_fps;
int forced_subs_only;
char *quvi_format;
+ // subreader.c
+ int suboverlap_enabled;
+ char *sub_cp;
+ int sub_no_text_pp;
+
char *audio_stream;
int audio_stream_cache;
char *sub_stream;
@@ -170,6 +177,7 @@ typedef struct MPOpts {
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;