mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-07 10:00:55 +08:00
[mpp_hal]: Remove hal header dependency
1. Remove dependency between mpp_hal.h and mpp_enc_hal.h. 2. Remove unused work_mode. Change-Id: I1d8e8163e3c2de00636665d7aff38652309820ba Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -1315,7 +1315,6 @@ MPP_RET mpp_dec_init(MppDec *dec, MppDecCfg *cfg)
|
|||||||
MppHalCfg hal_cfg = {
|
MppHalCfg hal_cfg = {
|
||||||
MPP_CTX_DEC,
|
MPP_CTX_DEC,
|
||||||
coding,
|
coding,
|
||||||
HAL_MODE_LIBVPU,
|
|
||||||
DEV_RKVDEC,
|
DEV_RKVDEC,
|
||||||
frame_slots,
|
frame_slots,
|
||||||
packet_slots,
|
packet_slots,
|
||||||
|
@@ -1379,7 +1379,6 @@ MPP_RET mpp_enc_init_v2(MppEnc *enc, MppEncInitCfg *cfg)
|
|||||||
// create hal first
|
// create hal first
|
||||||
enc_hal_cfg.coding = coding;
|
enc_hal_cfg.coding = coding;
|
||||||
enc_hal_cfg.cfg = &p->cfg;
|
enc_hal_cfg.cfg = &p->cfg;
|
||||||
enc_hal_cfg.work_mode = HAL_MODE_LIBVPU;
|
|
||||||
enc_hal_cfg.device_id = DEV_VEPU;
|
enc_hal_cfg.device_id = DEV_VEPU;
|
||||||
|
|
||||||
ctrl_cfg.coding = coding;
|
ctrl_cfg.coding = coding;
|
||||||
|
@@ -17,7 +17,8 @@
|
|||||||
#ifndef __MPP_ENC_HAL_H__
|
#ifndef __MPP_ENC_HAL_H__
|
||||||
#define __MPP_ENC_HAL_H__
|
#define __MPP_ENC_HAL_H__
|
||||||
|
|
||||||
#include "mpp_hal.h"
|
#include "hal_task.h"
|
||||||
|
#include "mpp_enc_cfg.h"
|
||||||
|
|
||||||
typedef struct MppEncHalCfg_t {
|
typedef struct MppEncHalCfg_t {
|
||||||
// input for encoder
|
// input for encoder
|
||||||
@@ -25,7 +26,6 @@ typedef struct MppEncHalCfg_t {
|
|||||||
MppEncCfgSet *cfg;
|
MppEncCfgSet *cfg;
|
||||||
|
|
||||||
// output for enc_impl
|
// output for enc_impl
|
||||||
HalWorkMode work_mode;
|
|
||||||
MppDeviceId device_id;
|
MppDeviceId device_id;
|
||||||
} MppEncHalCfg;
|
} MppEncHalCfg;
|
||||||
|
|
||||||
|
@@ -25,28 +25,19 @@
|
|||||||
#include "hal_task.h"
|
#include "hal_task.h"
|
||||||
#include "mpp_enc_cfg.h"
|
#include "mpp_enc_cfg.h"
|
||||||
|
|
||||||
typedef enum MppHalType_e {
|
typedef enum VpuHwMode_e {
|
||||||
HAL_MODE_LIBVPU,
|
|
||||||
HAL_MODE_V4L2,
|
|
||||||
HAL_MODE_BUTT,
|
|
||||||
} HalWorkMode;
|
|
||||||
|
|
||||||
typedef enum vpu_hard_mode_e {
|
|
||||||
MODE_NULL = 0,
|
MODE_NULL = 0,
|
||||||
RKVDEC_MODE = 0x01,
|
RKVDEC_MODE = 0x01,
|
||||||
VDPU1_MODE = 0x02,
|
VDPU1_MODE = 0x02,
|
||||||
VDPU2_MODE = 0x04,
|
VDPU2_MODE = 0x04,
|
||||||
RKVENC_MODE = 0x05,
|
RKVENC_MODE = 0x05,
|
||||||
MODE_BUTT,
|
MODE_BUTT,
|
||||||
} VpuHardMode;
|
} VpuHwMode;
|
||||||
|
|
||||||
typedef void* MppHalCtx;
|
|
||||||
|
|
||||||
typedef struct MppHalCfg_t {
|
typedef struct MppHalCfg_t {
|
||||||
// input
|
// input
|
||||||
MppCtxType type;
|
MppCtxType type;
|
||||||
MppCodingType coding;
|
MppCodingType coding;
|
||||||
HalWorkMode work_mode;
|
|
||||||
MppDeviceId device_id;
|
MppDeviceId device_id;
|
||||||
MppBufSlots frame_slots;
|
MppBufSlots frame_slots;
|
||||||
MppBufSlots packet_slots;
|
MppBufSlots packet_slots;
|
||||||
|
@@ -84,8 +84,8 @@ MPP_RET hal_h264d_init(void *hal, MppHalCfg *cfg)
|
|||||||
MppHalApi *p_api = NULL;
|
MppHalApi *p_api = NULL;
|
||||||
MPP_RET ret = MPP_ERR_UNKNOW;
|
MPP_RET ret = MPP_ERR_UNKNOW;
|
||||||
H264dHalCtx_t *p_hal = (H264dHalCtx_t *)hal;
|
H264dHalCtx_t *p_hal = (H264dHalCtx_t *)hal;
|
||||||
VpuHardMode hard_mode = MODE_NULL;
|
VpuHwMode hw_mode = MODE_NULL;
|
||||||
RK_U32 hard_platform = 0;
|
RK_U32 hw_plat = 0;
|
||||||
|
|
||||||
INP_CHECK(ret, NULL == p_hal);
|
INP_CHECK(ret, NULL == p_hal);
|
||||||
memset(p_hal, 0, sizeof(H264dHalCtx_t));
|
memset(p_hal, 0, sizeof(H264dHalCtx_t));
|
||||||
@@ -103,19 +103,19 @@ MPP_RET hal_h264d_init(void *hal, MppHalCfg *cfg)
|
|||||||
vcodec_type = mpp_get_vcodec_type();
|
vcodec_type = mpp_get_vcodec_type();
|
||||||
mpp_assert(vcodec_type & (HAVE_RKVDEC | HAVE_VDPU1 | HAVE_VDPU2));
|
mpp_assert(vcodec_type & (HAVE_RKVDEC | HAVE_VDPU1 | HAVE_VDPU2));
|
||||||
if ((mode <= RKVDEC_MODE) && (vcodec_type & HAVE_RKVDEC)) {
|
if ((mode <= RKVDEC_MODE) && (vcodec_type & HAVE_RKVDEC)) {
|
||||||
hard_mode = RKVDEC_MODE;
|
hw_mode = RKVDEC_MODE;
|
||||||
hard_platform = HAVE_RKVDEC;
|
hw_plat = HAVE_RKVDEC;
|
||||||
} else if (vcodec_type & HAVE_VDPU1) {
|
} else if (vcodec_type & HAVE_VDPU1) {
|
||||||
hard_mode = VDPU1_MODE;
|
hw_mode = VDPU1_MODE;
|
||||||
hard_platform = HAVE_VDPU1;
|
hw_plat = HAVE_VDPU1;
|
||||||
} else if (vcodec_type & HAVE_VDPU2) {
|
} else if (vcodec_type & HAVE_VDPU2) {
|
||||||
hard_mode = VDPU2_MODE;
|
hw_mode = VDPU2_MODE;
|
||||||
hard_platform = HAVE_VDPU2;
|
hw_plat = HAVE_VDPU2;
|
||||||
}
|
}
|
||||||
H264D_DBG(H264D_DBG_HARD_MODE, "set_mode=%d, hw_spt=%08x, use_mode=%d\n",
|
H264D_DBG(H264D_DBG_HARD_MODE, "set_mode=%d, hw_spt=%08x, use_mode=%d\n",
|
||||||
mode, vcodec_type, hard_mode);
|
mode, vcodec_type, hw_mode);
|
||||||
}
|
}
|
||||||
switch (hard_mode) {
|
switch (hw_mode) {
|
||||||
case RKVDEC_MODE:
|
case RKVDEC_MODE:
|
||||||
p_api->init = rkv_h264d_init;
|
p_api->init = rkv_h264d_init;
|
||||||
p_api->deinit = rkv_h264d_deinit;
|
p_api->deinit = rkv_h264d_deinit;
|
||||||
@@ -150,7 +150,7 @@ MPP_RET hal_h264d_init(void *hal, MppHalCfg *cfg)
|
|||||||
cfg->device_id = DEV_VDPU;
|
cfg->device_id = DEV_VDPU;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mpp_err_f("hard mode error, value=%d\n", hard_mode);
|
mpp_err_f("hard mode error, value=%d\n", hw_mode);
|
||||||
mpp_assert(0);
|
mpp_assert(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ MPP_RET hal_h264d_init(void *hal, MppHalCfg *cfg)
|
|||||||
MppDevCfg dev_cfg = {
|
MppDevCfg dev_cfg = {
|
||||||
.type = MPP_CTX_DEC, /* type */
|
.type = MPP_CTX_DEC, /* type */
|
||||||
.coding = MPP_VIDEO_CodingAVC, /* coding */
|
.coding = MPP_VIDEO_CodingAVC, /* coding */
|
||||||
.platform = hard_platform, /* platform */
|
.platform = hw_plat, /* platform */
|
||||||
.pp_enable = 0, /* pp_enable */
|
.pp_enable = 0, /* pp_enable */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -82,7 +82,7 @@ static MPP_RET hal_h263d_init(void *hal, MppHalCfg *cfg)
|
|||||||
{
|
{
|
||||||
MppHalApi *p_api = NULL;
|
MppHalApi *p_api = NULL;
|
||||||
hal_h263_ctx *p_hal = (hal_h263_ctx *)hal;
|
hal_h263_ctx *p_hal = (hal_h263_ctx *)hal;
|
||||||
VpuHardMode hard_mode = MODE_NULL;
|
VpuHwMode hw_mode = MODE_NULL;
|
||||||
RK_U32 hw_flag = 0;
|
RK_U32 hw_flag = 0;
|
||||||
|
|
||||||
mpp_env_get_u32("h263d_hal_debug", &h263d_hal_debug, 0);
|
mpp_env_get_u32("h263d_hal_debug", &h263d_hal_debug, 0);
|
||||||
@@ -95,11 +95,11 @@ static MPP_RET hal_h263d_init(void *hal, MppHalCfg *cfg)
|
|||||||
|
|
||||||
hw_flag = mpp_get_vcodec_type();
|
hw_flag = mpp_get_vcodec_type();
|
||||||
if (hw_flag & HAVE_VDPU2)
|
if (hw_flag & HAVE_VDPU2)
|
||||||
hard_mode = VDPU2_MODE;
|
hw_mode = VDPU2_MODE;
|
||||||
if (hw_flag & HAVE_VDPU1)
|
if (hw_flag & HAVE_VDPU1)
|
||||||
hard_mode = VDPU1_MODE;
|
hw_mode = VDPU1_MODE;
|
||||||
|
|
||||||
switch (hard_mode) {
|
switch (hw_mode) {
|
||||||
case VDPU2_MODE : {
|
case VDPU2_MODE : {
|
||||||
mpp_log("the VDPU2_MODE is used currently!\n");
|
mpp_log("the VDPU2_MODE is used currently!\n");
|
||||||
p_api->init = hal_vpu2_h263d_init;
|
p_api->init = hal_vpu2_h263d_init;
|
||||||
@@ -123,7 +123,7 @@ static MPP_RET hal_h263d_init(void *hal, MppHalCfg *cfg)
|
|||||||
p_api->control = hal_vpu1_h263d_control;
|
p_api->control = hal_vpu1_h263d_control;
|
||||||
} break;
|
} break;
|
||||||
default : {
|
default : {
|
||||||
mpp_err("unknow vpu type:%d.", hard_mode);
|
mpp_err("unknow vpu type:%d.", hw_mode);
|
||||||
return MPP_ERR_INIT;
|
return MPP_ERR_INIT;
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
@@ -71,7 +71,7 @@ static MPP_RET hal_jpegd_init (void *hal, MppHalCfg *cfg)
|
|||||||
{
|
{
|
||||||
JpegdHalCtx *self = (JpegdHalCtx *)hal;
|
JpegdHalCtx *self = (JpegdHalCtx *)hal;
|
||||||
MppHalApi *p_api = NULL;
|
MppHalApi *p_api = NULL;
|
||||||
VpuHardMode hard_mode = MODE_NULL;
|
VpuHwMode hw_mode = MODE_NULL;
|
||||||
RK_U32 hw_flag = 0;
|
RK_U32 hw_flag = 0;
|
||||||
|
|
||||||
if (NULL == self)
|
if (NULL == self)
|
||||||
@@ -82,11 +82,11 @@ static MPP_RET hal_jpegd_init (void *hal, MppHalCfg *cfg)
|
|||||||
|
|
||||||
hw_flag = mpp_get_vcodec_type();
|
hw_flag = mpp_get_vcodec_type();
|
||||||
if (hw_flag & HAVE_VDPU2)
|
if (hw_flag & HAVE_VDPU2)
|
||||||
hard_mode = VDPU2_MODE;
|
hw_mode = VDPU2_MODE;
|
||||||
if (hw_flag & HAVE_VDPU1)
|
if (hw_flag & HAVE_VDPU1)
|
||||||
hard_mode = VDPU1_MODE;
|
hw_mode = VDPU1_MODE;
|
||||||
|
|
||||||
switch (hard_mode) {
|
switch (hw_mode) {
|
||||||
case VDPU2_MODE:
|
case VDPU2_MODE:
|
||||||
p_api->init = hal_jpegd_vdpu2_init;
|
p_api->init = hal_jpegd_vdpu2_init;
|
||||||
p_api->deinit = hal_jpegd_vdpu2_deinit;
|
p_api->deinit = hal_jpegd_vdpu2_deinit;
|
||||||
|
@@ -74,7 +74,7 @@ static MPP_RET hal_m2vd_init (void *hal, MppHalCfg *cfg)
|
|||||||
{
|
{
|
||||||
M2vdHalCtx *self = (M2vdHalCtx *)hal;
|
M2vdHalCtx *self = (M2vdHalCtx *)hal;
|
||||||
MppHalApi *p_api = NULL;
|
MppHalApi *p_api = NULL;
|
||||||
VpuHardMode hard_mode = MODE_NULL;
|
VpuHwMode hw_mode = MODE_NULL;
|
||||||
RK_U32 hw_flag = 0;
|
RK_U32 hw_flag = 0;
|
||||||
|
|
||||||
if (self == NULL)
|
if (self == NULL)
|
||||||
@@ -87,11 +87,11 @@ static MPP_RET hal_m2vd_init (void *hal, MppHalCfg *cfg)
|
|||||||
|
|
||||||
hw_flag = mpp_get_vcodec_type();
|
hw_flag = mpp_get_vcodec_type();
|
||||||
if (hw_flag & HAVE_VDPU1)
|
if (hw_flag & HAVE_VDPU1)
|
||||||
hard_mode = VDPU1_MODE;
|
hw_mode = VDPU1_MODE;
|
||||||
if (hw_flag & HAVE_VDPU2)
|
if (hw_flag & HAVE_VDPU2)
|
||||||
hard_mode = VDPU2_MODE;
|
hw_mode = VDPU2_MODE;
|
||||||
|
|
||||||
switch (hard_mode) {
|
switch (hw_mode) {
|
||||||
case VDPU2_MODE:
|
case VDPU2_MODE:
|
||||||
p_api->init = hal_m2vd_vdpu2_init;
|
p_api->init = hal_m2vd_vdpu2_init;
|
||||||
p_api->deinit = hal_m2vd_vdpu2_deinit;
|
p_api->deinit = hal_m2vd_vdpu2_deinit;
|
||||||
@@ -113,7 +113,7 @@ static MPP_RET hal_m2vd_init (void *hal, MppHalCfg *cfg)
|
|||||||
p_api->control = hal_m2vd_vdpu1_control;
|
p_api->control = hal_m2vd_vdpu1_control;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mpp_err("unknow vpu mode %d.", hard_mode);
|
mpp_err("unknow vpu mode %d.", hw_mode);
|
||||||
return MPP_ERR_INIT;
|
return MPP_ERR_INIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -48,7 +48,7 @@ MPP_RET hal_vpu_mpg4d_init(void *hal, MppHalCfg *cfg)
|
|||||||
{
|
{
|
||||||
hal_mpg4_ctx *p_hal = (hal_mpg4_ctx *)hal;
|
hal_mpg4_ctx *p_hal = (hal_mpg4_ctx *)hal;
|
||||||
MppHalApi *p_api = NULL;
|
MppHalApi *p_api = NULL;
|
||||||
VpuHardMode hard_mode = MODE_NULL;
|
VpuHwMode hw_mode = MODE_NULL;
|
||||||
RK_U32 hw_flag = 0;
|
RK_U32 hw_flag = 0;
|
||||||
|
|
||||||
if (NULL == p_hal)
|
if (NULL == p_hal)
|
||||||
@@ -61,11 +61,11 @@ MPP_RET hal_vpu_mpg4d_init(void *hal, MppHalCfg *cfg)
|
|||||||
mpp_assert(hw_flag & (HAVE_VDPU2 | HAVE_VDPU1));
|
mpp_assert(hw_flag & (HAVE_VDPU2 | HAVE_VDPU1));
|
||||||
|
|
||||||
if (hw_flag & HAVE_VDPU2)
|
if (hw_flag & HAVE_VDPU2)
|
||||||
hard_mode = VDPU2_MODE;
|
hw_mode = VDPU2_MODE;
|
||||||
if (hw_flag & HAVE_VDPU1)
|
if (hw_flag & HAVE_VDPU1)
|
||||||
hard_mode = VDPU1_MODE;
|
hw_mode = VDPU1_MODE;
|
||||||
|
|
||||||
switch (hard_mode) {
|
switch (hw_mode) {
|
||||||
case VDPU2_MODE:
|
case VDPU2_MODE:
|
||||||
p_api->init = vdpu2_mpg4d_init;
|
p_api->init = vdpu2_mpg4d_init;
|
||||||
p_api->deinit = vdpu2_mpg4d_deinit;
|
p_api->deinit = vdpu2_mpg4d_deinit;
|
||||||
|
@@ -98,7 +98,7 @@ static MPP_RET hal_vp8d_init (void *hal, MppHalCfg *cfg)
|
|||||||
{
|
{
|
||||||
VP8DHalContext_t *self = (VP8DHalContext_t *)hal;
|
VP8DHalContext_t *self = (VP8DHalContext_t *)hal;
|
||||||
MppHalApi *p_api = NULL;
|
MppHalApi *p_api = NULL;
|
||||||
VpuHardMode hard_mode = MODE_NULL;
|
VpuHwMode hw_mode = MODE_NULL;
|
||||||
RK_U32 hw_flag = 0;
|
RK_U32 hw_flag = 0;
|
||||||
|
|
||||||
if (NULL == self)
|
if (NULL == self)
|
||||||
@@ -109,11 +109,11 @@ static MPP_RET hal_vp8d_init (void *hal, MppHalCfg *cfg)
|
|||||||
|
|
||||||
hw_flag = mpp_get_vcodec_type();
|
hw_flag = mpp_get_vcodec_type();
|
||||||
if (hw_flag & HAVE_VDPU1)
|
if (hw_flag & HAVE_VDPU1)
|
||||||
hard_mode = VDPU1_MODE;
|
hw_mode = VDPU1_MODE;
|
||||||
if (hw_flag & HAVE_VDPU2)
|
if (hw_flag & HAVE_VDPU2)
|
||||||
hard_mode = VDPU2_MODE;
|
hw_mode = VDPU2_MODE;
|
||||||
|
|
||||||
switch (hard_mode) {
|
switch (hw_mode) {
|
||||||
case VDPU2_MODE:
|
case VDPU2_MODE:
|
||||||
p_api->init = hal_vp8d_vdpu2_init;
|
p_api->init = hal_vp8d_vdpu2_init;
|
||||||
p_api->deinit = hal_vp8d_vdpu2_deinit;
|
p_api->deinit = hal_vp8d_vdpu2_deinit;
|
||||||
|
Reference in New Issue
Block a user