diff options
author | Dudemanguy <random342@airmail.cc> | 2023-09-19 15:58:34 -0500 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2023-09-22 14:20:38 +0000 |
commit | b2edd4312d06de7ced543e2e389c1e3866c27755 (patch) | |
tree | 04ed2f17c38d3dd879fc2344fd6a1c68a1ae5e4a /demux | |
parent | a343666ab5121e7a3388be9aa2d8731d6d1f2f64 (diff) | |
download | mpv-b2edd4312d06de7ced543e2e389c1e3866c27755.tar.bz2 mpv-b2edd4312d06de7ced543e2e389c1e3866c27755.tar.xz |
demuxer: remove several mp_read_option_raw calls
With the previous commit, we can just access option values directly now
and avoid a lot of complication. Note that the mp_read_option_raw call
for edition requires calling mp_get_config_group since that option needs
to live in MPOpts.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_lavf.c | 11 | ||||
-rw-r--r-- | demux/demux_mf.c | 12 | ||||
-rw-r--r-- | demux/demux_mkv.c | 14 |
3 files changed, 12 insertions, 25 deletions
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index 81791915f2..7ef87946bc 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -244,7 +244,6 @@ typedef struct lavf_priv { double seek_delay; struct demux_lavf_opts *opts; - double mf_fps; bool pcm_seek_hack_disabled; AVStream *pcm_seek_hack; @@ -746,7 +745,7 @@ static void handle_new_stream(demuxer_t *demuxer, int i) if (is_image(st, sh->attached_picture, priv->avif)) { MP_VERBOSE(demuxer, "Assuming this is an image format.\n"); sh->image = true; - sh->codec->fps = priv->mf_fps; + sh->codec->fps = demuxer->opts->mf_fps; } sh->codec->par_w = st->sample_aspect_ratio.num; sh->codec->par_h = st->sample_aspect_ratio.den; @@ -981,12 +980,6 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check) priv->opts = mp_get_config_group(priv, demuxer->global, &demux_lavf_conf); struct demux_lavf_opts *lavfdopts = priv->opts; - int index_mode; - mp_read_option_raw(demuxer->global, "index", &m_option_type_choice, - &index_mode); - mp_read_option_raw(demuxer->global, "mf-fps", &m_option_type_double, - &priv->mf_fps); - if (lavf_check_file(demuxer, check) < 0) goto fail; @@ -994,7 +987,7 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check) if (!avfc) goto fail; - if (index_mode != 1) + if (demuxer->opts->index_mode != 1) avfc->flags |= AVFMT_FLAG_IGNIDX; if (lavfdopts->probesize) { diff --git a/demux/demux_mf.c b/demux/demux_mf.c index 2e5cfbaacb..b24dd3be01 100644 --- a/demux/demux_mf.c +++ b/demux/demux_mf.c @@ -382,15 +382,9 @@ static int demux_open_mf(demuxer_t *demuxer, enum demux_check check) if (!mf || mf->nr_of_files < 1) goto error; - double mf_fps; - char *mf_type; - mp_read_option_raw(demuxer->global, "mf-fps", &m_option_type_double, &mf_fps); - mp_read_option_raw(demuxer->global, "mf-type", &m_option_type_string, &mf_type); - const char *codec = mp_map_mimetype_to_video_codec(demuxer->stream->mime_type); - if (!codec || (mf_type && mf_type[0])) - codec = probe_format(mf, mf_type, check); - talloc_free(mf_type); + if (!codec || (demuxer->opts->mf_type && demuxer->opts->mf_type[0])) + codec = probe_format(mf, demuxer->opts->mf_type, check); if (!codec) goto error; @@ -407,7 +401,7 @@ static int demux_open_mf(demuxer_t *demuxer, enum demux_check check) c->codec = codec; c->disp_w = 0; c->disp_h = 0; - c->fps = mf_fps; + c->fps = demuxer->opts->mf_fps; c->reliable_fps = true; demux_add_sh_stream(demuxer, sh); diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 870d49dc5a..6a47719420 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -46,6 +46,7 @@ #include "common/av_common.h" #include "options/m_config.h" #include "options/m_option.h" +#include "options/options.h" #include "misc/bstr.h" #include "stream/stream.h" #include "video/csputils.h" @@ -190,7 +191,6 @@ typedef struct mkv_demuxer { mkv_index_t *indexes; size_t num_indexes; bool index_complete; - int index_mode; int edition_id; @@ -865,7 +865,7 @@ static int demux_mkv_read_cues(demuxer_t *demuxer) mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; stream_t *s = demuxer->stream; - if (mkv_d->index_mode != 1 || mkv_d->index_complete) { + if (demuxer->opts->index_mode != 1 || mkv_d->index_complete) { ebml_read_skip(demuxer->log, -1, s); return 0; } @@ -1315,7 +1315,7 @@ static void read_deferred_cues(demuxer_t *demuxer) { mkv_demuxer_t *mkv_d = demuxer->priv; - if (mkv_d->index_complete || mkv_d->index_mode != 1) + if (mkv_d->index_complete || demuxer->opts->index_mode != 1) return; for (int n = 0; n < mkv_d->num_headers; n++) { @@ -2117,10 +2117,10 @@ static int demux_mkv_open(demuxer_t *demuxer, enum demux_check check) mkv_d->segment_start = stream_tell(s); mkv_d->segment_end = end_pos; - mp_read_option_raw(demuxer->global, "index", &m_option_type_choice, - &mkv_d->index_mode); - mp_read_option_raw(demuxer->global, "edition", &m_option_type_choice, - &mkv_d->edition_id); + struct MPOpts *mp_opts = mp_get_config_group(mkv_d, demuxer->global, &mp_opt_root); + mkv_d->edition_id = mp_opts->edition_id; + talloc_free(mp_opts); + mkv_d->opts = mp_get_config_group(mkv_d, demuxer->global, &demux_mkv_conf); if (demuxer->params && demuxer->params->matroska_was_valid) |