summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-01-19 15:44:49 +0100
committerwm4 <wm4@nowhere>2017-01-19 15:46:59 +0100
commit4adfde5dd1e67775228a345cea00ea03ba6bc68f (patch)
tree23f943729e4811ebe846641fde0b43fb1a55b002
parent13add62cf075cc48a2a1b65c84fc1b5798361bf8 (diff)
downloadmpv-4adfde5dd1e67775228a345cea00ea03ba6bc68f.tar.bz2
mpv-4adfde5dd1e67775228a345cea00ea03ba6bc68f.tar.xz
options: drop deprecated --sub-codepage syntax
-rw-r--r--DOCS/interface-changes.rst1
-rw-r--r--DOCS/man/options.rst5
-rw-r--r--misc/charset_conv.c75
3 files changed, 9 insertions, 72 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index ec1bf02d9e..4e0c0d6f16 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -26,6 +26,7 @@ Interface changes
now actually does not preload any interop layer, while the new default
("") uses the value of --hwdec.
- drop deprecated --ad/--vd features
+ - drop deprecated --sub-codepage syntax
--- mpv 0.23.0 ---
- remove deprecated vf_vdpaurb (use "--hwdec=vdpau-copy" instead)
- the following properties now have new semantics:
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 7e9e304be5..00c405bd5e 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -1784,8 +1784,9 @@ Subtitles
subtitles are interpreted as UTF-8 with "Latin 1" as fallback for bytes
which are not valid UTF-8 sequences. iconv is never involved in this mode.
- This option changed in mpv 0.23.0. The old syntax is still emulated to some
- degree.
+ This option changed in mpv 0.23.0. Support for the old syntax was fully
+ removed in mpv 0.24.0.
+
``--sub-fix-timing``, ``--no-sub-fix-timing``
By default, subtitle timing is adjusted to remove minor gaps or overlaps
diff --git a/misc/charset_conv.c b/misc/charset_conv.c
index b66b73907d..c38c1fbd77 100644
--- a/misc/charset_conv.c
+++ b/misc/charset_conv.c
@@ -51,28 +51,6 @@ bool mp_charset_is_utf16(const char *user_cp)
bstr_case_startswith(s, bstr0("utf-16"));
}
-// Split the string on ':' into components.
-// out_arr is at least max entries long.
-// Return number of out_arr entries filled.
-static int split_colon(const char *user_cp, int max, bstr *out_arr)
-{
- if (!user_cp || max < 1)
- return 0;
-
- int count = 0;
- while (1) {
- const char *next = strchr(user_cp, ':');
- if (next && max - count > 1) {
- out_arr[count++] = (bstr){(char *)user_cp, next - user_cp};
- user_cp = next + 1;
- } else {
- out_arr[count++] = (bstr){(char *)user_cp, strlen(user_cp)};
- break;
- }
- }
- return count;
-}
-
static const char *const utf_bom[3] = {"\xEF\xBB\xBF", "\xFF\xFE", "\xFE\xFF"};
static const char *const utf_enc[3] = {"utf-8", "utf-16le", "utf-16be"};
@@ -120,59 +98,16 @@ static const char *mp_uchardet(void *talloc_ctx, struct mp_log *log, bstr buf)
// it's a real iconv codepage), user_cp is returned without even looking at
// the buf data.
// The return value may (but doesn't have to) be allocated under talloc_ctx.
-static const char *mp_charset_guess_compat(void *talloc_ctx, struct mp_log *log,
- bstr buf, const char *user_cp,
- int flags)
-{
- mp_warn(log, "This syntax for the --sub-codepage option is deprecated.\n");
-
- bstr params[3] = {{0}};
- split_colon(user_cp, 3, params);
-
- bstr type = params[0];
- char lang[100];
- snprintf(lang, sizeof(lang), "%.*s", BSTR_P(params[1]));
- const char *fallback = params[2].start; // last item, already 0-terminated
-
- const char *res = NULL;
-
-#if HAVE_UCHARDET
- if (bstrcasecmp0(type, "uchardet") == 0) {
- res = mp_uchardet(talloc_ctx, log, buf);
- if (!res && bstr_validate_utf8(buf) >= 0)
- res = "utf-8";
- }
-#endif
-
- if (bstrcasecmp0(type, "utf8") == 0 || bstrcasecmp0(type, "utf-8") == 0) {
- if (!fallback)
- fallback = params[1].start; // must be already 0-terminated
- int r = bstr_validate_utf8(buf);
- if (r >= 0 || (r > -8 && (flags & MP_ICONV_ALLOW_CUTOFF)))
- res = "utf-8";
- }
-
- if (res) {
- mp_dbg(log, "%.*s detected charset: '%s'\n", BSTR_P(type), res);
- } else {
- res = fallback;
- mp_dbg(log, "Detection with %.*s failed: fallback to %s\n",
- BSTR_P(type), res && res[0] ? res : "broken UTF-8/Latin1");
- }
-
- if (!res && !(flags & MP_STRICT_UTF8))
- res = "UTF-8-BROKEN";
-
- mp_verbose(log, "Using charset '%s'.\n", res);
- return res;
-}
-
const char *mp_charset_guess(void *talloc_ctx, struct mp_log *log, bstr buf,
const char *user_cp, int flags)
{
if (strcasecmp(user_cp, "enca") == 0 || strcasecmp(user_cp, "guess") == 0 ||
strcasecmp(user_cp, "uchardet") == 0 || strchr(user_cp, ':'))
- return mp_charset_guess_compat(talloc_ctx, log, buf, user_cp, flags);
+ {
+ mp_err(log, "This syntax for the --sub-codepage option was deprecated "
+ "and has been removed.\n");
+ user_cp = "";
+ }
if (user_cp[0] == '+') {
mp_verbose(log, "Forcing charset '%s'.\n", user_cp + 1);