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 
26 const 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 
38 const 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 
48 const 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 
58 const 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 
77 const 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 
83 const 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 
91 const 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 
100 const 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 
111 const 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 
131 const 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 
139 const 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 
147 const 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 
154 const AVProfile ff_sbc_profiles[] = {
155     { FF_PROFILE_SBC_MSBC, "mSBC" },
156     { FF_PROFILE_UNKNOWN },
157 };
158 
159 const 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 
169 const 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 
178 const 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