mirror of
https://github.com/mpv-player/mpv
synced 2024-11-03 03:19:24 +01:00
options: make cache option always per-file
When playing a network stream, the cache is automatically enabled. We don't want the cache to stay enabled when playback ends. (For example, the next file to be played could be a local file, and even if that is relatively contrieved, we want to do the right thing.) Introduced the flag M_OPT_LOCAL to force an option to be always file local. This allows enabling the old mplayer semantics on a per option basis.
This commit is contained in:
parent
5a617d02d9
commit
af14474879
@ -338,7 +338,8 @@ const m_option_t common_opts[] = {
|
||||
// ------------------------- stream options --------------------
|
||||
|
||||
#ifdef CONFIG_STREAM_CACHE
|
||||
OPT_INTRANGE("cache", stream_cache_size, 0, 32, 0x7fffffff, OPTDEF_INT(-1)),
|
||||
OPT_INTRANGE("cache", stream_cache_size, M_OPT_LOCAL, 32, 0x7fffffff,
|
||||
OPTDEF_INT(-1)),
|
||||
OPT_FLAG_CONSTANTS("no-cache", stream_cache_size, 0, -1, 0),
|
||||
|
||||
OPT_FLOATRANGE("cache-min", stream_cache_min_percent, 0, 0, 99),
|
||||
|
@ -237,6 +237,10 @@ void m_config_enter_file_local(struct m_config *config)
|
||||
{
|
||||
assert(!config->file_local_mode);
|
||||
config->file_local_mode = true;
|
||||
for (struct m_config_option *co = config->opts; co; co = co->next) {
|
||||
if (co->opt->flags & M_OPT_LOCAL)
|
||||
ensure_backup(config, co);
|
||||
}
|
||||
}
|
||||
|
||||
void m_config_leave_file_local(struct m_config *config)
|
||||
|
11
m_option.h
11
m_option.h
@ -282,13 +282,14 @@ struct m_option {
|
||||
// The option is forbidden on the command line.
|
||||
#define M_OPT_NOCMD (1 << 3)
|
||||
|
||||
// The option is global in the \ref Config.
|
||||
/** It won't be saved on push and the command line parser will set it when
|
||||
* it's parsed (i.e. it won't be set later)
|
||||
* e.g options : -v, -quiet
|
||||
*/
|
||||
// This option can't be set per-file when used with struct m_config.
|
||||
#define M_OPT_GLOBAL (1 << 4)
|
||||
|
||||
// This option is always considered per-file when used with struct m_config.
|
||||
// When playback of a file ends, the option value will be restored to the value
|
||||
// from before playback begin.
|
||||
#define M_OPT_LOCAL (1 << 5)
|
||||
|
||||
// The option should be set during command line pre-parsing
|
||||
#define M_OPT_PRE_PARSE (1 << 6)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user