You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	libavfilter: Remove DNNReturnType from DNN Module
This patch removes all occurences of DNNReturnType from the DNN module. This commit replaces DNN_SUCCESS by 0 (essentially the same), so the functions with DNNReturnType now return 0 in case of success, the negative values otherwise. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com> Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Guo Yejun
						Guo Yejun
					
				
			
			
				
	
			
			
			
						parent
						
							1df77bab08
						
					
				
				
					commit
					d0a999a0ab
				
			| @@ -70,7 +70,7 @@ int ff_dnn_fill_task(TaskItem *task, DNNExecBaseParams *exec_params, void *backe | ||||
|     task->nb_output = exec_params->nb_output; | ||||
|     task->output_names = exec_params->output_names; | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /** | ||||
| @@ -82,7 +82,7 @@ static void *async_thread_routine(void *args) | ||||
|     DNNAsyncExecModule *async_module = args; | ||||
|     void *request = async_module->args; | ||||
|  | ||||
|     if (async_module->start_inference(request) != DNN_SUCCESS) { | ||||
|     if (async_module->start_inference(request) != 0) { | ||||
|         return DNN_ASYNC_FAIL; | ||||
|     } | ||||
|     async_module->callback(request); | ||||
| @@ -105,7 +105,7 @@ int ff_dnn_async_module_cleanup(DNNAsyncExecModule *async_module) | ||||
|     async_module->start_inference = NULL; | ||||
|     async_module->callback = NULL; | ||||
|     async_module->args = NULL; | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| int ff_dnn_start_inference_async(void *ctx, DNNAsyncExecModule *async_module) | ||||
| @@ -131,12 +131,12 @@ int ff_dnn_start_inference_async(void *ctx, DNNAsyncExecModule *async_module) | ||||
|     } | ||||
| #else | ||||
|     ret = async_module->start_inference(async_module->args); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         return ret; | ||||
|     } | ||||
|     async_module->callback(async_module->args); | ||||
| #endif | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| DNNAsyncStatusType ff_dnn_get_result_common(Queue *task_queue, AVFrame **in, AVFrame **out) | ||||
|   | ||||
| @@ -92,7 +92,7 @@ int ff_check_exec_params(void *ctx, DNNBackendType backend, DNNFunctionType func | ||||
|  * @param async flag for async execution. Must be 0 or 1 | ||||
|  * @param do_ioproc flag for IO processing. Must be 0 or 1 | ||||
|  * | ||||
|  * @returns DNN_SUCCESS if successful or error code otherwise. | ||||
|  * @returns 0 if successful or error code otherwise. | ||||
|  */ | ||||
| int ff_dnn_fill_task(TaskItem *task, DNNExecBaseParams *exec_params, void *backend_model, int async, int do_ioproc); | ||||
|  | ||||
| @@ -101,7 +101,7 @@ int ff_dnn_fill_task(TaskItem *task, DNNExecBaseParams *exec_params, void *backe | ||||
|  * | ||||
|  * @param async_module pointer to DNNAsyncExecModule module | ||||
|  * | ||||
|  * @returns DNN_SUCCESS if successful or error code otherwise. | ||||
|  * @returns 0 if successful or error code otherwise. | ||||
|  */ | ||||
| int ff_dnn_async_module_cleanup(DNNAsyncExecModule *async_module); | ||||
|  | ||||
| @@ -117,7 +117,7 @@ int ff_dnn_async_module_cleanup(DNNAsyncExecModule *async_module); | ||||
|  * @param ctx pointer to the backend context | ||||
|  * @param async_module pointer to DNNAsyncExecModule module | ||||
|  * | ||||
|  * @returns DNN_SUCCESS on the start of async inference or error code otherwise. | ||||
|  * @returns 0 on the start of async inference or error code otherwise. | ||||
|  */ | ||||
| int ff_dnn_start_inference_async(void *ctx, DNNAsyncExecModule *async_module); | ||||
|  | ||||
| @@ -146,7 +146,7 @@ DNNAsyncStatusType ff_dnn_get_result_common(Queue *task_queue, AVFrame **in, AVF | ||||
|  * @param input_width width of input frame | ||||
|  * @param ctx pointer to the backend context | ||||
|  * | ||||
|  * @returns DNN_SUCCESS if successful or error code otherwise. | ||||
|  * @returns 0 if successful or error code otherwise. | ||||
|  */ | ||||
| int ff_dnn_fill_gettingoutput_task(TaskItem *task, DNNExecBaseParams *exec_params, void *backend_model, int input_height, int input_width, void *ctx); | ||||
|  | ||||
|   | ||||
| @@ -67,7 +67,7 @@ static int extract_lltask_from_task(TaskItem *task, Queue *lltask_queue) | ||||
|         av_freep(&lltask); | ||||
|         return AVERROR(ENOMEM); | ||||
|     } | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int get_input_native(void *model, DNNData *input, const char *input_name) | ||||
| @@ -87,7 +87,7 @@ static int get_input_native(void *model, DNNData *input, const char *input_name) | ||||
|             input->height = oprd->dims[1]; | ||||
|             input->width = oprd->dims[2]; | ||||
|             input->channels = oprd->dims[3]; | ||||
|             return DNN_SUCCESS; | ||||
|             return 0; | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -112,12 +112,12 @@ static int get_output_native(void *model, const char *input_name, int input_widt | ||||
|     }; | ||||
|  | ||||
|     ret = ff_dnn_fill_gettingoutput_task(&task, &exec_params, native_model, input_height, input_width, ctx); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
|     ret = extract_lltask_from_task(&task, native_model->lltask_queue); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "unable to extract last level task from task.\n"); | ||||
|         goto err; | ||||
|     } | ||||
| @@ -387,7 +387,7 @@ static int execute_model_native(Queue *lltask_queue) | ||||
|                                                  native_model->layers[layer].output_operand_index, | ||||
|                                                  native_model->layers[layer].params, | ||||
|                                                  &native_model->ctx); | ||||
|         if (ret != DNN_SUCCESS) { | ||||
|         if (ret != 0) { | ||||
|             av_log(ctx, AV_LOG_ERROR, "Failed to execute model\n"); | ||||
|             goto err; | ||||
|         } | ||||
| @@ -451,7 +451,7 @@ int ff_dnn_execute_model_native(const DNNModel *model, DNNExecBaseParams *exec_p | ||||
|     } | ||||
|  | ||||
|     ret = ff_dnn_fill_task(task, exec_params, native_model, ctx->options.async, 1); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_freep(&task); | ||||
|         return ret; | ||||
|     } | ||||
| @@ -463,7 +463,7 @@ int ff_dnn_execute_model_native(const DNNModel *model, DNNExecBaseParams *exec_p | ||||
|     } | ||||
|  | ||||
|     ret = extract_lltask_from_task(task, native_model->lltask_queue); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "unable to extract last level task from task.\n"); | ||||
|         return ret; | ||||
|     } | ||||
| @@ -477,7 +477,7 @@ int ff_dnn_flush_native(const DNNModel *model) | ||||
|  | ||||
|     if (ff_queue_size(native_model->lltask_queue) == 0) { | ||||
|         // no pending task need to flush | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     // for now, use sync node with flush operation | ||||
|   | ||||
| @@ -143,5 +143,5 @@ int ff_dnn_execute_layer_avg_pool(DnnOperand *operands, const int32_t *input_ope | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|   | ||||
| @@ -190,7 +190,7 @@ int ff_dnn_execute_layer_conv2d(DnnOperand *operands, const int32_t *input_opera | ||||
| #if HAVE_PTHREAD_CANCEL | ||||
|     int thread_num = (ctx->options.conv2d_threads <= 0 || ctx->options.conv2d_threads > av_cpu_count()) | ||||
|         ? (av_cpu_count() + 1) : (ctx->options.conv2d_threads); | ||||
|     int ret = DNN_SUCCESS, thread_stride; | ||||
|     int ret = 0, thread_stride; | ||||
|     ThreadParam *thread_param; | ||||
| #else | ||||
|     ThreadParam thread_param = { 0 }; | ||||
| @@ -260,6 +260,6 @@ int ff_dnn_execute_layer_conv2d(DnnOperand *operands, const int32_t *input_opera | ||||
|     thread_param.thread_end = height - pad_size; | ||||
|     dnn_execute_layer_conv2d_thread(&thread_param); | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| #endif | ||||
| } | ||||
|   | ||||
| @@ -147,5 +147,5 @@ int ff_dnn_execute_layer_dense(DnnOperand *operands, const int32_t *input_operan | ||||
|             output += dense_params->output_num; | ||||
|         } | ||||
|     } | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|   | ||||
| @@ -98,5 +98,5 @@ int ff_dnn_execute_layer_depth2space(DnnOperand *operands, const int32_t *input_ | ||||
|         } | ||||
|         output += output_linesize; | ||||
|     } | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|   | ||||
| @@ -191,7 +191,7 @@ static int fill_model_input_ov(OVModel *ov_model, OVRequestItem *request) | ||||
|     } | ||||
|     ie_blob_free(&input_blob); | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static void infer_completion_callback(void *args) | ||||
| @@ -303,7 +303,7 @@ static void infer_completion_callback(void *args) | ||||
|  | ||||
| static int init_model_ov(OVModel *ov_model, const char *input_name, const char *output_name) | ||||
| { | ||||
|     int ret = DNN_SUCCESS; | ||||
|     int ret = 0; | ||||
|     OVContext *ctx = &ov_model->ctx; | ||||
|     IEStatusCode status; | ||||
|     ie_available_devices_t a_dev; | ||||
| @@ -433,7 +433,7 @@ static int init_model_ov(OVModel *ov_model, const char *input_name, const char * | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
|  | ||||
| err: | ||||
|     ff_dnn_free_model_ov(&ov_model->model); | ||||
| @@ -444,7 +444,7 @@ static int execute_model_ov(OVRequestItem *request, Queue *inferenceq) | ||||
| { | ||||
|     IEStatusCode status; | ||||
|     LastLevelTaskItem *lltask; | ||||
|     int ret = DNN_SUCCESS; | ||||
|     int ret = 0; | ||||
|     TaskItem *task; | ||||
|     OVContext *ctx; | ||||
|     OVModel *ov_model; | ||||
| @@ -452,7 +452,7 @@ static int execute_model_ov(OVRequestItem *request, Queue *inferenceq) | ||||
|     if (ff_queue_size(inferenceq) == 0) { | ||||
|         ie_infer_request_free(&request->infer_request); | ||||
|         av_freep(&request); | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     lltask = ff_queue_peek_front(inferenceq); | ||||
| @@ -462,7 +462,7 @@ static int execute_model_ov(OVRequestItem *request, Queue *inferenceq) | ||||
|  | ||||
|     if (task->async) { | ||||
|         ret = fill_model_input_ov(ov_model, request); | ||||
|         if (ret != DNN_SUCCESS) { | ||||
|         if (ret != 0) { | ||||
|             goto err; | ||||
|         } | ||||
|         status = ie_infer_set_completion_callback(request->infer_request, &request->callback); | ||||
| @@ -477,10 +477,10 @@ static int execute_model_ov(OVRequestItem *request, Queue *inferenceq) | ||||
|             ret = DNN_GENERIC_ERROR; | ||||
|             goto err; | ||||
|         } | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } else { | ||||
|         ret = fill_model_input_ov(ov_model, request); | ||||
|         if (ret != DNN_SUCCESS) { | ||||
|         if (ret != 0) { | ||||
|             goto err; | ||||
|         } | ||||
|         status = ie_infer_request_infer(request->infer_request); | ||||
| @@ -490,7 +490,7 @@ static int execute_model_ov(OVRequestItem *request, Queue *inferenceq) | ||||
|             goto err; | ||||
|         } | ||||
|         infer_completion_callback(request); | ||||
|         return (task->inference_done == task->inference_todo) ? DNN_SUCCESS : DNN_GENERIC_ERROR; | ||||
|         return (task->inference_done == task->inference_todo) ? 0 : DNN_GENERIC_ERROR; | ||||
|     } | ||||
| err: | ||||
|     if (ff_safe_queue_push_back(ov_model->request_queue, request) < 0) { | ||||
| @@ -537,7 +537,7 @@ static int get_input_ov(void *model, DNNData *input, const char *input_name) | ||||
|             input->height   = input_resizable ? -1 : dims.dims[2]; | ||||
|             input->width    = input_resizable ? -1 : dims.dims[3]; | ||||
|             input->dt       = precision_to_datatype(precision); | ||||
|             return DNN_SUCCESS; | ||||
|             return 0; | ||||
|         } else { | ||||
|             //incorrect input name | ||||
|             APPEND_STRING(all_input_names, model_input_name) | ||||
| @@ -604,7 +604,7 @@ static int extract_lltask_from_task(DNNFunctionType func_type, TaskItem *task, Q | ||||
|             av_freep(&lltask); | ||||
|             return AVERROR(ENOMEM); | ||||
|         } | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|     case DFT_ANALYTICS_CLASSIFY: | ||||
|     { | ||||
| @@ -617,7 +617,7 @@ static int extract_lltask_from_task(DNNFunctionType func_type, TaskItem *task, Q | ||||
|         task->inference_done = 0; | ||||
|  | ||||
|         if (!contain_valid_detection_bbox(frame)) { | ||||
|             return DNN_SUCCESS; | ||||
|             return 0; | ||||
|         } | ||||
|  | ||||
|         sd = av_frame_get_side_data(frame, AV_FRAME_DATA_DETECTION_BBOXES); | ||||
| @@ -645,7 +645,7 @@ static int extract_lltask_from_task(DNNFunctionType func_type, TaskItem *task, Q | ||||
|                 return AVERROR(ENOMEM); | ||||
|             } | ||||
|         } | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|     default: | ||||
|         av_assert0(!"should not reach here"); | ||||
| @@ -690,19 +690,19 @@ static int get_output_ov(void *model, const char *input_name, int input_width, i | ||||
|  | ||||
|     if (!ov_model->exe_network) { | ||||
|         ret = init_model_ov(ov_model, input_name, output_name); | ||||
|         if (ret != DNN_SUCCESS) { | ||||
|         if (ret != 0) { | ||||
|             av_log(ctx, AV_LOG_ERROR, "Failed init OpenVINO exectuable network or inference request\n"); | ||||
|             return ret; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     ret = ff_dnn_fill_gettingoutput_task(&task, &exec_params, ov_model, input_height, input_width, ctx); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
|     ret = extract_lltask_from_task(ov_model->model->func_type, &task, ov_model->lltask_queue, NULL); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "unable to extract inference from task.\n"); | ||||
|         goto err; | ||||
|     } | ||||
| @@ -795,7 +795,7 @@ int ff_dnn_execute_model_ov(const DNNModel *model, DNNExecBaseParams *exec_param | ||||
|  | ||||
|     if (!ov_model->exe_network) { | ||||
|         ret = init_model_ov(ov_model, exec_params->input_name, exec_params->output_names[0]); | ||||
|         if (ret != DNN_SUCCESS) { | ||||
|         if (ret != 0) { | ||||
|             av_log(ctx, AV_LOG_ERROR, "Failed init OpenVINO exectuable network or inference request\n"); | ||||
|             return ret; | ||||
|         } | ||||
| @@ -808,7 +808,7 @@ int ff_dnn_execute_model_ov(const DNNModel *model, DNNExecBaseParams *exec_param | ||||
|     } | ||||
|  | ||||
|     ret = ff_dnn_fill_task(task, exec_params, ov_model, ctx->options.async, 1); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_freep(&task); | ||||
|         return ret; | ||||
|     } | ||||
| @@ -820,7 +820,7 @@ int ff_dnn_execute_model_ov(const DNNModel *model, DNNExecBaseParams *exec_param | ||||
|     } | ||||
|  | ||||
|     ret = extract_lltask_from_task(model->func_type, task, ov_model->lltask_queue, exec_params); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "unable to extract inference from task.\n"); | ||||
|         return ret; | ||||
|     } | ||||
| @@ -834,12 +834,12 @@ int ff_dnn_execute_model_ov(const DNNModel *model, DNNExecBaseParams *exec_param | ||||
|             } | ||||
|  | ||||
|             ret = execute_model_ov(request, ov_model->lltask_queue); | ||||
|             if (ret != DNN_SUCCESS) { | ||||
|             if (ret != 0) { | ||||
|                 return ret; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|     else { | ||||
|         if (model->func_type == DFT_ANALYTICS_CLASSIFY) { | ||||
| @@ -879,7 +879,7 @@ int ff_dnn_flush_ov(const DNNModel *model) | ||||
|  | ||||
|     if (ff_queue_size(ov_model->lltask_queue) == 0) { | ||||
|         // no pending task need to flush | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     request = ff_safe_queue_pop_front(ov_model->request_queue); | ||||
| @@ -889,7 +889,7 @@ int ff_dnn_flush_ov(const DNNModel *model) | ||||
|     } | ||||
|  | ||||
|     ret = fill_model_input_ov(ov_model, request); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "Failed to fill model input.\n"); | ||||
|         return ret; | ||||
|     } | ||||
| @@ -904,7 +904,7 @@ int ff_dnn_flush_ov(const DNNModel *model) | ||||
|         return DNN_GENERIC_ERROR; | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| void ff_dnn_free_model_ov(DNNModel **model) | ||||
|   | ||||
| @@ -151,7 +151,7 @@ static TFInferRequest *tf_create_inference_request(void) | ||||
|  * Start synchronous inference for the TensorFlow model. | ||||
|  * | ||||
|  * @param request pointer to the TFRequestItem for inference | ||||
|  * @retval DNN_SUCCESS if execution is successful | ||||
|  * @retval 0 if execution is successful | ||||
|  * @retval AVERROR(EINVAL) if request is NULL | ||||
|  * @retval DNN_GENERIC_ERROR if execution fails | ||||
|  */ | ||||
| @@ -181,7 +181,7 @@ static int tf_start_inference(void *args) | ||||
|         } | ||||
|         return DNN_GENERIC_ERROR; | ||||
|     } | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /** | ||||
| @@ -220,7 +220,7 @@ static int extract_lltask_from_task(TaskItem *task, Queue *lltask_queue) | ||||
|         av_freep(&lltask); | ||||
|         return AVERROR(ENOMEM); | ||||
|     } | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static TF_Buffer *read_graph(const char *model_filename) | ||||
| @@ -311,7 +311,7 @@ static int get_input_tf(void *model, DNNData *input, const char *input_name) | ||||
|     input->width = dims[2]; | ||||
|     input->channels = dims[3]; | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int get_output_tf(void *model, const char *input_name, int input_width, int input_height, | ||||
| @@ -331,12 +331,12 @@ static int get_output_tf(void *model, const char *input_name, int input_width, i | ||||
|     }; | ||||
|  | ||||
|     ret = ff_dnn_fill_gettingoutput_task(&task, &exec_params, tf_model, input_height, input_width, ctx); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
|     ret = extract_lltask_from_task(&task, tf_model->lltask_queue); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "unable to extract inference from task.\n"); | ||||
|         goto err; | ||||
|     } | ||||
| @@ -487,7 +487,7 @@ static int load_tf_model(TFModel *tf_model, const char *model_filename) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| #define NAME_BUFFER_SIZE 256 | ||||
| @@ -606,7 +606,7 @@ static int add_conv_layer(TFModel *tf_model, TF_Operation *transpose_op, TF_Oper | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| err: | ||||
|     TF_DeleteTensor(kernel_tensor); | ||||
|     TF_DeleteTensor(biases_tensor); | ||||
| @@ -635,7 +635,7 @@ static int add_depth_to_space_layer(TFModel *tf_model, TF_Operation **cur_op, | ||||
|         return DNN_GENERIC_ERROR; | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int add_pad_layer(TFModel *tf_model, TF_Operation **cur_op, | ||||
| @@ -693,7 +693,7 @@ static int add_pad_layer(TFModel *tf_model, TF_Operation **cur_op, | ||||
|         return DNN_GENERIC_ERROR; | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int add_maximum_layer(TFModel *tf_model, TF_Operation **cur_op, | ||||
| @@ -742,7 +742,7 @@ static int add_maximum_layer(TFModel *tf_model, TF_Operation **cur_op, | ||||
|         return DNN_GENERIC_ERROR; | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int load_native_model(TFModel *tf_model, const char *model_filename) | ||||
| @@ -808,7 +808,7 @@ static int load_native_model(TFModel *tf_model, const char *model_filename) | ||||
|     for (layer = 0; layer < native_model->layers_num; ++layer){ | ||||
|         switch (native_model->layers[layer].type){ | ||||
|         case DLT_INPUT: | ||||
|             layer_add_res = DNN_SUCCESS; | ||||
|             layer_add_res = 0; | ||||
|             break; | ||||
|         case DLT_CONV2D: | ||||
|             layer_add_res = add_conv_layer(tf_model, transpose_op, &op, | ||||
| @@ -830,7 +830,7 @@ static int load_native_model(TFModel *tf_model, const char *model_filename) | ||||
|             CLEANUP_ON_ERROR(tf_model); | ||||
|         } | ||||
|  | ||||
|         if (layer_add_res != DNN_SUCCESS){ | ||||
|         if (layer_add_res != 0){ | ||||
|             CLEANUP_ON_ERROR(tf_model); | ||||
|         } | ||||
|     } | ||||
| @@ -846,7 +846,7 @@ static int load_native_model(TFModel *tf_model, const char *model_filename) | ||||
|  | ||||
|     ff_dnn_free_model_native(&model); | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| DNNModel *ff_dnn_load_model_tf(const char *model_filename, DNNFunctionType func_type, const char *options, AVFilterContext *filter_ctx) | ||||
| @@ -876,8 +876,8 @@ DNNModel *ff_dnn_load_model_tf(const char *model_filename, DNNFunctionType func_ | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
|     if (load_tf_model(tf_model, model_filename) != DNN_SUCCESS){ | ||||
|         if (load_native_model(tf_model, model_filename) != DNN_SUCCESS){ | ||||
|     if (load_tf_model(tf_model, model_filename) != 0){ | ||||
|         if (load_native_model(tf_model, model_filename) != 0){ | ||||
|             goto err; | ||||
|         } | ||||
|     } | ||||
| @@ -958,7 +958,7 @@ static int fill_model_input_tf(TFModel *tf_model, TFRequestItem *request) { | ||||
|     request->lltask = lltask; | ||||
|  | ||||
|     ret = get_input_tf(tf_model, &input, task->input_name); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
| @@ -1032,7 +1032,7 @@ static int fill_model_input_tf(TFModel *tf_model, TFRequestItem *request) { | ||||
|         infer_request->tf_outputs[i].index = 0; | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| err: | ||||
|     tf_free_request(infer_request); | ||||
|     return ret; | ||||
| @@ -1106,7 +1106,7 @@ static int execute_model_tf(TFRequestItem *request, Queue *lltask_queue) | ||||
|  | ||||
|     if (ff_queue_size(lltask_queue) == 0) { | ||||
|         destroy_request_item(&request); | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     lltask = ff_queue_peek_front(lltask_queue); | ||||
| @@ -1115,23 +1115,23 @@ static int execute_model_tf(TFRequestItem *request, Queue *lltask_queue) | ||||
|     ctx = &tf_model->ctx; | ||||
|  | ||||
|     ret = fill_model_input_tf(tf_model, request); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         goto err; | ||||
|     } | ||||
|  | ||||
|     if (task->async) { | ||||
|         if (ff_dnn_start_inference_async(ctx, &request->exec_module) != DNN_SUCCESS) { | ||||
|         if (ff_dnn_start_inference_async(ctx, &request->exec_module) != 0) { | ||||
|             goto err; | ||||
|         } | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|     else { | ||||
|         ret = tf_start_inference(request); | ||||
|         if (ret != DNN_SUCCESS) { | ||||
|         if (ret != 0) { | ||||
|             goto err; | ||||
|         } | ||||
|         infer_completion_callback(request); | ||||
|         return (task->inference_done == task->inference_todo) ? DNN_SUCCESS : DNN_GENERIC_ERROR; | ||||
|         return (task->inference_done == task->inference_todo) ? 0 : DNN_GENERIC_ERROR; | ||||
|     } | ||||
| err: | ||||
|     tf_free_request(request->infer_request); | ||||
| @@ -1161,7 +1161,7 @@ int ff_dnn_execute_model_tf(const DNNModel *model, DNNExecBaseParams *exec_param | ||||
|     } | ||||
|  | ||||
|     ret = ff_dnn_fill_task(task, exec_params, tf_model, ctx->options.async, 1); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_freep(&task); | ||||
|         return ret; | ||||
|     } | ||||
| @@ -1173,7 +1173,7 @@ int ff_dnn_execute_model_tf(const DNNModel *model, DNNExecBaseParams *exec_param | ||||
|     } | ||||
|  | ||||
|     ret = extract_lltask_from_task(task, tf_model->lltask_queue); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "unable to extract last level task from task.\n"); | ||||
|         return ret; | ||||
|     } | ||||
| @@ -1201,7 +1201,7 @@ int ff_dnn_flush_tf(const DNNModel *model) | ||||
|  | ||||
|     if (ff_queue_size(tf_model->lltask_queue) == 0) { | ||||
|         // no pending task need to flush | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     request = ff_safe_queue_pop_front(tf_model->request_queue); | ||||
| @@ -1211,7 +1211,7 @@ int ff_dnn_flush_tf(const DNNModel *model) | ||||
|     } | ||||
|  | ||||
|     ret = fill_model_input_tf(tf_model, request); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "Failed to fill model input.\n"); | ||||
|         if (ff_safe_queue_push_back(tf_model->request_queue, request) < 0) { | ||||
|             destroy_request_item(&request); | ||||
|   | ||||
| @@ -57,12 +57,12 @@ int ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *log_ctx) | ||||
|                            (const int[4]){frame->width * 3 * sizeof(float), 0, 0, 0}, 0, frame->height, | ||||
|                            (uint8_t * const*)frame->data, frame->linesize); | ||||
|         sws_freeContext(sws_ctx); | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     case AV_PIX_FMT_GRAYF32: | ||||
|         av_image_copy_plane(frame->data[0], frame->linesize[0], | ||||
|                             output->data, bytewidth, | ||||
|                             bytewidth, frame->height); | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     case AV_PIX_FMT_YUV420P: | ||||
|     case AV_PIX_FMT_YUV422P: | ||||
|     case AV_PIX_FMT_YUV444P: | ||||
| @@ -88,13 +88,13 @@ int ff_proc_from_dnn_to_frame(AVFrame *frame, DNNData *output, void *log_ctx) | ||||
|                            (const int[4]){frame->width * sizeof(float), 0, 0, 0}, 0, frame->height, | ||||
|                            (uint8_t * const*)frame->data, frame->linesize); | ||||
|         sws_freeContext(sws_ctx); | ||||
|         return DNN_SUCCESS; | ||||
|         return 0; | ||||
|     default: | ||||
|         avpriv_report_missing_feature(log_ctx, "%s", av_get_pix_fmt_name(frame->format)); | ||||
|         return AVERROR(ENOSYS); | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| int ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *log_ctx) | ||||
| @@ -169,7 +169,7 @@ int ff_proc_from_frame_to_dnn(AVFrame *frame, DNNData *input, void *log_ctx) | ||||
|         return AVERROR(ENOSYS); | ||||
|     } | ||||
|  | ||||
|     return DNN_SUCCESS; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static enum AVPixelFormat get_pixel_format(DNNData *data) | ||||
| @@ -197,7 +197,7 @@ int ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t bbox_index | ||||
|     uint8_t *bbox_data[4]; | ||||
|     struct SwsContext *sws_ctx; | ||||
|     int linesizes[4]; | ||||
|     int ret = DNN_SUCCESS; | ||||
|     int ret = 0; | ||||
|     enum AVPixelFormat fmt; | ||||
|     int left, top, width, height; | ||||
|     const AVDetectionBBoxHeader *header; | ||||
| @@ -255,7 +255,7 @@ int ff_frame_to_dnn_detect(AVFrame *frame, DNNData *input, void *log_ctx) | ||||
| { | ||||
|     struct SwsContext *sws_ctx; | ||||
|     int linesizes[4]; | ||||
|     int ret = DNN_SUCCESS; | ||||
|     int ret = 0; | ||||
|     enum AVPixelFormat fmt = get_pixel_format(input); | ||||
|     sws_ctx = sws_getContext(frame->width, frame->height, frame->format, | ||||
|                              input->width, input->height, fmt, | ||||
|   | ||||
| @@ -32,8 +32,6 @@ | ||||
|  | ||||
| #define DNN_GENERIC_ERROR FFERRTAG('D','N','N','!') | ||||
|  | ||||
| typedef enum {DNN_SUCCESS, DNN_ERROR} DNNReturnType; | ||||
|  | ||||
| typedef enum {DNN_NATIVE, DNN_TF, DNN_OV} DNNBackendType; | ||||
|  | ||||
| typedef enum {DNN_FLOAT = 1, DNN_UINT8 = 4} DNNDataType; | ||||
|   | ||||
| @@ -74,7 +74,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) | ||||
|     av_frame_copy_props(out, in); | ||||
|  | ||||
|     dnn_result = ff_dnn_execute_model(&dr_context->dnnctx, in, out); | ||||
|     if (dnn_result != DNN_SUCCESS){ | ||||
|     if (dnn_result != 0){ | ||||
|         av_log(ctx, AV_LOG_ERROR, "failed to execute model\n"); | ||||
|         av_frame_free(&in); | ||||
|         return dnn_result; | ||||
|   | ||||
| @@ -213,7 +213,7 @@ static int dnn_classify_flush_frame(AVFilterLink *outlink, int64_t pts, int64_t | ||||
|     DNNAsyncStatusType async_state; | ||||
|  | ||||
|     ret = ff_dnn_flush(&ctx->dnnctx); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
| @@ -253,7 +253,7 @@ static int dnn_classify_activate(AVFilterContext *filter_ctx) | ||||
|         if (ret < 0) | ||||
|             return ret; | ||||
|         if (ret > 0) { | ||||
|             if (ff_dnn_execute_model_classification(&ctx->dnnctx, in, NULL, ctx->target) != DNN_SUCCESS) { | ||||
|             if (ff_dnn_execute_model_classification(&ctx->dnnctx, in, NULL, ctx->target) != 0) { | ||||
|                 return AVERROR(EIO); | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -356,7 +356,7 @@ static int dnn_detect_flush_frame(AVFilterLink *outlink, int64_t pts, int64_t *o | ||||
|     DNNAsyncStatusType async_state; | ||||
|  | ||||
|     ret = ff_dnn_flush(&ctx->dnnctx); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
| @@ -396,7 +396,7 @@ static int dnn_detect_activate(AVFilterContext *filter_ctx) | ||||
|         if (ret < 0) | ||||
|             return ret; | ||||
|         if (ret > 0) { | ||||
|             if (ff_dnn_execute_model(&ctx->dnnctx, in, NULL) != DNN_SUCCESS) { | ||||
|             if (ff_dnn_execute_model(&ctx->dnnctx, in, NULL) != 0) { | ||||
|                 return AVERROR(EIO); | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -139,7 +139,7 @@ static int config_input(AVFilterLink *inlink) | ||||
|     int check; | ||||
|  | ||||
|     result = ff_dnn_get_input(&ctx->dnnctx, &model_input); | ||||
|     if (result != DNN_SUCCESS) { | ||||
|     if (result != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "could not get input from the model\n"); | ||||
|         return result; | ||||
|     } | ||||
| @@ -199,7 +199,7 @@ static int config_output(AVFilterLink *outlink) | ||||
|  | ||||
|     // have a try run in case that the dnn model resize the frame | ||||
|     result = ff_dnn_get_output(&ctx->dnnctx, inlink->w, inlink->h, &outlink->w, &outlink->h); | ||||
|     if (result != DNN_SUCCESS) { | ||||
|     if (result != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "could not get output from the model\n"); | ||||
|         return result; | ||||
|     } | ||||
| @@ -247,7 +247,7 @@ static int flush_frame(AVFilterLink *outlink, int64_t pts, int64_t *out_pts) | ||||
|     DNNAsyncStatusType async_state; | ||||
|  | ||||
|     ret = ff_dnn_flush(&ctx->dnnctx); | ||||
|     if (ret != DNN_SUCCESS) { | ||||
|     if (ret != 0) { | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
| @@ -296,7 +296,7 @@ static int activate(AVFilterContext *filter_ctx) | ||||
|                 return AVERROR(ENOMEM); | ||||
|             } | ||||
|             av_frame_copy_props(out, in); | ||||
|             if (ff_dnn_execute_model(&ctx->dnnctx, in, out) != DNN_SUCCESS) { | ||||
|             if (ff_dnn_execute_model(&ctx->dnnctx, in, out) != 0) { | ||||
|                 return AVERROR(EIO); | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -82,7 +82,7 @@ static int config_output(AVFilterLink *outlink) | ||||
|  | ||||
|     // have a try run in case that the dnn model resize the frame | ||||
|     result = ff_dnn_get_output(&ctx->dnnctx, inlink->w, inlink->h, &out_width, &out_height); | ||||
|     if (result != DNN_SUCCESS) { | ||||
|     if (result != 0) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "could not get output from the model\n"); | ||||
|         return result; | ||||
|     } | ||||
| @@ -139,7 +139,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) | ||||
|         dnn_result = ff_dnn_execute_model(&ctx->dnnctx, in, out); | ||||
|     } | ||||
|  | ||||
|     if (dnn_result != DNN_SUCCESS){ | ||||
|     if (dnn_result != 0){ | ||||
|         av_log(ctx, AV_LOG_ERROR, "failed to execute loaded model\n"); | ||||
|         av_frame_free(&in); | ||||
|         av_frame_free(&out); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user