android13/vendor/rockchip/hardware/interfaces/rockit/direct/codec/RTCodecProfiles.h

88 lines
2.9 KiB
C++

/*
* Copyright 2023 Rockchip Electronics Co. LTD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*
*/
#ifndef _ROCKIT_CODEC_PROFILES_HEAD_
#define _ROCKIT_CODEC_PROFILES_HEAD_
namespace android {
#define RT_PROFILE_UNKNOWN -99
typedef enum _RTAACProfile {
RT_PROFILE_AAC_MAIN = 0,
RT_PROFILE_AAC_LOW = 1,
RT_PROFILE_AAC_SSR = 2,
RT_PROFILE_AAC_LTP = 3,
RT_PROFILE_AAC_HE = 4,
RT_PROFILE_AAC_LD = 22,
RT_PROFILE_AAC_HE_V2 = 28,
RT_PROFILE_AAC_ELD = 38,
} RTAACProfile;
typedef enum _RTMPEG2Profile {
RT_PROFILE_MPEG2_422 = 0,
RT_PROFILE_MPEG2_HIGH = 1,
RT_PROFILE_MPEG2_SS = 2,
RT_PROFILE_MPEG2_SNR_SCALABLE = 3,
RT_PROFILE_MPEG2_MAIN = 4,
RT_PROFILE_MPEG2_SIMPLE = 5,
} RTMPEG2Profile;
typedef enum _RTH264Profile {
RT_PROFILE_H264_CAVLC_444 = 44, // YUV 4:4:4/14 "CAVLC 4:4:4"
RT_PROFILE_H264_BASELINE = 66, // YUV 4:2:0/8 "Baseline"
RT_PROFILE_H264_MAIN = 77, // YUV 4:2:0/8 "Main"
RT_PROFILE_H264_EXTENDED = 88, // YUV 4:2:0/8 "Extended"
RT_PROFILE_H264_HIGH = 100, // YUV 4:2:0/8 "High"
RT_PROFILE_H264_HIGH_10 = 110, // YUV 4:2:0/10 "High 10"
RT_PROFILE_H264_MVC_HIGH = 118, // YUV 4:2:0/8 "Multiview High"
RT_PROFILE_H264_HIGH_422 = 122, // YUV 4:2:2/10 "High 4:2:2"
RT_PROFILE_H264_STEREO_HIGH = 128, // YUV 4:2:0/8 "Stereo High"
RT_PROFILE_H264_HIGH_444 = 144, // YUV 4:4:4/14 "High 4:4:4"
} RTH264Profile;
typedef enum _RTVP9Profile {
RT_PROFILE_VP9_0 = 0,
RT_PROFILE_VP9_1 = 1,
RT_PROFILE_VP9_2 = 2,
RT_PROFILE_VP9_3 = 3,
} RTVP9Profile;
typedef enum _RTHEVCProfile {
RT_PROFILE_HEVC_MAIN = 1,
RT_PROFILE_HEVC_MAIN_10 = 2,
RT_PROFILE_HEVC_MAIN_STILL_PICTURE = 3,
RT_PROFILE_HEVC_HEVC_REXT = 4,
} RTHEVCProfile;
typedef struct _RTCodecProfiles {
int profile;
const char *name; // short name for the profile
} RTCodecProfiles;
class RTMediaProfiles {
public:
static RTCodecProfiles* getSupportProfile(int rtCodecId);
};
}
#endif // _ROCKIT_CODEC_PROFILES_HEAD_