summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2023-09-19 15:58:34 -0500
committerDudemanguy <random342@airmail.cc>2023-09-22 14:20:38 +0000
commitb2edd4312d06de7ced543e2e389c1e3866c27755 (patch)
tree04ed2f17c38d3dd879fc2344fd6a1c68a1ae5e4a /demux
parenta343666ab5121e7a3388be9aa2d8731d6d1f2f64 (diff)
downloadmpv-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.c11
-rw-r--r--demux/demux_mf.c12
-rw-r--r--demux/demux_mkv.c14
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)