mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 17:46:50 +08:00
[platform]: Update some SOC's codec support
rk3228 do NOT have jpeg encoder and rk3036 do NOT have all encoder. we update the device name in mpp_get_vcodec_dev_name function. Change-Id: If80d864543761572645928e59e1e09fc906fec31 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -92,6 +92,12 @@ static MPP_RET hal_jpege_init(void *hal, MppHalCfg *cfg)
|
||||
|
||||
p_api = &ctx->hal_api;
|
||||
|
||||
// NOTE: rk3036 and rk3228 do NOT have jpeg encoder
|
||||
if (NULL == mpp_get_vcodec_dev_name(MPP_CTX_ENC, MPP_VIDEO_CodingMJPEG)) {
|
||||
mpp_err("SOC %s do NOT support jpeg encoding\n", mpp_get_soc_name());
|
||||
return MPP_ERR_INIT;
|
||||
}
|
||||
|
||||
hw_flag = mpp_get_vcodec_type();
|
||||
if (hw_flag & HAVE_VPU2)
|
||||
hard_mode = VDPU2_MODE;
|
||||
|
@@ -341,6 +341,15 @@ const char *mpp_get_vcodec_dev_name(MppCtxType type, MppCodingType coding)
|
||||
RockchipSocType soc_type = MppPlatformService::get_instance()->get_soc_type();
|
||||
|
||||
switch (soc_type) {
|
||||
case ROCKCHIP_SOC_RK3036 : {
|
||||
/* rk3036 do NOT have encoder */
|
||||
if (type == MPP_CTX_ENC)
|
||||
dev = NULL;
|
||||
else if (coding == MPP_VIDEO_CodingHEVC && type == MPP_CTX_DEC)
|
||||
dev = mpp_find_device(mpp_hevc_dev);
|
||||
else
|
||||
dev = mpp_find_device(mpp_vpu_dev);
|
||||
} break;
|
||||
case ROCKCHIP_SOC_RK3066 :
|
||||
case ROCKCHIP_SOC_RK3188 : {
|
||||
/* rk3066/rk3188 have vpu1 only */
|
||||
@@ -381,11 +390,14 @@ const char *mpp_get_vcodec_dev_name(MppCtxType type, MppCodingType coding)
|
||||
* rk3228 have codec:
|
||||
* 1 - vpu2
|
||||
* 2 - RK H.264/H.265 4K decoder
|
||||
* NOTE: rk3228 do NOT have jpeg encoder
|
||||
*/
|
||||
if (type == MPP_CTX_DEC &&
|
||||
(coding == MPP_VIDEO_CodingAVC ||
|
||||
coding == MPP_VIDEO_CodingHEVC))
|
||||
dev = mpp_find_device(mpp_rkvdec_dev);
|
||||
else if (type == MPP_CTX_ENC && coding == MPP_VIDEO_CodingMJPEG)
|
||||
dev = NULL;
|
||||
else
|
||||
dev = mpp_find_device(mpp_vpu_dev);
|
||||
} break;
|
||||
|
Reference in New Issue
Block a user