FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavformat
img2.c
Go to the documentation of this file.
1
/*
2
* Image format
3
* Copyright (c) 2000, 2001, 2002 Fabrice Bellard
4
* Copyright (c) 2004 Michael Niedermayer
5
*
6
* This file is part of FFmpeg.
7
*
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.
12
*
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.
17
*
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
21
*/
22
23
#include "
libavutil/avstring.h
"
24
#include "
internal.h
"
25
#include "
img2.h
"
26
27
const
IdStrMap
ff_img_tags
[] = {
28
{
AV_CODEC_ID_MJPEG
,
"jpeg"
},
29
{
AV_CODEC_ID_MJPEG
,
"jpg"
},
30
{
AV_CODEC_ID_MJPEG
,
"jps"
},
31
{
AV_CODEC_ID_MJPEG
,
"mpo"
},
32
{
AV_CODEC_ID_LJPEG
,
"ljpg"
},
33
{
AV_CODEC_ID_JPEGLS
,
"jls"
},
34
{
AV_CODEC_ID_PNG
,
"png"
},
35
{
AV_CODEC_ID_PNG
,
"pns"
},
36
{
AV_CODEC_ID_PNG
,
"mng"
},
37
{
AV_CODEC_ID_PPM
,
"ppm"
},
38
{
AV_CODEC_ID_PPM
,
"pnm"
},
39
{
AV_CODEC_ID_PGM
,
"pgm"
},
40
{
AV_CODEC_ID_PGMYUV
,
"pgmyuv"
},
41
{
AV_CODEC_ID_PBM
,
"pbm"
},
42
{
AV_CODEC_ID_PAM
,
"pam"
},
43
{
AV_CODEC_ID_ALIAS_PIX
,
"pix"
},
44
{
AV_CODEC_ID_DDS
,
"dds"
},
45
{
AV_CODEC_ID_MPEG1VIDEO
,
"mpg1-img"
},
46
{
AV_CODEC_ID_MPEG2VIDEO
,
"mpg2-img"
},
47
{
AV_CODEC_ID_MPEG4
,
"mpg4-img"
},
48
{
AV_CODEC_ID_RAWVIDEO
,
"y"
},
49
{
AV_CODEC_ID_RAWVIDEO
,
"raw"
},
50
{
AV_CODEC_ID_BMP
,
"bmp"
},
51
{
AV_CODEC_ID_TARGA
,
"tga"
},
52
{
AV_CODEC_ID_TIFF
,
"tiff"
},
53
{
AV_CODEC_ID_TIFF
,
"tif"
},
54
{
AV_CODEC_ID_SGI
,
"sgi"
},
55
{
AV_CODEC_ID_PTX
,
"ptx"
},
56
{
AV_CODEC_ID_PCX
,
"pcx"
},
57
{
AV_CODEC_ID_QDRAW
,
"pic"
},
58
{
AV_CODEC_ID_QDRAW
,
"pct"
},
59
{
AV_CODEC_ID_QDRAW
,
"pict"
},
60
{
AV_CODEC_ID_SUNRAST
,
"sun"
},
61
{
AV_CODEC_ID_SUNRAST
,
"ras"
},
62
{
AV_CODEC_ID_SUNRAST
,
"rs"
},
63
{
AV_CODEC_ID_SUNRAST
,
"im1"
},
64
{
AV_CODEC_ID_SUNRAST
,
"im8"
},
65
{
AV_CODEC_ID_SUNRAST
,
"im24"
},
66
{
AV_CODEC_ID_SUNRAST
,
"im32"
},
67
{
AV_CODEC_ID_SUNRAST
,
"sunras"
},
68
{
AV_CODEC_ID_SVG
,
"svg"
},
69
{
AV_CODEC_ID_SVG
,
"svgz"
},
70
{
AV_CODEC_ID_JPEG2000
,
"j2c"
},
71
{
AV_CODEC_ID_JPEG2000
,
"jp2"
},
72
{
AV_CODEC_ID_JPEG2000
,
"jpc"
},
73
{
AV_CODEC_ID_JPEG2000
,
"j2k"
},
74
{
AV_CODEC_ID_DPX
,
"dpx"
},
75
{
AV_CODEC_ID_EXR
,
"exr"
},
76
{
AV_CODEC_ID_PICTOR
,
"pic"
},
77
{
AV_CODEC_ID_V210X
,
"yuv10"
},
78
{
AV_CODEC_ID_WEBP
,
"webp"
},
79
{
AV_CODEC_ID_XBM
,
"xbm"
},
80
{
AV_CODEC_ID_XPM
,
"xpm"
},
81
{
AV_CODEC_ID_XFACE
,
"xface"
},
82
{
AV_CODEC_ID_XWD
,
"xwd"
},
83
{
AV_CODEC_ID_NONE
,
NULL
}
84
};
85
86
static
enum
AVCodecID
str2id
(
const
IdStrMap
*tags,
const
char
*str)
87
{
88
str = strrchr(str,
'.'
);
89
if
(!str)
90
return
AV_CODEC_ID_NONE
;
91
str++;
92
93
while
(tags->
id
) {
94
if
(!
av_strcasecmp
(str, tags->
str
))
95
return
tags->
id
;
96
97
tags++;
98
}
99
return
AV_CODEC_ID_NONE
;
100
}
101
102
enum
AVCodecID
ff_guess_image2_codec
(
const
char
*filename)
103
{
104
return
str2id
(ff_img_tags, filename);
105
}
AV_CODEC_ID_DDS
Definition:
avcodec.h:408
AV_CODEC_ID_XPM
Definition:
avcodec.h:442
NULL
#define NULL
Definition:
coverity.c:32
AV_CODEC_ID_NONE
Definition:
avcodec.h:216
AV_CODEC_ID_ALIAS_PIX
Definition:
avcodec.h:395
IdStrMap
Definition:
img2.h:66
IdStrMap::id
enum AVCodecID id
Definition:
img2.h:67
AV_CODEC_ID_PNG
Definition:
avcodec.h:279
AV_CODEC_ID_PBM
Definition:
avcodec.h:281
AV_CODEC_ID_LJPEG
Definition:
avcodec.h:227
AV_CODEC_ID_MPEG4
Definition:
avcodec.h:230
avstring.h
AV_CODEC_ID_EXR
Definition:
avcodec.h:398
AV_CODEC_ID_PAM
Definition:
avcodec.h:284
AV_CODEC_ID_MJPEG
Definition:
avcodec.h:225
img2.h
AV_CODEC_ID_PCX
Definition:
avcodec.h:327
AV_CODEC_ID_MPEG1VIDEO
Definition:
avcodec.h:219
AVCodecID
AVCodecID
Identify the syntax and semantics of the bitstream.
Definition:
avcodec.h:215
AV_CODEC_ID_WEBP
Definition:
avcodec.h:390
AV_CODEC_ID_BMP
Definition:
avcodec.h:296
internal.h
AV_CODEC_ID_XBM
Definition:
avcodec.h:378
AV_CODEC_ID_V210X
Definition:
avcodec.h:343
AV_CODEC_ID_SVG
Definition:
avcodec.h:447
IdStrMap::str
const char * str
Definition:
img2.h:68
av_strcasecmp
int av_strcasecmp(const char *a, const char *b)
Locale-independent case-insensitive compare.
Definition:
avstring.c:213
AV_CODEC_ID_XFACE
Definition:
avcodec.h:425
AV_CODEC_ID_SUNRAST
Definition:
avcodec.h:328
AV_CODEC_ID_MPEG2VIDEO
preferred ID for MPEG-1/2 video decoding
Definition:
avcodec.h:220
AV_CODEC_ID_XWD
Definition:
avcodec.h:376
AV_CODEC_ID_PICTOR
Definition:
avcodec.h:359
AV_CODEC_ID_PGMYUV
Definition:
avcodec.h:283
AV_CODEC_ID_TARGA
Definition:
avcodec.h:311
str2id
static enum AVCodecID str2id(const IdStrMap *tags, const char *str)
Definition:
img2.c:86
ff_img_tags
const IdStrMap ff_img_tags[]
Definition:
img2.c:27
AV_CODEC_ID_DPX
Definition:
avcodec.h:346
AV_CODEC_ID_PGM
Definition:
avcodec.h:282
AV_CODEC_ID_JPEG2000
Definition:
avcodec.h:306
AV_CODEC_ID_TIFF
Definition:
avcodec.h:314
AV_CODEC_ID_QDRAW
Definition:
avcodec.h:276
AV_CODEC_ID_PTX
Definition:
avcodec.h:322
ff_guess_image2_codec
enum AVCodecID ff_guess_image2_codec(const char *filename)
Definition:
img2.c:102
AV_CODEC_ID_PPM
Definition:
avcodec.h:280
AV_CODEC_ID_JPEGLS
Definition:
avcodec.h:229
AV_CODEC_ID_RAWVIDEO
Definition:
avcodec.h:231
AV_CODEC_ID_SGI
Definition:
avcodec.h:319
Generated on Tue Nov 6 2018 18:11:27 for FFmpeg by
1.8.6