From ae1aeab7aa2b7c378a9f734d227121f84ae85ed2 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 1 Mar 2020 00:28:09 +0100 Subject: options: make decoder options local to decoder wrapper Instead of having f_decoder_wrapper create its own copy of the entire mpv option tree, create a struct local to that file and move all used options to there. movie_aspect is used by the "video-aspect" deprecated property code. I think it's probably better not to remove the property yet, but fortunately it's easy to work around without needing special handling for this option or so. correct_pts is used to prevent use of hr-seek in playloop.c. Ignore that, if you use --no-correct-pts you're asking for trouble anyway. This is the only behavior change. --- player/command.c | 4 ++-- player/main.c | 16 ---------------- player/playloop.c | 3 +-- 3 files changed, 3 insertions(+), 20 deletions(-) (limited to 'player') diff --git a/player/command.c b/player/command.c index fb28b285e1..2ac6add009 100644 --- a/player/command.c +++ b/player/command.c @@ -2565,7 +2565,7 @@ static int mp_property_aspect(void *ctx, struct m_property *prop, skip_warn: ; - float aspect = mpctx->opts->movie_aspect; + float aspect = *(float *)opt->data; if (mpctx->vo_chain && aspect <= 0) { struct mp_image_params *params = &mpctx->vo_chain->filter->input_params; if (params && params->p_w > 0 && params->p_h > 0) { @@ -2586,7 +2586,7 @@ skip_warn: ; *(struct m_option *)arg = *(opt->opt); return M_PROPERTY_OK; case M_PROPERTY_PRINT: { - if (mpctx->opts->movie_aspect < 0) { + if (aspect < 0) { *(char **)arg = talloc_asprintf(NULL, "%.3f (original)", aspect); return M_PROPERTY_OK; } diff --git a/player/main.c b/player/main.c index 6cb56ef601..9dbd160a70 100644 --- a/player/main.c +++ b/player/main.c @@ -201,22 +201,6 @@ static bool handle_help_options(struct MPContext *mpctx) { struct MPOpts *opts = mpctx->opts; struct mp_log *log = mpctx->log; - if (opts->audio_decoders && strcmp(opts->audio_decoders, "help") == 0) { - struct mp_decoder_list *list = audio_decoder_list(); - mp_print_decoders(log, MSGL_INFO, "Audio decoders:", list); - talloc_free(list); - return true; - } - if (opts->audio_spdif && strcmp(opts->audio_spdif, "help") == 0) { - MP_INFO(mpctx, "Choices: ac3,dts-hd,dts (and possibly more)\n"); - return true; - } - if (opts->video_decoders && strcmp(opts->video_decoders, "help") == 0) { - struct mp_decoder_list *list = video_decoder_list(); - mp_print_decoders(log, MSGL_INFO, "Video decoders:", list); - talloc_free(list); - return true; - } if ((opts->demuxer_name && strcmp(opts->demuxer_name, "help") == 0) || (opts->audio_demuxer_name && strcmp(opts->audio_demuxer_name, "help") == 0) || (opts->sub_demuxer_name && strcmp(opts->sub_demuxer_name, "help") == 0)) { diff --git a/player/playloop.c b/player/playloop.c index 113feea770..6fcd986ebd 100644 --- a/player/playloop.c +++ b/player/playloop.c @@ -289,8 +289,7 @@ static void mp_seek(MPContext *mpctx, struct seek_params seek) double demux_pts = seek_pts; - bool hr_seek = (opts->correct_pts && seek.exact != MPSEEK_KEYFRAME && - seek_pts != MP_NOPTS_VALUE) && + bool hr_seek = seek.exact != MPSEEK_KEYFRAME && seek_pts != MP_NOPTS_VALUE && (seek.exact >= MPSEEK_EXACT || opts->hr_seek == 1 || (opts->hr_seek >= 0 && seek.type == MPSEEK_ABSOLUTE) || (opts->hr_seek == 2 && (!mpctx->vo_chain || mpctx->vo_chain->is_sparse))); -- cgit v1.2.3