mirror of
				https://github.com/nyanmisaka/mpp.git
				synced 2025-10-31 20:42:53 +08:00 
			
		
		
		
	[hal_task]: Change hal_task to info with status
1. Split encoder and decoder hal_task defs and infos. 2. Change hal_task to a general info list with status. Change-Id: I6f26035eeee4772d1ef99a21d85716e9c33eb9a6 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
		| @@ -23,7 +23,7 @@ | ||||
| #include "mpp_mem.h" | ||||
| #include "mpp_log.h" | ||||
| #include "mpp_packet_impl.h" | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| #include "avsd_api.h" | ||||
| #include "avsd_parse.h" | ||||
|   | ||||
| @@ -20,7 +20,7 @@ | ||||
|  | ||||
| #include "mpp_packet.h" | ||||
| #include "mpp_buf_slot.h" | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| #define H263D_DBG_FUNCTION          (0x00000001) | ||||
| #define H263D_DBG_STARTCODE         (0x00000002) | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
|  | ||||
| #include "mpp_mem.h" | ||||
| #include "mpp_packet_impl.h" | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| #include "h264d_global.h" | ||||
| #include "h264d_parse.h" | ||||
|   | ||||
| @@ -37,7 +37,7 @@ | ||||
| #include "mpp_buf_slot.h" | ||||
| #include "mpp_mem_pool.h" | ||||
|  | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
| #include "h265d_codec.h" | ||||
| #include "h265_syntax.h" | ||||
|  | ||||
|   | ||||
| @@ -20,7 +20,7 @@ | ||||
|  | ||||
| #include "mpp_packet.h" | ||||
| #include "mpp_buf_slot.h" | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| #define MPG4D_DBG_FUNCTION          (0x00000001) | ||||
| #define MPG4D_DBG_STARTCODE         (0x00000002) | ||||
|   | ||||
| @@ -18,7 +18,7 @@ | ||||
| #define __VP9D_CODEC_H__ | ||||
|  | ||||
| #include "mpp_frame.h" | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| #include "vp9d_syntax.h" | ||||
|  | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|  | ||||
| #ifndef __H265D_API_H__ | ||||
| #define __H265D_API_H__ | ||||
|  | ||||
| #include "parser_api.h" | ||||
|  | ||||
| #ifdef  __cplusplus | ||||
|   | ||||
| @@ -21,7 +21,7 @@ | ||||
| #include "mpp_packet.h" | ||||
| #include "mpp_buf_slot.h" | ||||
| #include "mpp_dec_cfg.h" | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
| #include "mpp_soc.h" | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -136,6 +136,22 @@ static RK_S32 ts_cmp(void *priv, const struct list_head *a, const struct list_he | ||||
|     return ts1->pts - ts2->pts; | ||||
| } | ||||
|  | ||||
| static MPP_RET dec_task_info_init(HalTaskInfo *task) | ||||
| { | ||||
|     HalDecTask *p = &task->dec; | ||||
|  | ||||
|     p->valid  = 0; | ||||
|     p->flags.val = 0; | ||||
|     p->flags.eos = 0; | ||||
|     p->input_packet = NULL; | ||||
|     p->output = -1; | ||||
|     p->input = -1; | ||||
|     memset(&task->dec.syntax, 0, sizeof(task->dec.syntax)); | ||||
|     memset(task->dec.refer, -1, sizeof(task->dec.refer)); | ||||
|  | ||||
|     return MPP_OK; | ||||
| } | ||||
|  | ||||
| static void dec_task_init(DecTask *task) | ||||
| { | ||||
|     task->hnd = NULL; | ||||
| @@ -144,7 +160,7 @@ static void dec_task_init(DecTask *task) | ||||
|     task->status.prev_task_rdy  = 1; | ||||
|     INIT_LIST_HEAD(&task->ts_cur.link); | ||||
|  | ||||
|     hal_task_info_init(&task->info, MPP_CTX_DEC); | ||||
|     dec_task_info_init(&task->info); | ||||
| } | ||||
|  | ||||
| /* | ||||
| @@ -991,7 +1007,7 @@ static MPP_RET try_proc_dec_task(Mpp *mpp, DecTask *task) | ||||
|         } | ||||
|         task->status.curr_task_rdy  = 0; | ||||
|         task->status.task_parsed_rdy = 0; | ||||
|         hal_task_info_init(&task->info, MPP_CTX_DEC); | ||||
|         dec_task_info_init(&task->info); | ||||
|         return MPP_NOK; | ||||
|     } | ||||
|     dec_dbg_detail("detail: %p check output index pass\n", dec); | ||||
| @@ -1117,7 +1133,7 @@ static MPP_RET try_proc_dec_task(Mpp *mpp, DecTask *task) | ||||
|     task->status.curr_task_rdy  = 0; | ||||
|     task->status.task_parsed_rdy = 0; | ||||
|     task->status.prev_task_rdy   = 0; | ||||
|     hal_task_info_init(&task->info, MPP_CTX_DEC); | ||||
|     dec_task_info_init(&task->info); | ||||
|  | ||||
|     dec_dbg_detail("detail: %p one task ready\n", dec); | ||||
|  | ||||
| @@ -1525,7 +1541,7 @@ void *mpp_dec_advanced_thread(void *data) | ||||
|         packet = NULL; | ||||
|         frame = NULL; | ||||
|  | ||||
|         hal_task_info_init(&pTask->info, MPP_CTX_DEC); | ||||
|         dec_task_info_init(&pTask->info); | ||||
|  | ||||
|         task.status.mpp_pkt_in_rdy = 0; | ||||
|     } | ||||
|   | ||||
| @@ -22,6 +22,7 @@ | ||||
| #include "mpp_log.h" | ||||
| #include "mpp_list.h" | ||||
| #include "mpp_lock.h" | ||||
| #include "mpp_common.h" | ||||
|  | ||||
| #include "hal_task.h" | ||||
|  | ||||
| @@ -33,7 +34,7 @@ struct HalTaskImpl_t { | ||||
|     HalTaskGroupImpl    *group; | ||||
|     RK_S32              index; | ||||
|     HalTaskStatus       status; | ||||
|     HalTaskInfo         task; | ||||
|     void                *data; | ||||
| }; | ||||
|  | ||||
| struct HalTaskGroupImpl_t { | ||||
| @@ -44,11 +45,13 @@ struct HalTaskGroupImpl_t { | ||||
|  | ||||
|     struct list_head    list[TASK_BUTT]; | ||||
|     RK_U32              count[TASK_BUTT]; | ||||
|     RK_S32              size; | ||||
|     RK_S32              aligned_size; | ||||
|  | ||||
|     HalTaskImpl         tasks[]; | ||||
| }; | ||||
|  | ||||
| MPP_RET hal_task_group_init(HalTaskGroup *group, RK_S32 count) | ||||
| MPP_RET hal_task_group_init(HalTaskGroup *group, RK_S32 count, RK_S32 size) | ||||
| { | ||||
|     if (NULL == group) { | ||||
|         mpp_err_f("found invalid input group %p count %d\n", group, count); | ||||
| @@ -56,21 +59,28 @@ MPP_RET hal_task_group_init(HalTaskGroup *group, RK_S32 count) | ||||
|     } | ||||
|  | ||||
|     HalTaskGroupImpl *p = NULL; | ||||
|     RK_S32 aligned_size = MPP_ALIGN(size, sizeof(void *)); | ||||
|     RK_U8 *buf = NULL; | ||||
|  | ||||
|     do { | ||||
|         p = mpp_calloc_size(HalTaskGroupImpl, sizeof(HalTaskGroupImpl) + | ||||
|                             sizeof(HalTaskImpl) * count); | ||||
|                             (sizeof(HalTaskImpl) + aligned_size) * count); | ||||
|         if (NULL == p) { | ||||
|             mpp_err_f("malloc group failed\n"); | ||||
|             break; | ||||
|         } | ||||
|  | ||||
|         p->task_count = count; | ||||
|         p->size = size; | ||||
|         p->aligned_size = aligned_size; | ||||
|  | ||||
|         mpp_spinlock_init(&p->lock); | ||||
|  | ||||
|         for (RK_U32 i = 0; i < TASK_BUTT; i++) | ||||
|             INIT_LIST_HEAD(&p->list[i]); | ||||
|  | ||||
|         buf = (RK_U8 *)(((HalTaskImpl *)(p + 1) + count)); | ||||
|  | ||||
|         for (RK_S32 i = 0; i < count; i++) { | ||||
|             HalTaskImpl *task = &p->tasks[i]; | ||||
|  | ||||
| @@ -78,6 +88,7 @@ MPP_RET hal_task_group_init(HalTaskGroup *group, RK_S32 count) | ||||
|             task->index  = i; | ||||
|             task->group  = p; | ||||
|             task->status = TASK_IDLE; | ||||
|             task->data   = buf + i * aligned_size; | ||||
|             list_add_tail(&task->list, &p->list[TASK_IDLE]); | ||||
|             p->count[TASK_IDLE]++; | ||||
|         } | ||||
| @@ -178,10 +189,10 @@ MPP_RET hal_task_hnd_set_status(HalTaskHnd hnd, HalTaskStatus status) | ||||
|     return MPP_OK; | ||||
| } | ||||
|  | ||||
| MPP_RET hal_task_hnd_set_info(HalTaskHnd hnd, HalTaskInfo *task) | ||||
| MPP_RET hal_task_hnd_set_info(HalTaskHnd hnd, void *info) | ||||
| { | ||||
|     if (NULL == hnd || NULL == task) { | ||||
|         mpp_err_f("found invaid input hnd %p task %p\n", hnd, task); | ||||
|     if (NULL == hnd || NULL == info) { | ||||
|         mpp_err_f("found invaid input hnd %p info %p\n", hnd, info); | ||||
|         return MPP_ERR_UNKNOW; | ||||
|     } | ||||
|  | ||||
| @@ -191,16 +202,16 @@ MPP_RET hal_task_hnd_set_info(HalTaskHnd hnd, HalTaskInfo *task) | ||||
|     mpp_assert(impl->index < group->task_count); | ||||
|  | ||||
|     mpp_spinlock_lock(&group->lock); | ||||
|     memcpy(&impl->task, task, sizeof(impl->task)); | ||||
|     memcpy(impl->data, info, group->size); | ||||
|     mpp_spinlock_unlock(&group->lock); | ||||
|  | ||||
|     return MPP_OK; | ||||
| } | ||||
|  | ||||
| MPP_RET hal_task_hnd_get_info(HalTaskHnd hnd, HalTaskInfo *task) | ||||
| MPP_RET hal_task_hnd_get_info(HalTaskHnd hnd, void *info) | ||||
| { | ||||
|     if (NULL == hnd || NULL == task) { | ||||
|         mpp_err_f("found invaid input hnd %p task %p\n", hnd, task); | ||||
|     if (NULL == hnd || NULL == info) { | ||||
|         mpp_err_f("found invaid input hnd %p info %p\n", hnd, info); | ||||
|         return MPP_ERR_UNKNOW; | ||||
|     } | ||||
|  | ||||
| @@ -210,29 +221,8 @@ MPP_RET hal_task_hnd_get_info(HalTaskHnd hnd, HalTaskInfo *task) | ||||
|     mpp_assert(impl->index < group->task_count); | ||||
|  | ||||
|     mpp_spinlock_lock(&group->lock); | ||||
|     memcpy(task, &impl->task, sizeof(impl->task)); | ||||
|     memcpy(info, impl->data, group->size); | ||||
|     mpp_spinlock_unlock(&group->lock); | ||||
|  | ||||
|     return MPP_OK; | ||||
| } | ||||
|  | ||||
| MPP_RET hal_task_info_init(HalTaskInfo *task, MppCtxType type) | ||||
| { | ||||
|     if (NULL == task || type >= MPP_CTX_BUTT) { | ||||
|         mpp_err_f("found invalid input task %p type %d\n", task, type); | ||||
|         return MPP_ERR_UNKNOW; | ||||
|     } | ||||
|  | ||||
|     HalDecTask *p = &task->dec; | ||||
|  | ||||
|     p->valid  = 0; | ||||
|     p->flags.val = 0; | ||||
|     p->flags.eos = 0; | ||||
|     p->input_packet = NULL; | ||||
|     p->output = -1; | ||||
|     p->input = -1; | ||||
|     memset(&task->dec.syntax, 0, sizeof(task->dec.syntax)); | ||||
|     memset(task->dec.refer, -1, sizeof(task->dec.refer)); | ||||
|  | ||||
|     return MPP_OK; | ||||
| } | ||||
|   | ||||
| @@ -18,11 +18,22 @@ | ||||
| #ifndef __HAL_DEC_TASK__ | ||||
| #define __HAL_DEC_TASK__ | ||||
|  | ||||
| #include "hal_task_defs.h" | ||||
| #include "hal_task.h" | ||||
| #include "mpp_callback.h" | ||||
|  | ||||
| #define MAX_DEC_REF_NUM     17 | ||||
|  | ||||
| /* | ||||
|  * modified by parser and encoder | ||||
|  * | ||||
|  * number   : the number of the data pointer array element | ||||
|  * data     : the address of the pointer array, parser will add its data here | ||||
|  */ | ||||
| typedef struct MppSyntax_t { | ||||
|     RK_U32              number; | ||||
|     void                *data; | ||||
| } MppSyntax; | ||||
|  | ||||
| typedef union HalDecTaskFlag_t { | ||||
|     RK_U32          val; | ||||
|     struct { | ||||
| @@ -79,4 +90,25 @@ typedef struct HalDecTask_t { | ||||
|     RK_S32          refer[MAX_DEC_REF_NUM]; | ||||
| } HalDecTask; | ||||
|  | ||||
| typedef union HalDecVprocTaskFlag_t { | ||||
|     RK_U32          val; | ||||
|  | ||||
|     struct { | ||||
|         RK_U32      eos              : 1; | ||||
|         RK_U32      info_change      : 1; | ||||
|     }; | ||||
| } HalDecVprocTaskFlag; | ||||
|  | ||||
| typedef struct HalDecVprocTask_t { | ||||
|     // input slot index for post-process | ||||
|     HalDecVprocTaskFlag     flags; | ||||
|  | ||||
|     RK_S32                  input; | ||||
| } HalDecVprocTask; | ||||
|  | ||||
| typedef union HalTask_u { | ||||
|     HalDecTask              dec; | ||||
|     HalDecVprocTask         dec_vproc; | ||||
| } HalTaskInfo; | ||||
|  | ||||
| #endif /* __HAL_DEC_TASK__ */ | ||||
|   | ||||
| @@ -20,7 +20,7 @@ | ||||
|  | ||||
| #include "mpp_time.h" | ||||
|  | ||||
| #include "hal_task_defs.h" | ||||
| #include "hal_task.h" | ||||
| #include "mpp_rc_defs.h" | ||||
| #include "mpp_enc_refs.h" | ||||
|  | ||||
| @@ -35,6 +35,11 @@ typedef struct HalEncTaskFlag_t { | ||||
|     RK_U32          err; | ||||
| } HalEncTaskFlag; | ||||
|  | ||||
| typedef struct MppSyntax_t { | ||||
|     RK_U32              number; | ||||
|     void                *data; | ||||
| } MppSyntax; | ||||
|  | ||||
| typedef struct HalEncTask_t { | ||||
|     RK_U32          valid; | ||||
|  | ||||
|   | ||||
| @@ -19,28 +19,16 @@ | ||||
| #define __HAL_TASK__ | ||||
|  | ||||
| #include "mpp_err.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| typedef union HalDecVprocTaskFlag_t { | ||||
|     RK_U32          val; | ||||
| typedef void* HalTaskHnd; | ||||
| typedef void* HalTaskGroup; | ||||
|  | ||||
|     struct { | ||||
|         RK_U32      eos              : 1; | ||||
|         RK_U32      info_change      : 1; | ||||
|     }; | ||||
| } HalDecVprocTaskFlag; | ||||
|  | ||||
| typedef struct HalDecVprocTask_t { | ||||
|     // input slot index for post-process | ||||
|     HalDecVprocTaskFlag     flags; | ||||
|  | ||||
|     RK_S32                  input; | ||||
| } HalDecVprocTask; | ||||
|  | ||||
| typedef union HalTask_u { | ||||
|     HalDecTask              dec; | ||||
|     HalDecVprocTask         dec_vproc; | ||||
| } HalTaskInfo; | ||||
| typedef enum HalTaskStatus_e { | ||||
|     TASK_IDLE, | ||||
|     TASK_PROCESSING, | ||||
|     TASK_PROC_DONE, | ||||
|     TASK_BUTT, | ||||
| } HalTaskStatus; | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| @@ -52,7 +40,7 @@ extern "C" { | ||||
|  * NOTE: use mpp_list to implement | ||||
|  *       the count means the max task waiting for process | ||||
|  */ | ||||
| MPP_RET hal_task_group_init(HalTaskGroup *group, RK_S32 count); | ||||
| MPP_RET hal_task_group_init(HalTaskGroup *group, RK_S32 count, RK_S32 size); | ||||
| MPP_RET hal_task_group_deinit(HalTaskGroup group); | ||||
|  | ||||
| /* | ||||
| @@ -82,9 +70,8 @@ MPP_RET hal_task_group_deinit(HalTaskGroup group); | ||||
| MPP_RET hal_task_get_hnd(HalTaskGroup group, HalTaskStatus status, HalTaskHnd *hnd); | ||||
| MPP_RET hal_task_get_count(HalTaskGroup group, HalTaskStatus status, RK_U32 *count); | ||||
| MPP_RET hal_task_hnd_set_status(HalTaskHnd hnd, HalTaskStatus status); | ||||
| MPP_RET hal_task_hnd_set_info(HalTaskHnd hnd, HalTaskInfo *task); | ||||
| MPP_RET hal_task_hnd_get_info(HalTaskHnd hnd, HalTaskInfo *task); | ||||
| MPP_RET hal_task_info_init(HalTaskInfo *task, MppCtxType type); | ||||
| MPP_RET hal_task_hnd_set_info(HalTaskHnd hnd, void *task); | ||||
| MPP_RET hal_task_hnd_get_info(HalTaskHnd hnd, void *task); | ||||
| MPP_RET hal_task_check_empty(HalTaskGroup group, HalTaskStatus status); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| @@ -92,4 +79,3 @@ MPP_RET hal_task_check_empty(HalTaskGroup group, HalTaskStatus status); | ||||
| #endif | ||||
|  | ||||
| #endif /*__HAL_TASK__*/ | ||||
|  | ||||
|   | ||||
| @@ -1,44 +0,0 @@ | ||||
| /* | ||||
| * | ||||
| * 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. | ||||
| */ | ||||
|  | ||||
| #ifndef __HAL_TASK_DEFS__ | ||||
| #define __HAL_TASK_DEFS__ | ||||
|  | ||||
| #include "rk_type.h" | ||||
|  | ||||
| typedef void* HalTaskHnd; | ||||
| typedef void* HalTaskGroup; | ||||
|  | ||||
| typedef enum HalTaskStatus_e { | ||||
|     TASK_IDLE, | ||||
|     TASK_PROCESSING, | ||||
|     TASK_PROC_DONE, | ||||
|     TASK_BUTT, | ||||
| } HalTaskStatus; | ||||
|  | ||||
| /* | ||||
|  * modified by parser and encoder | ||||
|  * | ||||
|  * number   : the number of the data pointer array element | ||||
|  * data     : the address of the pointer array, parser will add its data here | ||||
|  */ | ||||
| typedef struct MppSyntax_t { | ||||
|     RK_U32              number; | ||||
|     void                *data; | ||||
| } MppSyntax; | ||||
|  | ||||
| #endif /* __HAL_TASK_DEFS__ */ | ||||
| @@ -17,8 +17,7 @@ | ||||
| #ifndef __HAL_VP8E_API_V2_H__ | ||||
| #define __HAL_VP8E_API_V2_H__ | ||||
|  | ||||
| #include "mpp_hal.h" | ||||
|  | ||||
| #include "mpp_enc_hal.h" | ||||
|  | ||||
| extern const MppEncHalApi hal_api_vp8e_v2; | ||||
|  | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
| #include "mpp_buf_slot.h" | ||||
| #include "mpp_platform.h" | ||||
|  | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
| #include "mpp_dec_cfg.h" | ||||
| #include "mpp_device.h" | ||||
|  | ||||
|   | ||||
| @@ -49,9 +49,6 @@ typedef struct MppEncHalImpl_t { | ||||
|  | ||||
|     void                *ctx; | ||||
|     const MppEncHalApi  *api; | ||||
|  | ||||
|     HalTaskGroup        tasks; | ||||
|     RK_S32              task_count; | ||||
| } MppEncHalImpl; | ||||
|  | ||||
| MPP_RET mpp_enc_hal_init(MppEncHal *ctx, MppEncHalCfg *cfg) | ||||
| @@ -81,12 +78,6 @@ MPP_RET mpp_enc_hal_init(MppEncHal *ctx, MppEncHalCfg *cfg) | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             ret = hal_task_group_init(&p->tasks, p->task_count); | ||||
|             if (ret) { | ||||
|                 mpp_err_f("hal_task_group_init failed ret %d\n", ret); | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             *ctx = p; | ||||
|             return MPP_OK; | ||||
|         } | ||||
| @@ -109,8 +100,6 @@ MPP_RET mpp_enc_hal_deinit(MppEncHal ctx) | ||||
|     MppEncHalImpl *p = (MppEncHalImpl*)ctx; | ||||
|     p->api->deinit(p->ctx); | ||||
|     mpp_free(p->ctx); | ||||
|     if (p->tasks) | ||||
|         hal_task_group_deinit(p->tasks); | ||||
|     mpp_free(p); | ||||
|     return MPP_OK; | ||||
| } | ||||
|   | ||||
| @@ -112,7 +112,8 @@ MPP_RET mpp_hal_init(MppHal *ctx, MppHalCfg *cfg) | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             ret = hal_task_group_init(&p->tasks, cfg->cfg->status.hal_task_count); | ||||
|             ret = hal_task_group_init(&p->tasks, cfg->cfg->status.hal_task_count, | ||||
|                                       sizeof(HalDecTask)); | ||||
|             if (ret) { | ||||
|                 mpp_err_f("hal_task_group_init failed ret %d\n", ret); | ||||
|                 break; | ||||
|   | ||||
| @@ -26,7 +26,7 @@ | ||||
| #include "mpp_bitread.h" | ||||
| #include "mpp_bitput.h" | ||||
|  | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
| #include "jpegd_syntax.h" | ||||
| #include "jpegd_api.h" | ||||
| #include "hal_jpegd_common.h" | ||||
|   | ||||
| @@ -23,7 +23,7 @@ | ||||
| #include "mpp_buf_slot.h" | ||||
| #include "mpp_device.h" | ||||
|  | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| #include "vp8d_syntax.h" | ||||
|  | ||||
|   | ||||
| @@ -17,7 +17,7 @@ | ||||
| #ifndef __MPP_DEC_VPROC_H__ | ||||
| #define __MPP_DEC_VPROC_H__ | ||||
|  | ||||
| #include "hal_task.h" | ||||
| #include "hal_dec_task.h" | ||||
|  | ||||
| typedef struct MppDecVprocCfg_t { | ||||
|     void            *mpp; | ||||
|   | ||||
| @@ -592,7 +592,7 @@ MPP_RET dec_vproc_init(MppDecVprocCtx *ctx, MppDecVprocCfg *cfg) | ||||
|     p->slots = ((MppDecImpl *)p->mpp->mDec)->frame_slots; | ||||
|     p->thd = new MppThread(dec_vproc_thread, p, "mpp_dec_vproc"); | ||||
|     sem_init(&p->reset_sem, 0, 0); | ||||
|     ret = hal_task_group_init(&p->task_group, 4); | ||||
|     ret = hal_task_group_init(&p->task_group, 4, sizeof(HalDecVprocTask)); | ||||
|     if (ret) { | ||||
|         mpp_err_f("create task group failed\n"); | ||||
|         delete p->thd; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Herman Chen
					Herman Chen