diff options
author | Dudemanguy <random342@airmail.cc> | 2023-10-21 00:57:53 -0500 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2023-10-23 19:32:53 +0000 |
commit | be0a979a0b17b49f8535ee2542cca7df4c35b04d (patch) | |
tree | 953d207578ad4f6ad979aa504ac55ad33a1c4d74 /demux/demux_mf.c | |
parent | 1ea106bac0095a9eb8e7c2ff0d076816d546df10 (diff) | |
download | mpv-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.c | 64 |
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"); |