diff options
author | Clément Bœsch <ubitux@gmail.com> | 2011-02-26 20:59:16 +0100 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-04-20 04:22:52 +0300 |
commit | 7221e28fe3d743aaf6357bb0838e762781644f0d (patch) | |
tree | bce8922ea210b28bba43d5f5123f7f511c689fed | |
parent | 9bcfbe4d4ff8c40fff45798ae7f907118218c17b (diff) | |
download | mpv-7221e28fe3d743aaf6357bb0838e762781644f0d.tar.bz2 mpv-7221e28fe3d743aaf6357bb0838e762781644f0d.tar.xz |
subs: move text sub loading logic down to find_subfiles.c
Move path handling for loading external subtitle files from mplayer.c
to find_subfiles.c. Now the remaining code in mplayer.c only gets a
list of potential filenames and tries opening those.
-rw-r--r-- | mplayer.c | 15 | ||||
-rw-r--r-- | sub/find_subfiles.c | 11 | ||||
-rw-r--r-- | sub/find_subfiles.h | 2 |
3 files changed, 17 insertions, 11 deletions
@@ -4569,15 +4569,12 @@ if(vo_spudec==NULL && add_subtitles(mpctx, opts->sub_name[i], sub_fps, 0); } if(opts->sub_auto) { // auto load sub file ... - char *psub = get_path( "sub/" ); - char **tmp = sub_filenames((psub ? psub : ""), mpctx->filename); - int i = 0; - free(psub); // release the buffer created by get_path() above - while (tmp[i]) { - add_subtitles(mpctx, tmp[i], sub_fps, 1); - free(tmp[i++]); - } - free(tmp); + char **tmp = find_text_subtitles(mpctx->filename); + for (int i = 0; tmp[i]; i++) { + add_subtitles(mpctx, tmp[i], sub_fps, 1); + free(tmp[i]); + } + free(tmp); } if (mpctx->set_of_sub_size > 0) mpctx->sub_counts[SUB_SOURCE_SUBS] = mpctx->set_of_sub_size; diff --git a/sub/find_subfiles.c b/sub/find_subfiles.c index 72a6887bf6..19ee0f065b 100644 --- a/sub/find_subfiles.c +++ b/sub/find_subfiles.c @@ -4,6 +4,7 @@ #include <ctype.h> #include "mp_msg.h" +#include "path.h" #include "sub/find_subfiles.h" #include "sub/sub.h" @@ -85,7 +86,7 @@ static int compare_sub_priority(const void *a, const void *b) } } -char **sub_filenames(const char *path, char *fname) +static char **sub_filenames(const char *path, const char *fname) { char *f_dir, *f_fname, *f_fname_noext, *f_fname_trim, *tmp, *tmp_sub_id; char *tmp_fname_noext, *tmp_fname_trim, *tmp_fname_ext, *tmpresult; @@ -269,3 +270,11 @@ char **sub_filenames(const char *path, char *fname) return result2; } + +char **find_text_subtitles(const char *fname) +{ + char *psub = get_path("sub/"); + char **tmp = sub_filenames(psub ? psub : "", fname); + free(psub); + return tmp; +} diff --git a/sub/find_subfiles.h b/sub/find_subfiles.h index 06105747dc..c9b0c9137e 100644 --- a/sub/find_subfiles.h +++ b/sub/find_subfiles.h @@ -21,6 +21,6 @@ #define MAX_SUBTITLE_FILES 128 -char **sub_filenames(const char *path, char *fname); +char **find_text_subtitles(const char *fname); #endif /* MPLAYER_FINDFILES_H */ |