summaryrefslogtreecommitdiffstats
path: root/demux/demux_mf.c
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2023-10-21 00:57:53 -0500
committerDudemanguy <random342@airmail.cc>2023-10-23 19:32:53 +0000
commitbe0a979a0b17b49f8535ee2542cca7df4c35b04d (patch)
tree953d207578ad4f6ad979aa504ac55ad33a1c4d74 /demux/demux_mf.c
parent1ea106bac0095a9eb8e7c2ff0d076816d546df10 (diff)
downloadmpv-be0a979a0b17b49f8535ee2542cca7df4c35b04d.tar.bz2
mpv-be0a979a0b17b49f8535ee2542cca7df4c35b04d.tar.xz
demux: put type2format into codec_tags with helper functions
demux_mf has a big const struct which is essentially a nice list handy list of codecs that are considered images. This is generally useful for all demuxers (demux_mkv could use this), so instead of making yet another list, lift it out and put it in a common place. Some things slightly changed so it matches the very similiar mimetype mapping struct below it. demux_mf calls a helper mapping function instead.
Diffstat (limited to 'demux/demux_mf.c')
-rw-r--r--demux/demux_mf.c64
1 files changed, 3 insertions, 61 deletions
diff --git a/demux/demux_mf.c b/demux/demux_mf.c
index b24dd3be01..8f7cb70b91 100644
--- a/demux/demux_mf.c
+++ b/demux/demux_mf.c
@@ -284,63 +284,6 @@ static bool demux_mf_read_packet(struct demuxer *demuxer,
return true;
}
-// map file extension/type to a codec name
-
-static const struct {
- const char *type;
- const char *codec;
-} type2format[] = {
- { "bmp", "bmp" },
- { "dpx", "dpx" },
- { "j2c", "jpeg2000" },
- { "j2k", "jpeg2000" },
- { "jp2", "jpeg2000" },
- { "jpc", "jpeg2000" },
- { "jpeg", "mjpeg" },
- { "jpg", "mjpeg" },
- { "jps", "mjpeg" },
- { "jls", "ljpeg" },
- { "thm", "mjpeg" },
- { "db", "mjpeg" },
- { "pcd", "photocd" },
- { "pfm", "pfm" },
- { "phm", "phm" },
- { "hdr", "hdr" },
- { "pcx", "pcx" },
- { "png", "png" },
- { "pns", "png" },
- { "ptx", "ptx" },
- { "tga", "targa" },
- { "tif", "tiff" },
- { "tiff", "tiff" },
- { "sgi", "sgi" },
- { "sun", "sunrast" },
- { "ras", "sunrast" },
- { "rs", "sunrast" },
- { "ra", "sunrast" },
- { "im1", "sunrast" },
- { "im8", "sunrast" },
- { "im24", "sunrast" },
- { "im32", "sunrast" },
- { "sunras", "sunrast" },
- { "xbm", "xbm" },
- { "pam", "pam" },
- { "pbm", "pbm" },
- { "pgm", "pgm" },
- { "pgmyuv", "pgmyuv" },
- { "ppm", "ppm" },
- { "pnm", "ppm" },
- { "gif", "gif" }, // usually handled by demux_lavf
- { "pix", "brender_pix" },
- { "exr", "exr" },
- { "pic", "pictor" },
- { "qoi", "qoi" },
- { "xface", "xface" },
- { "xwd", "xwd" },
- { "svg", "svg" },
- {0}
-};
-
static const char *probe_format(mf_t *mf, char *type, enum demux_check check)
{
if (check > DEMUX_CHECK_REQUEST)
@@ -351,10 +294,9 @@ static const char *probe_format(mf_t *mf, char *type, enum demux_check check)
if (p)
type = p + 1;
}
- for (int i = 0; type2format[i].type; i++) {
- if (type && strcasecmp(type, type2format[i].type) == 0)
- return type2format[i].codec;
- }
+ const char *codec = mp_map_type_to_image_codec(type);
+ if (codec)
+ return codec;
if (check == DEMUX_CHECK_REQUEST) {
if (!org_type) {
MP_ERR(mf, "file type was not set! (try --mf-type=ext)\n");