| /rockchip-linux_mpp/mpp/base/ |
| H A D | mpp_task.c | 13 MPP_RET mpp_task_meta_set_s32(MppTask task, MppMetaKey key, RK_S32 val) in mpp_task_meta_set_s32() argument 15 if (check_mpp_task_name(task)) in mpp_task_meta_set_s32() 18 MppTaskImpl *impl = (MppTaskImpl *)task; in mpp_task_meta_set_s32() 22 MPP_RET mpp_task_meta_set_s64(MppTask task, MppMetaKey key, RK_S64 val) in mpp_task_meta_set_s64() argument 24 if (check_mpp_task_name(task)) in mpp_task_meta_set_s64() 27 MppTaskImpl *impl = (MppTaskImpl *)task; in mpp_task_meta_set_s64() 31 MPP_RET mpp_task_meta_set_ptr(MppTask task, MppMetaKey key, void *val) in mpp_task_meta_set_ptr() argument 33 if (check_mpp_task_name(task)) in mpp_task_meta_set_ptr() 36 MppTaskImpl *impl = (MppTaskImpl *)task; in mpp_task_meta_set_ptr() 40 MPP_RET mpp_task_meta_set_frame(MppTask task, MppMetaKey key, MppFrame frame) in mpp_task_meta_set_frame() argument [all …]
|
| H A D | mpp_cluster.c | 92 MppNodeTask task; member 142 #define mpp_node_task_schedule(task) \ argument 143 mpp_node_task_schedule_f(__FUNCTION__, task) 145 #define mpp_node_task_schedule_from(caller, task) \ argument 146 mpp_node_task_schedule_f(caller, task) 221 MPP_RET mpp_node_task_attach(MppNodeTask *task, MppNodeImpl *node, in mpp_node_task_attach() argument 224 INIT_LIST_HEAD(&task->list_sched); in mpp_node_task_attach() 226 task->node = node; in mpp_node_task_attach() 227 task->node_name = node->name; in mpp_node_task_attach() 229 task->queue = queue; in mpp_node_task_attach() [all …]
|
| /rockchip-linux_mpp/doc/design/ |
| H A D | 4.mpp_task.txt | 1 MPP task design (2017.4.7) 4 Mpp task is the contain component for transaction with external user in advanced 8 Mpp task has mpp_meta as the rich content carrier. Mpp meta uses KEY and value 9 pair for extension. One task can carries multiple data into or out of mpp. 10 The typical case is encoder with OSD and motion detection. One task may contain 16 Mpp task transaction 19 1. Mpp task queue 20 Mpp task queue is the manager of tasks. Due to user may incorrectly use the task 21 we choose the design that hold all task inside mpp. Task queue will create and 22 release task. But task queue will not interact with user directly. We use port [all …]
|
| H A D | 2.kernel_driver.txt | 41 | task A2 | | task A1 | | task C0 | 45 | task B1 | | task C1 | 49 | task A3 | | task A0 | 53 | task B0 | 56 The principle of this design is to separate user task handling and hardware 65 When client commits a task to kernel the task will be set to waiting status and 67 get task from waiting list to running list and run. When hardware finishs a task 68 the task will be moved to done list and put to both service done list and 69 session done list. Finally client will get the finished task from session.
|
| /rockchip-linux_mpp/mpp/base/test/ |
| H A D | mpp_task_test.c | 16 MppTask task = NULL; in task_input() local 27 ret = mpp_port_dequeue(port, &task); in task_input() 29 mpp_assert(task); in task_input() 31 ret = mpp_port_enqueue(port, task); in task_input() 44 MppTask task = NULL; in task_output() local 55 ret = mpp_port_dequeue(port, &task); in task_output() 57 mpp_assert(task); in task_output() 59 ret = mpp_port_enqueue(port, task); in task_output() 72 MppTask task = NULL; in task_in_and_out() local 81 ret = mpp_port_dequeue(port_input, &task); in task_in_and_out() [all …]
|
| /rockchip-linux_mpp/mpp/codec/ |
| H A D | mpp_dec_normal.c | 32 static MPP_RET check_task_wait(MppDecImpl *dec, DecTask *task) in check_task_wait() argument 37 RK_U32 curr_wait = task->wait.val; in check_task_wait() 62 dec->parser_status_flag = task->status.val; in check_task_wait() 63 dec->parser_wait_flag = task->wait.val; in check_task_wait() 123 static RK_U32 reset_parser_thread(Mpp *mpp, DecTask *task) in reset_parser_thread() argument 130 HalDecTask *task_dec = &task->info.dec; in reset_parser_thread() 161 task->status.curr_task_rdy = 0; in reset_parser_thread() 162 task->status.prev_task_rdy = 1; in reset_parser_thread() 172 if (task->status.task_parsed_rdy) { in reset_parser_thread() 182 task->status.task_parsed_rdy = 0; in reset_parser_thread() [all …]
|
| H A D | mpp_dec_no_thread.c | 21 DecTask *task = (DecTask *)dec->task_single; in mpp_dec_decode() local 22 DecTaskStatus *status = &task->status; in mpp_dec_decode() 25 HalDecTask *task_dec = &task->info.dec; in mpp_dec_decode() 101 dec_dbg_detail("detail: %p hal_pkt_buf_in %p\n", dec, task->hal_pkt_buf_in); in mpp_dec_decode() 102 if (!task->hal_pkt_buf_in) { in mpp_dec_decode() 136 task->hal_pkt_buf_in = hal_buf_in; in mpp_dec_decode() 147 mpp_assert(task->hal_pkt_buf_in); in mpp_dec_decode() 151 mpp_buffer_write(task->hal_pkt_buf_in, 0, src, length); in mpp_dec_decode() 152 mpp_buffer_sync_partial_end(task->hal_pkt_buf_in, 0, length); in mpp_dec_decode() 201 dec_task_info_init(&task->info); in mpp_dec_decode() [all …]
|
| /rockchip-linux_mpp/mpp/hal/inc/ |
| H A D | mpp_enc_hal.h | 51 MPP_RET (*get_task)(void *ctx, HalEncTask *task); 52 MPP_RET (*gen_regs)(void *ctx, HalEncTask *task); 55 MPP_RET (*start)(void *ctx, HalEncTask *task); 56 MPP_RET (*wait)(void *ctx, HalEncTask *task); 57 MPP_RET (*part_start)(void *ctx, HalEncTask *task); 58 MPP_RET (*part_wait)(void *ctx, HalEncTask *task); 61 MPP_RET (*ret_task)(void *ctx, HalEncTask *task); 76 MPP_RET mpp_enc_hal_get_task(MppEncHal ctx, HalEncTask *task); 77 MPP_RET mpp_enc_hal_gen_regs(MppEncHal ctx, HalEncTask *task); 80 MPP_RET mpp_enc_hal_start(MppEncHal ctx, HalEncTask *task); [all …]
|
| /rockchip-linux_mpp/inc/ |
| H A D | mpp_task.h | 219 MPP_RET mpp_task_meta_set_s32(MppTask task, MppMetaKey key, RK_S32 val); 220 MPP_RET mpp_task_meta_set_s64(MppTask task, MppMetaKey key, RK_S64 val); 221 MPP_RET mpp_task_meta_set_ptr(MppTask task, MppMetaKey key, void *val); 222 MPP_RET mpp_task_meta_set_frame (MppTask task, MppMetaKey key, MppFrame frame); 223 MPP_RET mpp_task_meta_set_packet(MppTask task, MppMetaKey key, MppPacket packet); 224 MPP_RET mpp_task_meta_set_buffer(MppTask task, MppMetaKey key, MppBuffer buffer); 226 MPP_RET mpp_task_meta_get_s32(MppTask task, MppMetaKey key, RK_S32 *val, RK_S32 default_val); 227 MPP_RET mpp_task_meta_get_s64(MppTask task, MppMetaKey key, RK_S64 *val, RK_S64 default_val); 228 MPP_RET mpp_task_meta_get_ptr(MppTask task, MppMetaKey key, void **val, void *default_val); 229 MPP_RET mpp_task_meta_get_frame (MppTask task, MppMetaKey key, MppFrame *frame); [all …]
|
| /rockchip-linux_mpp/mpp/base/inc/ |
| H A D | mpp_task_impl.h | 79 MPP_RET check_mpp_task_name(MppTask task); 112 #define mpp_port_dequeue(port, task) _mpp_port_dequeue(__FUNCTION__, port, task) argument 113 #define mpp_port_enqueue(port, task) _mpp_port_enqueue(__FUNCTION__, port, task) argument 115 #define mpp_port_move(port, task, status) _mpp_port_move(__FUNCTION__, port, task, status) argument 118 MPP_RET _mpp_port_dequeue(const char *caller, MppPort port, MppTask *task); 119 MPP_RET _mpp_port_enqueue(const char *caller, MppPort port, MppTask task); 121 MPP_RET _mpp_port_move(const char *caller, MppPort port, MppTask task, MppTaskStatus status); 123 MppMeta mpp_task_get_meta(MppTask task);
|
| /rockchip-linux_mpp/mpp/codec/dec/mpg4/ |
| H A D | mpg4d_api.c | 174 static MPP_RET mpg4d_prepare(void *dec, MppPacket pkt, HalDecTask *task) in mpg4d_prepare() argument 181 if (NULL == dec || NULL == pkt || NULL == task) { in mpg4d_prepare() 182 mpp_err_f("found NULL intput dec %p pkt %p task %p\n", dec, pkt, task); in mpg4d_prepare() 186 task->valid = 0; in mpg4d_prepare() 232 task->valid = 1; in mpg4d_prepare() 240 task->flags.eos = eos; in mpg4d_prepare() 261 task->valid = 1; in mpg4d_prepare() 270 task->valid = 1; in mpg4d_prepare() 272 task->valid = 0; in mpg4d_prepare() 276 task->flags.eos = p->got_eos; in mpg4d_prepare() [all …]
|
| /rockchip-linux_mpp/mpp/hal/vpu/jpege/ |
| H A D | hal_jpege_vepu1_v2.c | 100 static MPP_RET hal_jpege_vepu1_get_task(void *hal, HalEncTask *task) in hal_jpege_vepu1_get_task() argument 103 JpegeSyntax *syntax = (JpegeSyntax *)task->syntax.data; in hal_jpege_vepu1_get_task() 108 ctx->hal_start_pos = mpp_packet_get_length(task->packet); in hal_jpege_vepu1_get_task() 117 task->part_first = 1; in hal_jpege_vepu1_get_task() 118 task->part_last = 0; in hal_jpege_vepu1_get_task() 125 task->rc_task->frm.is_intra = 1; in hal_jpege_vepu1_get_task() 172 static MPP_RET hal_jpege_vepu1_gen_regs(void *hal, HalEncTask *task) in hal_jpege_vepu1_gen_regs() argument 175 MppBuffer input = task->input; in hal_jpege_vepu1_gen_regs() 176 MppBuffer output = task->output; in hal_jpege_vepu1_gen_regs() 186 size_t length = mpp_packet_get_length(task->packet); in hal_jpege_vepu1_gen_regs() [all …]
|
| H A D | hal_jpege_vepu2_v2.c | 154 MPP_RET hal_jpege_vepu2_get_task(void *hal, HalEncTask *task) in hal_jpege_vepu2_get_task() argument 157 JpegeSyntax *syntax = (JpegeSyntax *)task->syntax.data; in hal_jpege_vepu2_get_task() 165 ctx->hal_start_pos = mpp_packet_get_length(task->packet); in hal_jpege_vepu2_get_task() 175 task->part_first = 1; in hal_jpege_vepu2_get_task() 176 task->part_last = 0; in hal_jpege_vepu2_get_task() 177 task->flags.reg_idx = 0; in hal_jpege_vepu2_get_task() 181 task->flags.reg_idx = ctx->task_idx++; in hal_jpege_vepu2_get_task() 330 task->rc_task->frm.is_intra = 1; in hal_jpege_vepu2_get_task() 366 MPP_RET hal_jpege_vepu2_gen_regs(void *hal, HalEncTask *task) in hal_jpege_vepu2_gen_regs() argument 369 MppBuffer input = task->input; in hal_jpege_vepu2_gen_regs() [all …]
|
| /rockchip-linux_mpp/osal/driver/ |
| H A D | mpp_server.c | 267 MppDevTask *task; in process_task() local 287 list_for_each_entry_safe(task, n, &batch->link_tasks, MppDevTask, link_batch) { in process_task() 288 rk_s32 batch_slot_id = task->batch_slot_id; in process_task() 292 session = task->session; in process_task() 300 batch->batch_id, task->batch_slot_id, task->task_id); in process_task() 305 list_del_init(&task->link_batch); in process_task() 306 task->batch = NULL; in process_task() 309 batch->batch_id, task->batch_slot_id, session->client); in process_task() 404 task = NULL; in process_task() 406 task = list_first_entry_or_null(&server->pending_task, MppDevTask, link_server); in process_task() [all …]
|
| /rockchip-linux_mpp/mpp/codec/dec/h263/ |
| H A D | h263d_api.c | 169 MPP_RET h263d_prepare(void *dec, MppPacket pkt, HalDecTask *task) in h263d_prepare() argument 176 if (NULL == dec || NULL == pkt || NULL == task) { in h263d_prepare() 177 mpp_err_f("found NULL intput dec %p pkt %p task %p\n", dec, pkt, task); in h263d_prepare() 187 task->valid = 0; in h263d_prepare() 188 task->flags.eos = 1; in h263d_prepare() 229 task->valid = 1; in h263d_prepare() 261 task->valid = 1; in h263d_prepare() 270 task->input_packet = p->task_pkt; in h263d_prepare() 271 task->flags.eos = p->task_eos; in h263d_prepare() 276 MPP_RET h263d_parse(void *dec, HalDecTask *task) in h263d_parse() argument [all …]
|
| /rockchip-linux_mpp/mpp/hal/rkenc/jpege/ |
| H A D | hal_jpege_vepu540c.c | 139 MPP_RET hal_jpege_v540c_gen_regs(void *hal, HalEncTask *task) in hal_jpege_v540c_gen_regs() argument 146 size_t length = mpp_packet_get_length(task->packet); in hal_jpege_v540c_gen_regs() 147 RK_U8 *buf = mpp_buffer_get_ptr(task->output); in hal_jpege_v540c_gen_regs() 148 size_t size = mpp_buffer_get_size(task->output); in hal_jpege_v540c_gen_regs() 154 cfg.enc_task = task; in hal_jpege_v540c_gen_regs() 162 syntax->q_factor = 100 - task->rc_task->info.quality_target; in hal_jpege_v540c_gen_regs() 174 task->length = (bitpos + 7) >> 3; in hal_jpege_v540c_gen_regs() 175 mpp_buffer_sync_partial_end(task->output, 0, task->length); in hal_jpege_v540c_gen_regs() 176 mpp_packet_set_length(task->packet, task->length); in hal_jpege_v540c_gen_regs() 337 MPP_RET hal_jpege_v540c_wait(void *hal, HalEncTask *task) in hal_jpege_v540c_wait() argument [all …]
|
| H A D | hal_jpege_vepu511.c | 128 HalEncTask *task) in vepu511_jpeg_set_patch_info() argument 136 if (MPP_FRAME_FMT_IS_FBC(mpp_frame_get_fmt(task->frame))) { in vepu511_jpeg_set_patch_info() 137 u_offset = mpp_frame_get_fbc_offset(task->frame); in vepu511_jpeg_set_patch_info() 195 HalEncTask *task = ( HalEncTask *)cfg->enc_task; in vepu511_set_jpeg_reg() local 196 JpegeSyntax *syn = (JpegeSyntax *)task->syntax.data; in vepu511_set_jpeg_reg() 206 regs->adr_src0 = mpp_buffer_get_fd(task->input); in vepu511_set_jpeg_reg() 210 vepu511_jpeg_set_patch_info(cfg->dev, syn, (VepuFmt)fmt->format, task); in vepu511_set_jpeg_reg() 212 regs->adr_bsbt = mpp_buffer_get_fd(task->output); in vepu511_set_jpeg_reg() 217 mpp_dev_set_reg_offset(cfg->dev, 258, mpp_packet_get_length(task->packet)); in vepu511_set_jpeg_reg() 218 mpp_dev_set_reg_offset(cfg->dev, 256, mpp_buffer_get_size(task->output)); in vepu511_set_jpeg_reg() [all …]
|
| H A D | hal_jpege_vpu720.c | 192 static MPP_RET jpege_vpu720_setup_format(void *hal, HalEncTask *task) in jpege_vpu720_setup_format() argument 199 RK_U32 hor_stride = mpp_frame_get_hor_stride(task->frame); in jpege_vpu720_setup_format() 200 RK_U32 ver_stride = mpp_frame_get_ver_stride(task->frame); in jpege_vpu720_setup_format() 371 MPP_RET hal_jpege_vpu720_gen_regs(void *hal, HalEncTask *task) in hal_jpege_vpu720_gen_regs() argument 378 size_t length = mpp_packet_get_length(task->packet); in hal_jpege_vpu720_gen_regs() 379 RK_U8 *buf = mpp_buffer_get_ptr(task->output); in hal_jpege_vpu720_gen_regs() 380 size_t size = mpp_buffer_get_size(task->output); in hal_jpege_vpu720_gen_regs() 390 jpege_vpu720_setup_format(hal, task); in hal_jpege_vpu720_gen_regs() 394 mpp_buffer_sync_begin(task->output); in hal_jpege_vpu720_gen_regs() 397 syntax->q_factor = 100 - task->rc_task->info.quality_target; in hal_jpege_vpu720_gen_regs() [all …]
|
| /rockchip-linux_mpp/mpp/hal/ |
| H A D | mpp_hal.c | 135 MPP_RET mpp_hal_reg_gen(MppHal ctx, HalTaskInfo *task) in mpp_hal_reg_gen() argument 137 if (NULL == ctx || NULL == task) { in mpp_hal_reg_gen() 138 mpp_err_f("found NULL input ctx %p task %p\n", ctx, task); in mpp_hal_reg_gen() 143 return p->api->reg_gen(p->ctx, task); in mpp_hal_reg_gen() 146 MPP_RET mpp_hal_hw_start(MppHal ctx, HalTaskInfo *task) in mpp_hal_hw_start() argument 148 if (NULL == ctx || NULL == task) { in mpp_hal_hw_start() 149 mpp_err_f("found NULL input ctx %p task %p\n", ctx, task); in mpp_hal_hw_start() 154 return p->api->start(p->ctx, task); in mpp_hal_hw_start() 157 MPP_RET mpp_hal_hw_wait(MppHal ctx, HalTaskInfo *task) in mpp_hal_hw_wait() argument 159 if (NULL == ctx || NULL == task) { in mpp_hal_hw_wait() [all …]
|
| H A D | mpp_enc_hal.c | 132 MPP_RET mpp_enc_hal_start(void *hal, HalEncTask *task) in mpp_enc_hal_start() argument 134 if (NULL == hal || NULL == task) { in mpp_enc_hal_start() 135 mpp_err_f("found NULL input ctx %p task %p\n", hal, task); in mpp_enc_hal_start() 144 mpp_buffer_sync_partial_end(task->output, 0, task->length); in mpp_enc_hal_start() 146 return p->api->start(p->ctx, task); in mpp_enc_hal_start() 150 MPP_RET mpp_enc_hal_##func(void *hal, HalEncTask *task) \ 152 if (NULL == hal || NULL == task) { \ 153 mpp_err_f("found NULL input ctx %p task %p\n", hal, task); \ 161 return p->api->func(p->ctx, task); \
|
| /rockchip-linux_mpp/mpp/codec/dec/avs/ |
| H A D | avsd_api.c | 203 static MPP_RET avsd_prepare(void *decoder, MppPacket pkt, HalDecTask *task) in avsd_prepare() argument 208 INP_CHECK(ret, !decoder && !pkt && !task); in avsd_prepare() 215 task->valid = 0; in avsd_prepare() 230 task->flags.eos = p_dec->got_eos; in avsd_prepare() 277 task->valid = 1; in avsd_prepare() 282 task->valid = 1; in avsd_prepare() 284 task->valid = 0; in avsd_prepare() 289 task->input_packet = p_dec->task_pkt; in avsd_prepare() 290 task->flags.eos = p_dec->got_eos; in avsd_prepare() 302 static MPP_RET avsd_parse(void *decoder, HalDecTask *task) in avsd_parse() argument [all …]
|
| /rockchip-linux_mpp/mpp/codec/dec/avs2/ |
| H A D | avs2d_api.c | 161 MPP_RET avs2d_prepare(void *decoder, MppPacket pkt, HalDecTask *task) in avs2d_prepare() argument 171 INP_CHECK(ret, !decoder && !pkt && !task); in avs2d_prepare() 173 task->valid = 0; in avs2d_prepare() 189 task->flags.eos = 1; in avs2d_prepare() 194 task->valid = 0; in avs2d_prepare() 203 ret = avs2d_parse_prepare_fast(p_dec, pkt, task); in avs2d_prepare() 205 ret = avs2d_parse_prepare_split(p_dec, pkt, task); in avs2d_prepare() 208 if (task->valid) { in avs2d_prepare() 225 task->input_packet = p_dec->task_pkt; in avs2d_prepare() 230 task->input_packet = NULL; in avs2d_prepare() [all …]
|
| /rockchip-linux_mpp/mpp/codec/inc/ |
| H A D | rc.h | 61 MPP_RET rc_frm_check_drop(RcCtx ctx, EncRcTask *task); 63 MPP_RET rc_check_reenc(RcCtx ctx, EncRcTask *task); 66 MPP_RET rc_frm_start(RcCtx ctx, EncRcTask *task); 67 MPP_RET rc_frm_end(RcCtx ctx, EncRcTask *task); 69 MPP_RET rc_hal_start(RcCtx ctx, EncRcTask *task); 70 MPP_RET rc_hal_end(RcCtx ctx, EncRcTask *task);
|
| /rockchip-linux_mpp/mpp/hal/dummy/ |
| H A D | hal_dummy_enc_api.c | 36 MPP_RET hal_dummy_enc_gen_regs(void *hal, HalTaskInfo *task) in hal_dummy_enc_gen_regs() argument 39 (void)task; in hal_dummy_enc_gen_regs() 42 MPP_RET hal_dummy_enc_start(void *hal, HalTaskInfo *task) in hal_dummy_enc_start() argument 45 (void)task; in hal_dummy_enc_start() 49 MPP_RET hal_dummy_enc_wait(void *hal, HalTaskInfo *task) in hal_dummy_enc_wait() argument 52 (void)task; in hal_dummy_enc_wait()
|
| H A D | hal_dummy_dec_api.c | 36 MPP_RET hal_dummy_dec_gen_regs(void *hal, HalTaskInfo *task) in hal_dummy_dec_gen_regs() argument 39 (void)task; in hal_dummy_dec_gen_regs() 42 MPP_RET hal_dummy_dec_start(void *hal, HalTaskInfo *task) in hal_dummy_dec_start() argument 45 (void)task; in hal_dummy_dec_start() 49 MPP_RET hal_dummy_dec_wait(void *hal, HalTaskInfo *task) in hal_dummy_dec_wait() argument 52 (void)task; in hal_dummy_dec_wait()
|