summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2011-02-26 20:59:16 +0100
committerUoti Urpala <uau@mplayer2.org>2011-04-20 04:22:52 +0300
commit7221e28fe3d743aaf6357bb0838e762781644f0d (patch)
treebce8922ea210b28bba43d5f5123f7f511c689fed
parent9bcfbe4d4ff8c40fff45798ae7f907118218c17b (diff)
downloadmpv-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.c15
-rw-r--r--sub/find_subfiles.c11
-rw-r--r--sub/find_subfiles.h2
3 files changed, 17 insertions, 11 deletions
diff --git a/mplayer.c b/mplayer.c
index 34e98d699d..59dff418d9 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -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 */