You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
4.6 KiB
155 lines
4.6 KiB
/*
|
|
* Copyright (C) 2020 The Android Open Source Project
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
//#define LOG_NDEBUG 0
|
|
#define LOG_TAG "ECOC2Utils"
|
|
#include "eco/ECOC2Utils.h"
|
|
|
|
namespace android {
|
|
namespace media {
|
|
namespace eco {
|
|
|
|
int C2MediaType2ECOCodecType(std::shared_ptr<C2PortMediaTypeSetting::output> mediatype) {
|
|
std::string_view mime = mediatype->m.value;
|
|
if (!mime.compare("video/avc")) {
|
|
return CodecTypeAVC;
|
|
} else if (!mime.compare("video/hevc")) {
|
|
return CodecTypeHEVC;
|
|
}
|
|
return CodecTypeUnknown;
|
|
}
|
|
|
|
int C2Profile2ECOProfile(C2Config::profile_t profile) {
|
|
switch (profile) {
|
|
case PROFILE_AVC_BASELINE:
|
|
return AVCProfileBaseline;
|
|
case PROFILE_AVC_CONSTRAINED_BASELINE:
|
|
return AVCProfileConstrainedBaseline;
|
|
case PROFILE_AVC_MAIN:
|
|
return AVCProfileMain;
|
|
case PROFILE_AVC_HIGH:
|
|
return AVCProfileHigh;
|
|
case PROFILE_HEVC_MAIN:
|
|
return HEVCProfileMain;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int C2Level2ECOLevel(C2Config::level_t level) {
|
|
switch (level) {
|
|
case LEVEL_AVC_1:
|
|
return AVCLevel1;
|
|
case LEVEL_AVC_1B:
|
|
return AVCLevel1b;
|
|
case LEVEL_AVC_1_1:
|
|
return AVCLevel11;
|
|
case LEVEL_AVC_1_2:
|
|
return AVCLevel12;
|
|
case LEVEL_AVC_1_3:
|
|
return AVCLevel13;
|
|
case LEVEL_AVC_2:
|
|
return AVCLevel2;
|
|
case LEVEL_AVC_2_1:
|
|
return AVCLevel21;
|
|
case LEVEL_AVC_2_2:
|
|
return AVCLevel22;
|
|
case LEVEL_AVC_3:
|
|
return AVCLevel3;
|
|
case LEVEL_AVC_3_1:
|
|
return AVCLevel31;
|
|
case LEVEL_AVC_3_2:
|
|
return AVCLevel32;
|
|
case LEVEL_AVC_4 :
|
|
return AVCLevel4;
|
|
case LEVEL_AVC_4_1:
|
|
return AVCLevel41;
|
|
case LEVEL_AVC_5:
|
|
return AVCLevel5;
|
|
case LEVEL_AVC_5_1:
|
|
return AVCLevel51;
|
|
case LEVEL_AVC_5_2:
|
|
return AVCLevel52;
|
|
case LEVEL_AVC_6:
|
|
return AVCLevel6;
|
|
case LEVEL_AVC_6_1:
|
|
return AVCLevel61;
|
|
case LEVEL_AVC_6_2:
|
|
return AVCLevel62;
|
|
case LEVEL_HEVC_MAIN_1:
|
|
return HEVCMainTierLevel1;
|
|
case LEVEL_HEVC_MAIN_2:
|
|
return HEVCMainTierLevel2;
|
|
case LEVEL_HEVC_MAIN_2_1:
|
|
return HEVCMainTierLevel21;
|
|
case LEVEL_HEVC_MAIN_3:
|
|
return HEVCMainTierLevel3;
|
|
case LEVEL_HEVC_MAIN_3_1:
|
|
return HEVCMainTierLevel31;
|
|
case LEVEL_HEVC_MAIN_4:
|
|
return HEVCMainTierLevel4;
|
|
case LEVEL_HEVC_MAIN_4_1:
|
|
return HEVCMainTierLevel41;
|
|
case LEVEL_HEVC_MAIN_5:
|
|
return HEVCMainTierLevel5;
|
|
case LEVEL_HEVC_MAIN_5_1:
|
|
return HEVCMainTierLevel51;
|
|
case LEVEL_HEVC_MAIN_5_2:
|
|
return HEVCMainTierLevel52;
|
|
case LEVEL_HEVC_MAIN_6:
|
|
return HEVCMainTierLevel6;
|
|
case LEVEL_HEVC_MAIN_6_1:
|
|
return HEVCMainTierLevel61;
|
|
case LEVEL_HEVC_MAIN_6_2:
|
|
return HEVCMainTierLevel62;
|
|
case LEVEL_HEVC_HIGH_4:
|
|
return HEVCHighTierLevel4;
|
|
case LEVEL_HEVC_HIGH_4_1:
|
|
return HEVCHighTierLevel41;
|
|
case LEVEL_HEVC_HIGH_5 :
|
|
return HEVCHighTierLevel5;
|
|
case LEVEL_HEVC_HIGH_5_1:
|
|
return HEVCHighTierLevel51;
|
|
case LEVEL_HEVC_HIGH_5_2:
|
|
return HEVCHighTierLevel52;
|
|
case LEVEL_HEVC_HIGH_6:
|
|
return HEVCHighTierLevel6;
|
|
case LEVEL_HEVC_HIGH_6_1:
|
|
return HEVCHighTierLevel61;
|
|
case LEVEL_HEVC_HIGH_6_2:
|
|
return HEVCHighTierLevel62;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int C2PictureType2ECOFrameType(C2Config::picture_type_t frametype) {
|
|
switch (frametype) {
|
|
case I_FRAME:
|
|
return FrameTypeI;
|
|
case P_FRAME:
|
|
return FrameTypeP;
|
|
case B_FRAME:
|
|
return FrameTypeB;
|
|
default:
|
|
return FrameTypeUnknown;
|
|
}
|
|
}
|
|
|
|
} // namespace eco
|
|
} // namespace media
|
|
} // namespace android
|