diff options
author | wm4 <wm4@nowhere> | 2013-06-22 02:09:52 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-06-25 00:11:56 +0200 |
commit | cfa45c40dc0cfe44b699029168b62d4d3e16c288 (patch) | |
tree | 5a80d3b6e82711a5816c509e803c029b93342892 /sub | |
parent | 1bfae45a88ac7c24b74a6f7ca6eb4aa27d20c653 (diff) | |
download | mpv-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.c | 28 | ||||
-rw-r--r-- | sub/ass_mp.h | 2 |
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, |