]> git.sesse.net Git - ffmpeg/blob - libavcodec/profiles.c
lavc: Add coded bitstream read/write support for AV1
[ffmpeg] / libavcodec / profiles.c
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_hevc_profiles[] = {
78     { FF_PROFILE_HEVC_MAIN,                 "Main"                },
79     { FF_PROFILE_HEVC_MAIN_10,              "Main 10"             },
80     { FF_PROFILE_HEVC_MAIN_STILL_PICTURE,   "Main Still Picture"  },
81     { FF_PROFILE_HEVC_REXT,                 "Rext"                },
82     { FF_PROFILE_UNKNOWN },
83 };
84
85 const AVProfile ff_jpeg2000_profiles[] = {
86     { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0,  "JPEG 2000 codestream restriction 0"   },
87     { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1,  "JPEG 2000 codestream restriction 1"   },
88     { FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION, "JPEG 2000 no codestream restrictions" },
89     { FF_PROFILE_JPEG2000_DCINEMA_2K,             "JPEG 2000 digital cinema 2K"          },
90     { FF_PROFILE_JPEG2000_DCINEMA_4K,             "JPEG 2000 digital cinema 4K"          },
91     { FF_PROFILE_UNKNOWN },
92 };
93
94 const AVProfile ff_mpeg2_video_profiles[] = {
95     { FF_PROFILE_MPEG2_422,          "4:2:2"              },
96     { FF_PROFILE_MPEG2_HIGH,         "High"               },
97     { FF_PROFILE_MPEG2_SS,           "Spatially Scalable" },
98     { FF_PROFILE_MPEG2_SNR_SCALABLE, "SNR Scalable"       },
99     { FF_PROFILE_MPEG2_MAIN,         "Main"               },
100     { FF_PROFILE_MPEG2_SIMPLE,       "Simple"             },
101     { FF_PROFILE_RESERVED,           "Reserved"           },
102     { FF_PROFILE_RESERVED,           "Reserved"           },
103     { FF_PROFILE_UNKNOWN                                  },
104 };
105
106 const AVProfile ff_mpeg4_video_profiles[] = {
107     { FF_PROFILE_MPEG4_SIMPLE,                    "Simple Profile" },
108     { FF_PROFILE_MPEG4_SIMPLE_SCALABLE,           "Simple Scalable Profile" },
109     { FF_PROFILE_MPEG4_CORE,                      "Core Profile" },
110     { FF_PROFILE_MPEG4_MAIN,                      "Main Profile" },
111     { FF_PROFILE_MPEG4_N_BIT,                     "N-bit Profile" },
112     { FF_PROFILE_MPEG4_SCALABLE_TEXTURE,          "Scalable Texture Profile" },
113     { FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION,     "Simple Face Animation Profile" },
114     { FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE,    "Basic Animated Texture Profile" },
115     { FF_PROFILE_MPEG4_HYBRID,                    "Hybrid Profile" },
116     { FF_PROFILE_MPEG4_ADVANCED_REAL_TIME,        "Advanced Real Time Simple Profile" },
117     { FF_PROFILE_MPEG4_CORE_SCALABLE,             "Code Scalable Profile" },
118     { FF_PROFILE_MPEG4_ADVANCED_CODING,           "Advanced Coding Profile" },
119     { FF_PROFILE_MPEG4_ADVANCED_CORE,             "Advanced Core Profile" },
120     { FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE, "Advanced Scalable Texture Profile" },
121     { FF_PROFILE_MPEG4_SIMPLE_STUDIO,             "Simple Studio Profile" },
122     { FF_PROFILE_MPEG4_ADVANCED_SIMPLE,           "Advanced Simple Profile" },
123     { FF_PROFILE_UNKNOWN },
124 };
125
126 const AVProfile ff_vc1_profiles[] = {
127     { FF_PROFILE_VC1_SIMPLE,   "Simple"   },
128     { FF_PROFILE_VC1_MAIN,     "Main"     },
129     { FF_PROFILE_VC1_COMPLEX,  "Complex"  },
130     { FF_PROFILE_VC1_ADVANCED, "Advanced" },
131     { FF_PROFILE_UNKNOWN },
132 };
133
134 const AVProfile ff_vp9_profiles[] = {
135     { FF_PROFILE_VP9_0, "Profile 0" },
136     { FF_PROFILE_VP9_1, "Profile 1" },
137     { FF_PROFILE_VP9_2, "Profile 2" },
138     { FF_PROFILE_VP9_3, "Profile 3" },
139     { FF_PROFILE_UNKNOWN },
140 };
141
142 const AVProfile ff_av1_profiles[] = {
143     { FF_PROFILE_AV1_MAIN,         "Main" },
144     { FF_PROFILE_AV1_HIGH,         "High" },
145     { FF_PROFILE_AV1_PROFESSIONAL, "Professional" },
146     { FF_PROFILE_UNKNOWN },
147 };
148
149 const AVProfile ff_sbc_profiles[] = {
150     { FF_PROFILE_SBC_MSBC, "mSBC" },
151     { FF_PROFILE_UNKNOWN },
152 };
153
154 #endif /* !CONFIG_SMALL */