summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/input.rst5
-rw-r--r--demux/demux_lavf.c4
-rw-r--r--demux/demux_subreader.c4
-rw-r--r--player/command.c12
4 files changed, 20 insertions, 5 deletions
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst
index 4ec29ba62d..3992ace93a 100644
--- a/DOCS/man/input.rst
+++ b/DOCS/man/input.rst
@@ -709,6 +709,11 @@ Property list
Otherwise, return the ``filename`` property.
+``file-format``
+ Symbolic name of the file format. In some cases, this is a comma-separated
+ list of format names, e.g. mp4 is ``mov,mp4,m4a,3gp,3g2,mj2`` (the list
+ may grow future for any format).
+
``demuxer``
Name of the current demuxer. (This is useless.)
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c
index e1800295cc..4d84bd20d4 100644
--- a/demux/demux_lavf.c
+++ b/demux/demux_lavf.c
@@ -350,9 +350,7 @@ static int lavf_check_file(demuxer_t *demuxer, enum demux_check check)
success:
- demuxer->filetype = priv->avif->long_name;
- if (!demuxer->filetype)
- demuxer->filetype = priv->avif->name;
+ demuxer->filetype = priv->avif->name;
return 0;
}
diff --git a/demux/demux_subreader.c b/demux/demux_subreader.c
index f6454aaf2e..145754be6d 100644
--- a/demux/demux_subreader.c
+++ b/demux/demux_subreader.c
@@ -547,8 +547,8 @@ static bool subreader_autodetect(stream_t *fd, struct MPOpts *opts,
{ sub_read_line_subrip, NULL, "subviewer" },
{ sub_read_line_subviewer, NULL, "subrip", "subrip" },
{ sub_read_line_ssa, NULL, "ssa", "ass-text" },
- { sub_read_line_subviewer2, NULL, "subviewer 2.0" },
- { sub_read_line_subrip09, NULL, "subrip 0.9" },
+ { sub_read_line_subviewer2, NULL, "subviewer2" },
+ { sub_read_line_subrip09, NULL, "subrip9" },
{ sub_read_line_mpl2, NULL, "mpl2" }
};
const struct subreader *srp;
diff --git a/player/command.c b/player/command.c
index 922734211c..e7ecb4d375 100644
--- a/player/command.c
+++ b/player/command.c
@@ -420,6 +420,17 @@ static int mp_property_demuxer(void *ctx, struct m_property *prop,
return m_property_strdup_ro(action, arg, demuxer->desc->name);
}
+static int mp_property_file_format(void *ctx, struct m_property *prop,
+ int action, void *arg)
+{
+ MPContext *mpctx = ctx;
+ struct demuxer *demuxer = mpctx->master_demuxer;
+ if (!demuxer)
+ return M_PROPERTY_UNAVAILABLE;
+ const char *name = demuxer->filetype ? demuxer->filetype : demuxer->desc->name;
+ return m_property_strdup_ro(action, arg, name);
+}
+
/// Position in the stream (RW)
static int mp_property_stream_pos(void *ctx, struct m_property *prop,
int action, void *arg)
@@ -3238,6 +3249,7 @@ static const struct m_property mp_properties[] = {
{"stream-path", mp_property_stream_path},
{"stream-capture", mp_property_stream_capture},
{"demuxer", mp_property_demuxer},
+ {"file-format", mp_property_file_format},
{"stream-pos", mp_property_stream_pos},
{"stream-end", mp_property_stream_end},
{"length", mp_property_length},