xref: /third_party/ffmpeg/libavcodec/profiles.c (revision cabdff1a)
1/*
2 * This file is part of FFmpeg.
3 *
4 * FFmpeg is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * FFmpeg is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with FFmpeg; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19#include "config.h"
20
21#include "avcodec.h"
22#include "profiles.h"
23
24#if !CONFIG_SMALL
25
26const AVProfile ff_aac_profiles[] = {
27    { FF_PROFILE_AAC_LOW,   "LC"       },
28    { FF_PROFILE_AAC_HE,    "HE-AAC"   },
29    { FF_PROFILE_AAC_HE_V2, "HE-AACv2" },
30    { FF_PROFILE_AAC_LD,    "LD"       },
31    { FF_PROFILE_AAC_ELD,   "ELD"      },
32    { FF_PROFILE_AAC_MAIN,  "Main" },
33    { FF_PROFILE_AAC_SSR,   "SSR"  },
34    { FF_PROFILE_AAC_LTP,   "LTP"  },
35    { FF_PROFILE_UNKNOWN },
36};
37
38const AVProfile ff_dca_profiles[] = {
39    { FF_PROFILE_DTS,         "DTS"         },
40    { FF_PROFILE_DTS_ES,      "DTS-ES"      },
41    { FF_PROFILE_DTS_96_24,   "DTS 96/24"   },
42    { FF_PROFILE_DTS_HD_HRA,  "DTS-HD HRA"  },
43    { FF_PROFILE_DTS_HD_MA,   "DTS-HD MA"   },
44    { FF_PROFILE_DTS_EXPRESS, "DTS Express" },
45    { FF_PROFILE_UNKNOWN },
46};
47
48const AVProfile ff_dnxhd_profiles[] = {
49  { FF_PROFILE_DNXHD,      "DNXHD"},
50  { FF_PROFILE_DNXHR_LB,   "DNXHR LB"},
51  { FF_PROFILE_DNXHR_SQ,   "DNXHR SQ"},
52  { FF_PROFILE_DNXHR_HQ,   "DNXHR HQ" },
53  { FF_PROFILE_DNXHR_HQX,  "DNXHR HQX"},
54  { FF_PROFILE_DNXHR_444,  "DNXHR 444"},
55  { FF_PROFILE_UNKNOWN },
56};
57
58const AVProfile ff_h264_profiles[] = {
59    { FF_PROFILE_H264_BASELINE,             "Baseline"              },
60    { FF_PROFILE_H264_CONSTRAINED_BASELINE, "Constrained Baseline"  },
61    { FF_PROFILE_H264_MAIN,                 "Main"                  },
62    { FF_PROFILE_H264_EXTENDED,             "Extended"              },
63    { FF_PROFILE_H264_HIGH,                 "High"                  },
64    { FF_PROFILE_H264_HIGH_10,              "High 10"               },
65    { FF_PROFILE_H264_HIGH_10_INTRA,        "High 10 Intra"         },
66    { FF_PROFILE_H264_HIGH_422,             "High 4:2:2"            },
67    { FF_PROFILE_H264_HIGH_422_INTRA,       "High 4:2:2 Intra"      },
68    { FF_PROFILE_H264_HIGH_444,             "High 4:4:4"            },
69    { FF_PROFILE_H264_HIGH_444_PREDICTIVE,  "High 4:4:4 Predictive" },
70    { FF_PROFILE_H264_HIGH_444_INTRA,       "High 4:4:4 Intra"      },
71    { FF_PROFILE_H264_CAVLC_444,            "CAVLC 4:4:4"           },
72    { FF_PROFILE_H264_MULTIVIEW_HIGH,       "Multiview High"        },
73    { FF_PROFILE_H264_STEREO_HIGH,          "Stereo High"           },
74    { FF_PROFILE_UNKNOWN },
75};
76
77const AVProfile ff_vvc_profiles[] = {
78    { FF_PROFILE_VVC_MAIN_10,                   "Main 10" },
79    { FF_PROFILE_VVC_MAIN_10_444,               "Main 10 4:4:4" },
80    { FF_PROFILE_UNKNOWN },
81};
82
83const AVProfile ff_hevc_profiles[] = {
84    { FF_PROFILE_HEVC_MAIN,                 "Main"                },
85    { FF_PROFILE_HEVC_MAIN_10,              "Main 10"             },
86    { FF_PROFILE_HEVC_MAIN_STILL_PICTURE,   "Main Still Picture"  },
87    { FF_PROFILE_HEVC_REXT,                 "Rext"                },
88    { FF_PROFILE_UNKNOWN },
89};
90
91const AVProfile ff_jpeg2000_profiles[] = {
92    { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0,  "JPEG 2000 codestream restriction 0"   },
93    { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1,  "JPEG 2000 codestream restriction 1"   },
94    { FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION, "JPEG 2000 no codestream restrictions" },
95    { FF_PROFILE_JPEG2000_DCINEMA_2K,             "JPEG 2000 digital cinema 2K"          },
96    { FF_PROFILE_JPEG2000_DCINEMA_4K,             "JPEG 2000 digital cinema 4K"          },
97    { FF_PROFILE_UNKNOWN },
98};
99
100const AVProfile ff_mpeg2_video_profiles[] = {
101    { FF_PROFILE_MPEG2_422,          "4:2:2"              },
102    { FF_PROFILE_MPEG2_HIGH,         "High"               },
103    { FF_PROFILE_MPEG2_SS,           "Spatially Scalable" },
104    { FF_PROFILE_MPEG2_SNR_SCALABLE, "SNR Scalable"       },
105    { FF_PROFILE_MPEG2_MAIN,         "Main"               },
106    { FF_PROFILE_MPEG2_SIMPLE,       "Simple"             },
107    { FF_PROFILE_RESERVED,           "Reserved"           },
108    { FF_PROFILE_UNKNOWN                                  },
109};
110
111const AVProfile ff_mpeg4_video_profiles[] = {
112    { FF_PROFILE_MPEG4_SIMPLE,                    "Simple Profile" },
113    { FF_PROFILE_MPEG4_SIMPLE_SCALABLE,           "Simple Scalable Profile" },
114    { FF_PROFILE_MPEG4_CORE,                      "Core Profile" },
115    { FF_PROFILE_MPEG4_MAIN,                      "Main Profile" },
116    { FF_PROFILE_MPEG4_N_BIT,                     "N-bit Profile" },
117    { FF_PROFILE_MPEG4_SCALABLE_TEXTURE,          "Scalable Texture Profile" },
118    { FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION,     "Simple Face Animation Profile" },
119    { FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE,    "Basic Animated Texture Profile" },
120    { FF_PROFILE_MPEG4_HYBRID,                    "Hybrid Profile" },
121    { FF_PROFILE_MPEG4_ADVANCED_REAL_TIME,        "Advanced Real Time Simple Profile" },
122    { FF_PROFILE_MPEG4_CORE_SCALABLE,             "Code Scalable Profile" },
123    { FF_PROFILE_MPEG4_ADVANCED_CODING,           "Advanced Coding Profile" },
124    { FF_PROFILE_MPEG4_ADVANCED_CORE,             "Advanced Core Profile" },
125    { FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE, "Advanced Scalable Texture Profile" },
126    { FF_PROFILE_MPEG4_SIMPLE_STUDIO,             "Simple Studio Profile" },
127    { FF_PROFILE_MPEG4_ADVANCED_SIMPLE,           "Advanced Simple Profile" },
128    { FF_PROFILE_UNKNOWN },
129};
130
131const AVProfile ff_vc1_profiles[] = {
132    { FF_PROFILE_VC1_SIMPLE,   "Simple"   },
133    { FF_PROFILE_VC1_MAIN,     "Main"     },
134    { FF_PROFILE_VC1_COMPLEX,  "Complex"  },
135    { FF_PROFILE_VC1_ADVANCED, "Advanced" },
136    { FF_PROFILE_UNKNOWN },
137};
138
139const AVProfile ff_vp9_profiles[] = {
140    { FF_PROFILE_VP9_0, "Profile 0" },
141    { FF_PROFILE_VP9_1, "Profile 1" },
142    { FF_PROFILE_VP9_2, "Profile 2" },
143    { FF_PROFILE_VP9_3, "Profile 3" },
144    { FF_PROFILE_UNKNOWN },
145};
146
147const AVProfile ff_av1_profiles[] = {
148    { FF_PROFILE_AV1_MAIN,         "Main" },
149    { FF_PROFILE_AV1_HIGH,         "High" },
150    { FF_PROFILE_AV1_PROFESSIONAL, "Professional" },
151    { FF_PROFILE_UNKNOWN },
152};
153
154const AVProfile ff_sbc_profiles[] = {
155    { FF_PROFILE_SBC_MSBC, "mSBC" },
156    { FF_PROFILE_UNKNOWN },
157};
158
159const AVProfile ff_prores_profiles[] = {
160    { FF_PROFILE_PRORES_PROXY,    "Proxy"    },
161    { FF_PROFILE_PRORES_LT,       "LT"       },
162    { FF_PROFILE_PRORES_STANDARD, "Standard" },
163    { FF_PROFILE_PRORES_HQ,       "HQ"       },
164    { FF_PROFILE_PRORES_4444,     "4444"     },
165    { FF_PROFILE_PRORES_XQ,       "XQ"       },
166    { FF_PROFILE_UNKNOWN }
167};
168
169const AVProfile ff_mjpeg_profiles[] = {
170    { FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT,            "Baseline"    },
171    { FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT, "Sequential"  },
172    { FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT,         "Progressive" },
173    { FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS,                "Lossless"    },
174    { FF_PROFILE_MJPEG_JPEG_LS,                         "JPEG LS"     },
175    { FF_PROFILE_UNKNOWN }
176};
177
178const AVProfile ff_arib_caption_profiles[] = {
179    { FF_PROFILE_ARIB_PROFILE_A, "Profile A" },
180    { FF_PROFILE_ARIB_PROFILE_C, "Profile C" },
181    { FF_PROFILE_UNKNOWN }
182};
183
184#endif /* !CONFIG_SMALL */
185