summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-11-13 20:08:51 +0100
committerwm4 <wm4@nowhere>2013-11-13 20:10:17 +0100
commit8444c916d4ec2454cf30a751018cba8cc874723d (patch)
tree3f69245568e49f490b878de648b0691935bfd81b
parente5fec0ad07d0b66d0433a86af723c71ca3374a88 (diff)
downloadmpv-8444c916d4ec2454cf30a751018cba8cc874723d.tar.bz2
mpv-8444c916d4ec2454cf30a751018cba8cc874723d.tar.xz
m_option: handle audio/filter filters with old option parsing
These use the _oldargs_ hack, which failed in combination with playback resume. Make it work. It would be better to port all filters to new option parsing, but that's obviously too much work, and most filters will probably be deleted and replaced by libavfilter in the long run.
-rw-r--r--mpvcore/m_option.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/mpvcore/m_option.c b/mpvcore/m_option.c
index 948e246956..1a237c7f5e 100644
--- a/mpvcore/m_option.c
+++ b/mpvcore/m_option.c
@@ -2475,9 +2475,15 @@ static char *print_obj_settings_list(const m_option_t *opt, const void *val)
for (int i = 0; entry->attribs[i * 2 + 0]; i++) {
if (i > 0)
res = talloc_strdup_append(res, ":");
- append_param(&res, entry->attribs[i * 2 + 0]);
- res = talloc_strdup_append(res, "=");
- append_param(&res, entry->attribs[i * 2 + 1]);
+ if (strcmp(entry->attribs[i * 2 + 0], "_oldargs_") == 0) {
+ // Compatibility crap; write just the arg without escaping,
+ // and hope it won't crash and burn.
+ res = talloc_strdup_append(res, entry->attribs[i * 2 + 1]);
+ } else {
+ append_param(&res, entry->attribs[i * 2 + 0]);
+ res = talloc_strdup_append(res, "=");
+ append_param(&res, entry->attribs[i * 2 + 1]);
+ }
}
}
}