3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
4 * Copyright (c) 2004 Michael Niedermayer
6 * This file is part of FFmpeg.
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 #include "libavutil/avstring.h"
31 static const IdStrMap img_tags[] = {
32 { CODEC_ID_MJPEG , "jpeg"},
33 { CODEC_ID_MJPEG , "jpg"},
34 { CODEC_ID_MJPEG , "jps"},
35 { CODEC_ID_LJPEG , "ljpg"},
36 { CODEC_ID_JPEGLS , "jls"},
37 { CODEC_ID_PNG , "png"},
38 { CODEC_ID_PNG , "pns"},
39 { CODEC_ID_PNG , "mng"},
40 { CODEC_ID_PPM , "ppm"},
41 { CODEC_ID_PPM , "pnm"},
42 { CODEC_ID_PGM , "pgm"},
43 { CODEC_ID_PGMYUV , "pgmyuv"},
44 { CODEC_ID_PBM , "pbm"},
45 { CODEC_ID_PAM , "pam"},
46 { CODEC_ID_MPEG1VIDEO, "mpg1-img"},
47 { CODEC_ID_MPEG2VIDEO, "mpg2-img"},
48 { CODEC_ID_MPEG4 , "mpg4-img"},
49 { CODEC_ID_FFV1 , "ffv1-img"},
50 { CODEC_ID_RAWVIDEO , "y"},
51 { CODEC_ID_RAWVIDEO , "raw"},
52 { CODEC_ID_BMP , "bmp"},
53 { CODEC_ID_GIF , "gif"},
54 { CODEC_ID_TARGA , "tga"},
55 { CODEC_ID_TIFF , "tiff"},
56 { CODEC_ID_TIFF , "tif"},
57 { CODEC_ID_SGI , "sgi"},
58 { CODEC_ID_PTX , "ptx"},
59 { CODEC_ID_PCX , "pcx"},
60 { CODEC_ID_SUNRAST , "sun"},
61 { CODEC_ID_SUNRAST , "ras"},
62 { CODEC_ID_SUNRAST , "rs"},
63 { CODEC_ID_SUNRAST , "im1"},
64 { CODEC_ID_SUNRAST , "im8"},
65 { CODEC_ID_SUNRAST , "im24"},
66 { CODEC_ID_SUNRAST , "im32"},
67 { CODEC_ID_SUNRAST , "sunras"},
68 { CODEC_ID_JPEG2000 , "j2c"},
69 { CODEC_ID_JPEG2000 , "j2k"},
70 { CODEC_ID_JPEG2000 , "jp2"},
71 { CODEC_ID_JPEG2000 , "jpc"},
72 { CODEC_ID_DPX , "dpx"},
73 { CODEC_ID_EXR , "exr"},
74 { CODEC_ID_PICTOR , "pic"},
75 { CODEC_ID_XBM , "xbm"},
76 { CODEC_ID_XWD , "xwd"},
77 { CODEC_ID_NONE , NULL}
80 static enum CodecID av_str2id(const IdStrMap *tags, const char *str)
82 str= strrchr(str, '.');
83 if(!str) return CODEC_ID_NONE;
87 if (!av_strcasecmp(str, tags->str))
95 enum CodecID ff_guess_image2_codec(const char *filename)
97 return av_str2id(img_tags, filename);