]> granicus.if.org Git - libass/commitdiff
Remove ENCA support
authorGrigori Goronzy <greg@chown.ath.cx>
Wed, 23 Sep 2015 08:34:55 +0000 (10:34 +0200)
committerGrigori Goronzy <greg@chown.ath.cx>
Wed, 23 Sep 2015 08:34:55 +0000 (10:34 +0200)
There is no real value in it. ENCA only works in some cases and I
can't find any information about software that integrates libass
which relies on it or users that rely on ENCA support in case the
interface is exposed directly (e.g. in MPlayer).

If there is still a wish to have charset detection integrated into
libass (it is out of scope, IMHO), a better library like uchardet
should be used for that.

configure.ac
libass/ass.c
libass/ass_utils.c
libass/ass_utils.h

index 340e20909f6d727292c22c4bd788f62868e79a47..d090d33d5a3547880930870bd5c75492ae4ebe8f 100644 (file)
@@ -31,8 +31,6 @@ AC_ARG_ENABLE([test], AS_HELP_STRING([--enable-test],
     [enable test program (requires libpng) @<:@default=no@:>@]))
 AC_ARG_ENABLE([profile], AS_HELP_STRING([--enable-profile],
     [enable profiling program @<:@default=no@:>@]))
-AC_ARG_ENABLE([enca], AS_HELP_STRING([--disable-enca],
-    [disable enca (charset autodetect) support @<:@default=check@:>@]))
 AC_ARG_ENABLE([fontconfig], AS_HELP_STRING([--disable-fontconfig],
     [disable fontconfig support @<:@default=enabled@:>@]))
 AC_ARG_ENABLE([directwrite], AS_HELP_STRING([--disable-directwrite],
@@ -202,15 +200,6 @@ PKG_CHECK_MODULES([HARFBUZZ], harfbuzz >= 0.9.5, [
     ], [harfbuzz=false])
 fi
 
-if test x$enable_enca != xno; then
-PKG_CHECK_MODULES([ENCA], enca, [
-    CFLAGS="$CFLAGS $ENCA_CFLAGS"
-    LIBS="$LIBS $ENCA_LIBS"
-    AC_DEFINE(CONFIG_ENCA, 1, [found enca via pkg-config])
-       enca=true
-       ], [enca=false])
-fi
-
 libpng=false
 if test x$enable_test = xyes; then
 PKG_CHECK_MODULES([LIBPNG], libpng >= 1.2.0, [
@@ -227,9 +216,6 @@ AM_CONDITIONAL([ENABLE_PROFILE], [test x$enable_profile = xyes])
 pkg_libs="-lm"
 pkg_requires="freetype2 >= 9.10.3"
 pkg_requires="fribidi >= 0.19.0, ${pkg_requires}"
-if test x$enca = xtrue; then
-    pkg_requires="enca, ${pkg_requires}"
-fi
 if test x$fontconfig = xtrue; then
     pkg_requires="fontconfig >= 2.4.2, ${pkg_requires}"
 fi
index e8bc843bb0c2ba55063f9e2c2b061ea6cea0981f..0bb678fb1e0705833553df9800f418e6d445b56b 100644 (file)
@@ -941,31 +941,12 @@ static char *sub_recode(ASS_Library *library, char *data, size_t size,
     char *outbuf;
     assert(codepage);
 
-    {
-        const char *cp_tmp = codepage;
-#ifdef CONFIG_ENCA
-        char enca_lang[3], enca_fallback[100];
-        if (sscanf(codepage, "enca:%2s:%99s", enca_lang, enca_fallback) == 2
-            || sscanf(codepage, "ENCA:%2s:%99s", enca_lang,
-                      enca_fallback) == 2) {
-            cp_tmp =
-                ass_guess_buffer_cp(library, (unsigned char *) data, size,
-                                    enca_lang, enca_fallback);
-        }
-#endif
-        if ((icdsc = iconv_open(tocp, cp_tmp)) != (iconv_t) (-1)) {
-            ass_msg(library, MSGL_V, "Opened iconv descriptor");
-        } else
-            ass_msg(library, MSGL_ERR, "Error opening iconv descriptor");
-#ifdef CONFIG_ENCA
-        if (cp_tmp != codepage) {
-            free((void*)cp_tmp);
-        }
-#endif
-    }
-
-    if (icdsc == (iconv_t) (-1))
+    if ((icdsc = iconv_open(tocp, codepage)) != (iconv_t) (-1)) {
+        ass_msg(library, MSGL_V, "Opened iconv descriptor");
+    } else {
+        ass_msg(library, MSGL_ERR, "Error opening iconv descriptor");
         return NULL;
+    }
 
     {
         size_t osize = size;
index aca511bd85a570fdbaccaef029c9a4fd2d39184e..ab1ea0283f8400c6aec66feae9ff19a2f8a60ce6 100644 (file)
@@ -528,47 +528,3 @@ ASS_Style *lookup_style_strict(ASS_Track *track, char *name, size_t len)
     return NULL;
 }
 
-#ifdef CONFIG_ENCA
-void *ass_guess_buffer_cp(ASS_Library *library, unsigned char *buffer,
-                          int buflen, char *preferred_language,
-                          char *fallback)
-{
-    const char **languages;
-    size_t langcnt;
-    EncaAnalyser analyser;
-    EncaEncoding encoding;
-    char *detected_sub_cp = NULL;
-    int i;
-
-    languages = enca_get_languages(&langcnt);
-    ass_msg(library, MSGL_V, "ENCA supported languages");
-    for (i = 0; i < langcnt; i++) {
-        ass_msg(library, MSGL_V, "lang %s", languages[i]);
-    }
-
-    for (i = 0; i < langcnt; i++) {
-        const char *tmp;
-
-        if (ass_strcasecmp(languages[i], preferred_language) != 0)
-            continue;
-        analyser = enca_analyser_alloc(languages[i]);
-        encoding = enca_analyse_const(analyser, buffer, buflen);
-        tmp = enca_charset_name(encoding.charset, ENCA_NAME_STYLE_ICONV);
-        if (tmp && encoding.charset != ENCA_CS_UNKNOWN) {
-            detected_sub_cp = strdup(tmp);
-            ass_msg(library, MSGL_INFO, "ENCA detected charset: %s", tmp);
-        }
-        enca_analyser_free(analyser);
-    }
-
-    free(languages);
-
-    if (!detected_sub_cp) {
-        detected_sub_cp = strdup(fallback);
-        ass_msg(library, MSGL_INFO,
-               "ENCA detection failed: fallback to %s", fallback);
-    }
-
-    return detected_sub_cp;
-}
-#endif
index 867b3e3ef3d66cc63c9ba53e970287c686fdba4d..c2f5a19e281b5e98ab1c162497ea9d48a7af975c 100644 (file)
 #include <errno.h>
 #include <math.h>
 
-#ifdef CONFIG_ENCA
-#include <enca.h>
-#endif
-
 #include "ass.h"
 
 #ifndef SIZE_MAX
@@ -98,11 +94,6 @@ void ass_utf16be_to_utf8(char *dst, size_t dst_size, uint8_t *src, size_t src_si
 void ass_msg(ASS_Library *priv, int lvl, const char *fmt, ...);
 int lookup_style(ASS_Track *track, char *name);
 ASS_Style *lookup_style_strict(ASS_Track *track, char *name, size_t len);
-#ifdef CONFIG_ENCA
-void *ass_guess_buffer_cp(ASS_Library *library, unsigned char *buffer,
-                          int buflen, char *preferred_language,
-                          char *fallback);
-#endif
 
 /* defined in ass_strtod.c */
 double ass_strtod(const char *string, char **endPtr);