summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-06-22 02:09:52 +0200
committerwm4 <wm4@nowhere>2013-06-25 00:11:56 +0200
commitcfa45c40dc0cfe44b699029168b62d4d3e16c288 (patch)
tree5a80d3b6e82711a5816c509e803c029b93342892 /sub
parent1bfae45a88ac7c24b74a6f7ca6eb4aa27d20c653 (diff)
downloadmpv-cfa45c40dc0cfe44b699029168b62d4d3e16c288.tar.bz2
mpv-cfa45c40dc0cfe44b699029168b62d4d3e16c288.tar.xz
sub: add demux_libass wrapper, drop old hacks
demux_libass.c allows us to make subtitle format detection part of the normal file loading process. libass has no probe function, but trying to load the start of a file (the first 4 KB) is good enough. Hope that libass can even handle random binary input gracefully without printing stupid log messages, and that the libass parser doesn't accept too many non-ASS files as input. This doesn't handle the -subcp option correctly yet. This will be fixed later.
Diffstat (limited to 'sub')
-rw-r--r--sub/ass_mp.c28
-rw-r--r--sub/ass_mp.h2
2 files changed, 0 insertions, 30 deletions
diff --git a/sub/ass_mp.c b/sub/ass_mp.c
index 48a713f6ee..5e87223041 100644
--- a/sub/ass_mp.c
+++ b/sub/ass_mp.c
@@ -112,34 +112,6 @@ ASS_Track *mp_ass_default_track(ASS_Library *library, struct MPOpts *opts)
return track;
}
-ASS_Track *mp_ass_read_stream(ASS_Library *library, const char *fname,
- char *charset)
-{
- ASS_Track *track;
-
- struct stream *s = open_stream(fname, NULL, NULL);
- if (!s)
- // Stream code should have printed an error already
- return NULL;
- struct bstr content = stream_read_complete(s, NULL, 100000000);
- if (content.start == NULL)
- mp_tmsg(MSGT_ASS, MSGL_ERR, "Refusing to load subtitle file "
- "larger than 100 MB: %s\n", fname);
- free_stream(s);
- if (content.len == 0) {
- talloc_free(content.start);
- return NULL;
- }
- content.start[content.len] = 0;
- track = ass_read_memory(library, content.start, content.len, charset);
- if (track) {
- free(track->name);
- track->name = strdup(fname);
- }
- talloc_free(content.start);
- return track;
-}
-
void mp_ass_configure(ASS_Renderer *priv, struct MPOpts *opts,
struct mp_osd_res *dim)
{
diff --git a/sub/ass_mp.h b/sub/ass_mp.h
index dbdc95f031..c0fba934eb 100644
--- a/sub/ass_mp.h
+++ b/sub/ass_mp.h
@@ -49,8 +49,6 @@ void mp_ass_set_style(ASS_Style *style, int res_y, struct osd_style_opts *opts);
void mp_ass_add_default_styles(ASS_Track *track, struct MPOpts *opts);
ASS_Track *mp_ass_default_track(ASS_Library *library, struct MPOpts *opts);
-ASS_Track *mp_ass_read_stream(ASS_Library *library, const char *fname,
- char *charset);
struct MPOpts;
void mp_ass_configure(ASS_Renderer *priv, struct MPOpts *opts,