summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-04-21 01:43:09 +0200
committerwm4 <wm4@nowhere>2013-04-21 03:48:30 +0200
commitc6037982fda4815cc36ead7370bce9fc60ef7747 (patch)
tree2ec70177c75dcfaa64a3252d5688d10937f656a5 /core
parent6526162bc0b14ac88e397451fa57b5ca8ba9a64d (diff)
downloadmpv-c6037982fda4815cc36ead7370bce9fc60ef7747.tar.bz2
mpv-c6037982fda4815cc36ead7370bce9fc60ef7747.tar.xz
options: untangle track range parsing for stream_cdda
Remove the "object settings" based track range parsing (needed by stream_cdda only), and make stream_cdda use CONF_TYPE_INT_PAIR. This makes the -vf parsing code completely independent from other options. A bit of that code was used by the mechanism removed with this commit.
Diffstat (limited to 'core')
-rw-r--r--core/m_option.c56
-rw-r--r--core/m_option.h17
2 files changed, 1 insertions, 72 deletions
diff --git a/core/m_option.c b/core/m_option.c
index 20391a5846..2feaa5a4b1 100644
--- a/core/m_option.c
+++ b/core/m_option.c
@@ -1863,62 +1863,6 @@ static int get_obj_params(struct bstr opt_name, struct bstr name,
return 1;
}
-static int parse_obj_params(const m_option_t *opt, struct bstr name,
- struct bstr param, void *dst)
-{
- char **opts;
- int r;
- m_obj_params_t *p = opt->priv;
- const m_struct_t *desc;
-
- // We need the object desc
- if (!p)
- return M_OPT_INVALID;
-
- desc = p->desc;
- r = get_obj_params(name, bstr0(desc->name), param, desc, p->separator,
- dst ? &opts : NULL);
- if (r < 0)
- return r;
- if (!dst)
- return 1;
- if (!opts) // no arguments given
- return 1;
-
- for (r = 0; opts[r]; r += 2)
- m_struct_set(desc, dst, opts[r], bstr0(opts[r + 1]));
-
- return 1;
-}
-
-
-const m_option_type_t m_option_type_obj_params = {
- .name = "Object params",
- .parse = parse_obj_params,
-};
-
-/// Some predefined types as a definition would be quite lengthy
-
-/// Span arguments
-static const m_span_t m_span_params_dflts = {
- -1, -1
-};
-static const m_option_t m_span_params_fields[] = {
- {"start", M_ST_OFF(m_span_t, start), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL},
- {"end", M_ST_OFF(m_span_t, end), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL},
- { NULL, NULL, 0, 0, 0, 0, NULL }
-};
-static const struct m_struct_st m_span_opts = {
- "m_span",
- sizeof(m_span_t),
- &m_span_params_dflts,
- m_span_params_fields
-};
-const m_obj_params_t m_span_params_def = {
- &m_span_opts,
- '-'
-};
-
static int parse_obj_settings(struct bstr opt, struct bstr str,
const m_obj_list_t *list,
m_obj_settings_t **_ret, int ret_n)
diff --git a/core/m_option.h b/core/m_option.h
index fd0ebbd44c..dd1dbd3d75 100644
--- a/core/m_option.h
+++ b/core/m_option.h
@@ -133,20 +133,6 @@ typedef struct {
char separator;
} m_obj_params_t;
-// Parse a set of parameters.
-/** Parameters are separated by the given separator and each one
- * successively sets a field from the struct. The option priv field
- * (\ref m_option::priv) must point to a \ref m_obj_params_t.
- */
-extern const m_option_type_t m_option_type_obj_params;
-
-typedef struct {
- int start;
- int end;
-} m_span_t;
-// Ready made settings to parse a \ref m_span_t with a start-end syntax.
-extern const m_obj_params_t m_span_params_def;
-
struct m_opt_choice_alternatives {
char *name;
int value;
@@ -178,12 +164,12 @@ struct m_sub_options {
#define CONF_TYPE_IMGFMT (&m_option_type_imgfmt)
#define CONF_TYPE_FOURCC (&m_option_type_fourcc)
#define CONF_TYPE_AFMT (&m_option_type_afmt)
-#define CONF_TYPE_SPAN (&m_option_type_span)
#define CONF_TYPE_OBJ_SETTINGS_LIST (&m_option_type_obj_settings_list)
#define CONF_TYPE_CUSTOM_URL (&m_option_type_custom_url)
#define CONF_TYPE_OBJ_PARAMS (&m_option_type_obj_params)
#define CONF_TYPE_TIME (&m_option_type_time)
#define CONF_TYPE_CHOICE (&m_option_type_choice)
+#define CONF_TYPE_INT_PAIR (&m_option_type_intpair)
// Possible option values. Code is allowed to access option data without going
// through this union. It serves for self-documentation and to get minimal
@@ -202,7 +188,6 @@ union m_option_value {
int imgfmt;
unsigned int fourcc;
int afmt;
- m_span_t span;
m_obj_settings_t *obj_settings_list;
double time;
struct m_rel_time rel_time;