mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-12-26 11:17:44 +01:00
1. Add anti-line tuning 2. Adjust AQ assignment 3. Add smart encoding 4. Add deblur/qpmap routine 5. Add atf & four level intensity control atf 6. Add atr anti_blur function 7. Add real time bitrate output 8. Add smear buffer for vepu510 Change-Id: Iae661686f6adacd0b5ec57c102c184e2537dfc7d Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
148 lines
3.5 KiB
C
148 lines
3.5 KiB
C
/*
|
|
*
|
|
* Copyright 2015 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.
|
|
*/
|
|
|
|
#include "mpp_2str.h"
|
|
#include "h264_syntax.h"
|
|
#include "h265_syntax.h"
|
|
|
|
const char *strof_ctx_type(MppCtxType type)
|
|
{
|
|
static const char *ctx_type_str[MPP_CTX_BUTT] = {
|
|
"dec",
|
|
"enc",
|
|
"isp",
|
|
};
|
|
|
|
return ctx_type_str[type];
|
|
}
|
|
|
|
const char *strof_coding_type(MppCodingType coding)
|
|
{
|
|
static const char *coding_type_str0[] = {
|
|
"unused",
|
|
"autodetect",
|
|
"mpeg2",
|
|
"h263",
|
|
"mpeg4",
|
|
"wmv",
|
|
"rv",
|
|
"h264",
|
|
"mjpeg",
|
|
"vp8",
|
|
"vp9",
|
|
};
|
|
static const char *coding_type_str1[] = {
|
|
"vc1",
|
|
"flv1",
|
|
"divx3",
|
|
"vp6",
|
|
"h265",
|
|
"avs+",
|
|
"avs",
|
|
"avs2",
|
|
"av1",
|
|
};
|
|
|
|
if (coding >= MPP_VIDEO_CodingUnused && coding <= MPP_VIDEO_CodingVP9)
|
|
return coding_type_str0[coding];
|
|
else if (coding >= MPP_VIDEO_CodingVC1 && coding <= MPP_VIDEO_CodingAV1)
|
|
return coding_type_str1[coding - MPP_VIDEO_CodingVC1];
|
|
|
|
return NULL;
|
|
}
|
|
|
|
const char *strof_rc_mode(MppEncRcMode rc_mode)
|
|
{
|
|
static const char *rc_mode_str[] = {
|
|
"vbr",
|
|
"cbr",
|
|
"fixqp",
|
|
"avbr",
|
|
"smtrc"
|
|
};
|
|
|
|
if (rc_mode >= MPP_ENC_RC_MODE_VBR && rc_mode < MPP_ENC_RC_MODE_BUTT)
|
|
return rc_mode_str[rc_mode];
|
|
|
|
return NULL;
|
|
}
|
|
const char *strof_gop_mode(MppEncRcGopMode gop_mode)
|
|
{
|
|
static const char *gop_mode_str[] = {
|
|
"normalp",
|
|
"smartp",
|
|
};
|
|
|
|
if (gop_mode >= MPP_ENC_RC_NORMAL_P && gop_mode < MPP_ENC_RC_GOP_MODE_BUTT)
|
|
return gop_mode_str[gop_mode];
|
|
|
|
return NULL;
|
|
}
|
|
|
|
const char *strof_profle(MppCodingType coding, RK_U32 profile)
|
|
{
|
|
static const char *h264_profile_str[] = {
|
|
"baseline",
|
|
"main",
|
|
"high",
|
|
"high10",
|
|
};
|
|
static const char *h265_profile_str[] = {
|
|
"main",
|
|
"main10",
|
|
};
|
|
static const char *jpeg_profile_str[] = {
|
|
"base",
|
|
};
|
|
static const char *vp8_profile_str[] = {
|
|
"base",
|
|
};
|
|
static const char *unknown_str[] = {
|
|
"unknown",
|
|
};
|
|
|
|
switch (coding) {
|
|
case MPP_VIDEO_CodingAVC : {
|
|
if (profile == H264_PROFILE_BASELINE)
|
|
return h264_profile_str[0];
|
|
else if (profile == H264_PROFILE_MAIN)
|
|
return h264_profile_str[1];
|
|
else if (profile == H264_PROFILE_HIGH)
|
|
return h264_profile_str[2];
|
|
else if (profile == H264_PROFILE_HIGH10)
|
|
return h264_profile_str[3];
|
|
else
|
|
return unknown_str[0];
|
|
} break;
|
|
case MPP_VIDEO_CodingHEVC : {
|
|
if (profile < 2)
|
|
return h265_profile_str[0];
|
|
else
|
|
return unknown_str[0];
|
|
} break;
|
|
case MPP_VIDEO_CodingMJPEG : {
|
|
return jpeg_profile_str[0];
|
|
} break;
|
|
case MPP_VIDEO_CodingVP8 : {
|
|
return vp8_profile_str[0];
|
|
} break;
|
|
default : {
|
|
} break;
|
|
}
|
|
|
|
return NULL;
|
|
}
|