libopenh264enc: Return a more sensible error code in some init failure paths
[ffmpeg.git] / libavcodec / profiles.c
1 /*
2  * This file is part of Libav.
3  *
4  * Libav 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  * Libav 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 Libav; 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_LOW,   "LC"   },
34     { FF_PROFILE_AAC_SSR,   "SSR"  },
35     { FF_PROFILE_AAC_LTP,   "LTP"  },
36     { FF_PROFILE_UNKNOWN },
37 };
38
39 const AVProfile ff_dca_profiles[] = {
40     { FF_PROFILE_DTS,        "DTS"        },
41     { FF_PROFILE_DTS_ES,     "DTS-ES"     },
42     { FF_PROFILE_DTS_96_24,  "DTS 96/24"  },
43     { FF_PROFILE_DTS_HD_HRA, "DTS-HD HRA" },
44     { FF_PROFILE_DTS_HD_MA,  "DTS-HD MA"  },
45     { FF_PROFILE_UNKNOWN },
46 };
47
48 const AVProfile ff_h264_profiles[] = {
49     { FF_PROFILE_H264_BASELINE,             "Baseline"              },
50     { FF_PROFILE_H264_CONSTRAINED_BASELINE, "Constrained Baseline"  },
51     { FF_PROFILE_H264_MAIN,                 "Main"                  },
52     { FF_PROFILE_H264_EXTENDED,             "Extended"              },
53     { FF_PROFILE_H264_HIGH,                 "High"                  },
54     { FF_PROFILE_H264_HIGH_10,              "High 10"               },
55     { FF_PROFILE_H264_HIGH_10_INTRA,        "High 10 Intra"         },
56     { FF_PROFILE_H264_HIGH_422,             "High 4:2:2"            },
57     { FF_PROFILE_H264_HIGH_422_INTRA,       "High 4:2:2 Intra"      },
58     { FF_PROFILE_H264_HIGH_444,             "High 4:4:4"            },
59     { FF_PROFILE_H264_HIGH_444_PREDICTIVE,  "High 4:4:4 Predictive" },
60     { FF_PROFILE_H264_HIGH_444_INTRA,       "High 4:4:4 Intra"      },
61     { FF_PROFILE_H264_CAVLC_444,            "CAVLC 4:4:4"           },
62     { FF_PROFILE_H264_MULTIVIEW_HIGH,       "Multiview High"        },
63     { FF_PROFILE_H264_STEREO_HIGH,          "Stereo High"           },
64     { FF_PROFILE_UNKNOWN },
65 };
66
67 const AVProfile ff_hevc_profiles[] = {
68     { FF_PROFILE_HEVC_MAIN,                 "Main"                },
69     { FF_PROFILE_HEVC_MAIN_10,              "Main 10"             },
70     { FF_PROFILE_HEVC_MAIN_STILL_PICTURE,   "Main Still Picture"  },
71     { FF_PROFILE_UNKNOWN },
72 };
73
74 const AVProfile ff_jpeg2000_profiles[] = {
75     { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0,  "JPEG 2000 codestream restriction 0"   },
76     { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1,  "JPEG 2000 codestream restriction 1"   },
77     { FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION, "JPEG 2000 no codestream restrictions" },
78     { FF_PROFILE_JPEG2000_DCINEMA_2K,             "JPEG 2000 digital cinema 2K"          },
79     { FF_PROFILE_JPEG2000_DCINEMA_4K,             "JPEG 2000 digital cinema 4K"          },
80     { FF_PROFILE_UNKNOWN },
81 };
82
83 const AVProfile ff_mpeg2_video_profiles[] = {
84     { FF_PROFILE_MPEG2_422,          "4:2:2"              },
85     { FF_PROFILE_MPEG2_HIGH,         "High"               },
86     { FF_PROFILE_MPEG2_SS,           "Spatially Scalable" },
87     { FF_PROFILE_MPEG2_SNR_SCALABLE, "SNR Scalable"       },
88     { FF_PROFILE_MPEG2_MAIN,         "Main"               },
89     { FF_PROFILE_MPEG2_SIMPLE,       "Simple"             },
90     { FF_PROFILE_RESERVED,           "Reserved"           },
91     { FF_PROFILE_RESERVED,           "Reserved"           },
92     { FF_PROFILE_UNKNOWN                                  },
93 };
94
95 const AVProfile ff_mpeg4_video_profiles[] = {
96     { FF_PROFILE_MPEG4_SIMPLE,                    "Simple Profile" },
97     { FF_PROFILE_MPEG4_SIMPLE_SCALABLE,           "Simple Scalable Profile" },
98     { FF_PROFILE_MPEG4_CORE,                      "Core Profile" },
99     { FF_PROFILE_MPEG4_MAIN,                      "Main Profile" },
100     { FF_PROFILE_MPEG4_N_BIT,                     "N-bit Profile" },
101     { FF_PROFILE_MPEG4_SCALABLE_TEXTURE,          "Scalable Texture Profile" },
102     { FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION,     "Simple Face Animation Profile" },
103     { FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE,    "Basic Animated Texture Profile" },
104     { FF_PROFILE_MPEG4_HYBRID,                    "Hybrid Profile" },
105     { FF_PROFILE_MPEG4_ADVANCED_REAL_TIME,        "Advanced Real Time Simple Profile" },
106     { FF_PROFILE_MPEG4_CORE_SCALABLE,             "Code Scalable Profile" },
107     { FF_PROFILE_MPEG4_ADVANCED_CODING,           "Advanced Coding Profile" },
108     { FF_PROFILE_MPEG4_ADVANCED_CORE,             "Advanced Core Profile" },
109     { FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE, "Advanced Scalable Texture Profile" },
110     { FF_PROFILE_MPEG4_SIMPLE_STUDIO,             "Simple Studio Profile" },
111     { FF_PROFILE_MPEG4_ADVANCED_SIMPLE,           "Advanced Simple Profile" },
112     { FF_PROFILE_UNKNOWN },
113 };
114
115 const AVProfile ff_vc1_profiles[] = {
116     { FF_PROFILE_VC1_SIMPLE,   "Simple"   },
117     { FF_PROFILE_VC1_MAIN,     "Main"     },
118     { FF_PROFILE_VC1_COMPLEX,  "Complex"  },
119     { FF_PROFILE_VC1_ADVANCED, "Advanced" },
120     { FF_PROFILE_UNKNOWN },
121 };
122
123 #endif /* !CONFIG_SMALL */