mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 17:16:50 +08:00
[mpi_enc_test]: Update osd test case
1. Update osd test in mpi_enc_test. 2. Remove osd test in mpi_multi_test. 3. Fix log info in vepu541. Change-Id: I8056edf263df5571448782b3b8074f54956672ee Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -40,8 +40,6 @@
|
||||
#define MAX_FILE_NAME_LENGTH 256
|
||||
|
||||
#define MPI_ENC_TEST_SET_IDR_FRAME 0
|
||||
#define MPI_ENC_TEST_SET_OSD 1
|
||||
#define MPI_ENC_TEST_SET_ROI 1
|
||||
|
||||
typedef struct {
|
||||
char file_input[MAX_FILE_NAME_LENGTH];
|
||||
@@ -85,17 +83,12 @@ typedef struct {
|
||||
// input / output
|
||||
MppBufferGroup frm_grp;
|
||||
MppBufferGroup pkt_grp;
|
||||
MppBufferGroup buf_grp;
|
||||
MppFrame frame;
|
||||
MppPacket packet;
|
||||
MppBuffer frm_buf[MPI_ENC_IO_COUNT];
|
||||
MppBuffer pkt_buf[MPI_ENC_IO_COUNT];
|
||||
MppBuffer md_buf[MPI_ENC_IO_COUNT];
|
||||
MppBuffer osd_idx_buf[MPI_ENC_IO_COUNT];
|
||||
MppEncOSDPltCfg osd_plt_cfg;
|
||||
MppEncOSDPlt osd_plt;
|
||||
MppEncOSDData osd_data;
|
||||
MppEncROIRegion roi_region[3]; /* can be more regions */
|
||||
MppEncROICfg roi_cfg;
|
||||
MppEncSeiMode sei_mode;
|
||||
|
||||
// paramter for resource malloc
|
||||
@@ -244,6 +237,12 @@ MPP_RET test_res_init(MpiEncTestData *p)
|
||||
goto RET;
|
||||
}
|
||||
|
||||
ret = mpp_buffer_group_get_internal(&p->buf_grp, MPP_BUFFER_TYPE_ION);
|
||||
if (ret) {
|
||||
mpp_err("failed to get buffer group for output packet ret %d\n", ret);
|
||||
goto RET;
|
||||
}
|
||||
|
||||
for (i = 0; i < MPI_ENC_IO_COUNT; i++) {
|
||||
ret = mpp_buffer_get(p->frm_grp, &p->frm_buf[i], p->frame_size);
|
||||
if (ret) {
|
||||
@@ -251,12 +250,6 @@ MPP_RET test_res_init(MpiEncTestData *p)
|
||||
goto RET;
|
||||
}
|
||||
|
||||
ret = mpp_buffer_get(p->frm_grp, &p->osd_idx_buf[i], p->osd_idx_size);
|
||||
if (ret) {
|
||||
mpp_err("failed to get buffer for osd idx buf ret %d\n", ret);
|
||||
goto RET;
|
||||
}
|
||||
|
||||
ret = mpp_buffer_get(p->pkt_grp, &p->pkt_buf[i], p->packet_size);
|
||||
if (ret) {
|
||||
mpp_err("failed to get buffer for input frame ret %d\n", ret);
|
||||
@@ -294,11 +287,6 @@ MPP_RET test_res_deinit(MpiEncTestData *p)
|
||||
mpp_buffer_put(p->md_buf[i]);
|
||||
p->md_buf[i] = NULL;
|
||||
}
|
||||
|
||||
if (p->osd_idx_buf[i]) {
|
||||
mpp_buffer_put(p->osd_idx_buf[i]);
|
||||
p->osd_idx_buf[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (p->frm_grp) {
|
||||
@@ -311,6 +299,11 @@ MPP_RET test_res_deinit(MpiEncTestData *p)
|
||||
p->pkt_grp = NULL;
|
||||
}
|
||||
|
||||
if (p->buf_grp) {
|
||||
mpp_buffer_group_put(p->pkt_grp);
|
||||
p->buf_grp = NULL;
|
||||
}
|
||||
|
||||
return MPP_OK;
|
||||
}
|
||||
|
||||
@@ -500,19 +493,6 @@ MPP_RET test_mpp_setup(MpiEncTestData *p)
|
||||
goto RET;
|
||||
}
|
||||
|
||||
/* gen and cfg osd plt */
|
||||
mpi_enc_gen_osd_plt(&p->osd_plt, p->plt_table);
|
||||
p->osd_plt_cfg.change = MPP_ENC_OSD_PLT_CFG_CHANGE_ALL;
|
||||
p->osd_plt_cfg.type = MPP_ENC_OSD_PLT_TYPE_USERDEF;
|
||||
p->osd_plt_cfg.plt = &p->osd_plt;
|
||||
#if MPI_ENC_TEST_SET_OSD
|
||||
ret = mpi->control(ctx, MPP_ENC_SET_OSD_PLT_CFG, &p->osd_plt_cfg);
|
||||
if (ret) {
|
||||
mpp_err("mpi control enc set osd plt failed ret %d\n", ret);
|
||||
goto RET;
|
||||
}
|
||||
#endif
|
||||
|
||||
RET:
|
||||
return ret;
|
||||
}
|
||||
@@ -587,8 +567,6 @@ MPP_RET test_mpp_run(MpiEncTestData *p)
|
||||
MppBuffer frm_buf_in = p->frm_buf[index];
|
||||
MppBuffer pkt_buf_out = p->pkt_buf[index];
|
||||
MppBuffer md_info_buf = p->md_buf[index];
|
||||
MppBuffer osd_data_buf = p->osd_idx_buf[index];
|
||||
MppMeta meta = mpp_frame_get_meta(p->frame);
|
||||
|
||||
void *buf = mpp_buffer_get_ptr(frm_buf_in);
|
||||
|
||||
@@ -643,43 +621,6 @@ MPP_RET test_mpp_run(MpiEncTestData *p)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if MPI_ENC_TEST_SET_OSD
|
||||
/* gen and cfg osd plt */
|
||||
mpi_enc_gen_osd_data(&p->osd_data, osd_data_buf, p->frame_count);
|
||||
mpp_log("meta %p osd %p", meta, &p->osd_data);
|
||||
mpp_meta_set_ptr(meta, KEY_OSD_DATA, (void*)&p->osd_data);
|
||||
#endif
|
||||
|
||||
#if MPI_ENC_TEST_SET_ROI
|
||||
if (p->type == MPP_VIDEO_CodingAVC || p->type == MPP_VIDEO_CodingHEVC) {
|
||||
MppEncROIRegion *region = p->roi_region;
|
||||
|
||||
/* calculated in pixels */
|
||||
region->x = region->y = 64;
|
||||
region->w = region->h = 128; /* 16-pixel aligned is better */
|
||||
region->intra = 0; /* flag of forced intra macroblock */
|
||||
region->quality = 20; /* qp of macroblock */
|
||||
region->abs_qp_en = 1;
|
||||
region->area_map_en = 0;
|
||||
region->qp_area_idx = 0;
|
||||
|
||||
region++;
|
||||
region->x = region->y = 256;
|
||||
region->w = region->h = 128; /* 16-pixel aligned is better */
|
||||
region->intra = 1; /* flag of forced intra macroblock */
|
||||
region->quality = 10; /* qp of macroblock */
|
||||
region->abs_qp_en = 0;
|
||||
region->area_map_en = 1;
|
||||
region->qp_area_idx = 1;
|
||||
|
||||
p->roi_cfg.number = 2;
|
||||
p->roi_cfg.regions = p->roi_region;
|
||||
|
||||
mpp_log("meta %p roi %p", meta, p->roi_region);
|
||||
mpp_meta_set_ptr(meta, KEY_ROI_DATA, (void*)&p->roi_cfg); // new way for roi
|
||||
}
|
||||
#endif
|
||||
|
||||
ret = mpi->enqueue(ctx, MPP_PORT_INPUT, task);
|
||||
if (ret) {
|
||||
mpp_err("mpp task input enqueue failed\n");
|
||||
|
Reference in New Issue
Block a user