summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-05-09 16:21:44 +0200
committerwm4 <wm4@nowhere>2015-05-09 16:48:05 +0200
commitb6346cd0bafc6a56c29b9c6c56e612e32295ea98 (patch)
tree032def7d3a9f48687038994cfcd6a8cb4a5ce772 /player
parent34ee78f2cba0510cc37162e89cbdc9d4a9514f92 (diff)
downloadmpv-b6346cd0bafc6a56c29b9c6c56e612e32295ea98.tar.bz2
mpv-b6346cd0bafc6a56c29b9c6c56e612e32295ea98.tar.xz
player: make resuming playlists less noisy in verbose mode
mp_find_config_file() will print the filename lookup and its result in verbose mode. This is wanted, but gets inconvenient when it is done for every playlist entry (for resuming). Lookup the watch_later subdir only once and cache the result instead. This drops the logic for loading the resume file from other locations, which should generally be unnecessary, though might lead to confusion if the user has mixed old and new config paths (which the user shouldn't). Also add a mp_find_user_config_file() function for a more straightforward and reliable way to get actual local configpaths, instead of possibly global and unwritable locations. Also, for symmetry, check the resume option in mp_load_playback_resume() just like mp_check_playlist_resume() does.
Diffstat (limited to 'player')
-rw-r--r--player/configfiles.c26
-rw-r--r--player/core.h2
-rw-r--r--player/loadfile.c3
3 files changed, 16 insertions, 15 deletions
diff --git a/player/configfiles.c b/player/configfiles.c
index 6806938a1a..0cd1d0d523 100644
--- a/player/configfiles.c
+++ b/player/configfiles.c
@@ -166,10 +166,10 @@ void mp_load_auto_profiles(struct MPContext *mpctx)
#define MP_WATCH_LATER_CONF "watch_later"
-static char *mp_get_playback_resume_config_filename(struct mpv_global *global,
+static char *mp_get_playback_resume_config_filename(struct MPContext *mpctx,
const char *fname)
{
- struct MPOpts *opts = global->opts;
+ struct MPOpts *opts = mpctx->opts;
char *res = NULL;
void *tmp = talloc_new(NULL);
const char *realpath = fname;
@@ -195,15 +195,14 @@ static char *mp_get_playback_resume_config_filename(struct mpv_global *global,
for (int i = 0; i < 16; i++)
conf = talloc_asprintf_append(conf, "%02X", md5[i]);
- res = talloc_asprintf(tmp, MP_WATCH_LATER_CONF "/%s", conf);
- res = mp_find_config_file(NULL, global, res);
-
- if (!res) {
- res = mp_find_config_file(tmp, global, MP_WATCH_LATER_CONF);
- if (res)
- res = talloc_asprintf(NULL, "%s/%s", res, conf);
+ if (!mpctx->cached_watch_later_configdir) {
+ mpctx->cached_watch_later_configdir =
+ mp_find_user_config_file(mpctx, mpctx->global, MP_WATCH_LATER_CONF);
}
+ if (mpctx->cached_watch_later_configdir)
+ res = mp_path_join(NULL, mpctx->cached_watch_later_configdir, conf);
+
exit:
talloc_free(tmp);
return res;
@@ -298,7 +297,7 @@ void mp_write_watch_later_conf(struct MPContext *mpctx)
mp_mk_config_dir(mpctx->global, MP_WATCH_LATER_CONF);
- conffile = mp_get_playback_resume_config_filename(mpctx->global, filename);
+ conffile = mp_get_playback_resume_config_filename(mpctx, filename);
if (!conffile)
goto exit;
@@ -342,7 +341,9 @@ exit:
void mp_load_playback_resume(struct MPContext *mpctx, const char *file)
{
- char *fname = mp_get_playback_resume_config_filename(mpctx->global, file);
+ if (!mpctx->opts->position_resume)
+ return;
+ char *fname = mp_get_playback_resume_config_filename(mpctx, file);
if (fname && mp_path_exists(fname)) {
// Never apply the saved start position to following files
m_config_backup_opt(mpctx->mconfig, "start");
@@ -365,8 +366,7 @@ struct playlist_entry *mp_check_playlist_resume(struct MPContext *mpctx,
if (!mpctx->opts->position_resume)
return NULL;
for (struct playlist_entry *e = playlist->first; e; e = e->next) {
- char *conf = mp_get_playback_resume_config_filename(mpctx->global,
- e->filename);
+ char *conf = mp_get_playback_resume_config_filename(mpctx, e->filename);
bool exists = conf && mp_path_exists(conf);
talloc_free(conf);
if (exists)
diff --git a/player/core.h b/player/core.h
index ea7694d02a..055a48bda4 100644
--- a/player/core.h
+++ b/player/core.h
@@ -335,6 +335,8 @@ typedef struct MPContext {
// playback rate. Used to avoid showing it multiple times.
bool drop_message_shown;
+ char *cached_watch_later_configdir;
+
struct screenshot_ctx *screenshot_ctx;
struct command_ctx *command_ctx;
struct encode_lavc_context *encode_lavc_ctx;
diff --git a/player/loadfile.c b/player/loadfile.c
index 40ed71d5fd..3dc0e0318a 100644
--- a/player/loadfile.c
+++ b/player/loadfile.c
@@ -1063,8 +1063,7 @@ static void play_current_file(struct MPContext *mpctx)
mp_load_auto_profiles(mpctx);
- if (opts->position_resume)
- mp_load_playback_resume(mpctx, mpctx->filename);
+ mp_load_playback_resume(mpctx, mpctx->filename);
load_per_file_options(mpctx->mconfig, mpctx->playing->params,
mpctx->playing->num_params);