[FFmpeg-cvslog] dnn/native: unify error return to DNN_ERROR

Ting Fu git at videolan.org
Tue Aug 25 09:28:22 EEST 2020


ffmpeg | branch: master | Ting Fu <ting.fu at intel.com> | Tue Aug 25 11:47:49 2020 +0800| [230cf9d1854b171727d1b10c2a2fbe0df9d1d489] | committer: Guo, Yejun

dnn/native: unify error return to DNN_ERROR

Unify all error return as DNN_ERROR, in order to cease model executing
when return error in ff_dnn_execute_model_native layer_func.pf_exec

Signed-off-by: Ting Fu <ting.fu at intel.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=230cf9d1854b171727d1b10c2a2fbe0df9d1d489
---

 libavfilter/dnn/dnn_backend_native.c                   | 10 ++++++----
 libavfilter/dnn/dnn_backend_native_layer_avgpool.c     |  2 +-
 libavfilter/dnn/dnn_backend_native_layer_conv2d.c      |  4 ++--
 libavfilter/dnn/dnn_backend_native_layer_depth2space.c |  4 ++--
 libavfilter/dnn/dnn_backend_native_layer_mathbinary.c  |  2 +-
 libavfilter/dnn/dnn_backend_native_layer_mathunary.c   |  2 +-
 libavfilter/dnn/dnn_backend_native_layer_pad.c         |  4 ++--
 7 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/libavfilter/dnn/dnn_backend_native.c b/libavfilter/dnn/dnn_backend_native.c
index 65a56704d3..436ce938da 100644
--- a/libavfilter/dnn/dnn_backend_native.c
+++ b/libavfilter/dnn/dnn_backend_native.c
@@ -246,10 +246,12 @@ DNNReturnType ff_dnn_execute_model_native(const DNNModel *model, DNNData *output
 
     for (layer = 0; layer < native_model->layers_num; ++layer){
         DNNLayerType layer_type = native_model->layers[layer].type;
-        layer_funcs[layer_type].pf_exec(native_model->operands,
-                                        native_model->layers[layer].input_operand_indexes,
-                                        native_model->layers[layer].output_operand_index,
-                                        native_model->layers[layer].params);
+        if (layer_funcs[layer_type].pf_exec(native_model->operands,
+                                            native_model->layers[layer].input_operand_indexes,
+                                            native_model->layers[layer].output_operand_index,
+                                            native_model->layers[layer].params) == DNN_ERROR) {
+            return DNN_ERROR;
+        }
     }
 
     for (uint32_t i = 0; i < nb_output; ++i) {
diff --git a/libavfilter/dnn/dnn_backend_native_layer_avgpool.c b/libavfilter/dnn/dnn_backend_native_layer_avgpool.c
index 8d4d8db98c..bd7bdb4c97 100644
--- a/libavfilter/dnn/dnn_backend_native_layer_avgpool.c
+++ b/libavfilter/dnn/dnn_backend_native_layer_avgpool.c
@@ -109,7 +109,7 @@ int dnn_execute_layer_avg_pool(DnnOperand *operands, const int32_t *input_operan
     output_operand->length = calculate_operand_data_length(output_operand);
     output_operand->data = av_realloc(output_operand->data, output_operand->length);
     if (!output_operand->data)
-        return -1;
+        return DNN_ERROR;
     output = output_operand->data;
 
     for (int y = 0; y < height_end; y += kernel_strides) {
diff --git a/libavfilter/dnn/dnn_backend_native_layer_conv2d.c b/libavfilter/dnn/dnn_backend_native_layer_conv2d.c
index a2202e4073..25356901c2 100644
--- a/libavfilter/dnn/dnn_backend_native_layer_conv2d.c
+++ b/libavfilter/dnn/dnn_backend_native_layer_conv2d.c
@@ -114,10 +114,10 @@ int dnn_execute_layer_conv2d(DnnOperand *operands, const int32_t *input_operand_
     output_operand->data_type = operands[input_operand_index].data_type;
     output_operand->length = calculate_operand_data_length(output_operand);
     if (output_operand->length <= 0)
-        return -1;
+        return DNN_ERROR;
     output_operand->data = av_realloc(output_operand->data, output_operand->length);
     if (!output_operand->data)
-        return -1;
+        return DNN_ERROR;
     output = output_operand->data;
 
     av_assert0(channel == conv_params->input_num);
diff --git a/libavfilter/dnn/dnn_backend_native_layer_depth2space.c b/libavfilter/dnn/dnn_backend_native_layer_depth2space.c
index 2c8bddf23d..5a61025f7a 100644
--- a/libavfilter/dnn/dnn_backend_native_layer_depth2space.c
+++ b/libavfilter/dnn/dnn_backend_native_layer_depth2space.c
@@ -76,10 +76,10 @@ int dnn_execute_layer_depth2space(DnnOperand *operands, const int32_t *input_ope
     output_operand->data_type = operands[input_operand_index].data_type;
     output_operand->length = calculate_operand_data_length(output_operand);
     if (output_operand->length <= 0)
-        return -1;
+        return DNN_ERROR;
     output_operand->data = av_realloc(output_operand->data, output_operand->length);
     if (!output_operand->data)
-        return -1;
+        return DNN_ERROR;
     output = output_operand->data;
 
     for (y = 0; y < height; ++y){
diff --git a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c
index 7d81694288..6ec1f08e9f 100644
--- a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c
+++ b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c
@@ -186,6 +186,6 @@ int dnn_execute_layer_math_binary(DnnOperand *operands, const int32_t *input_ope
         math_binary_not_commutative(floormod, params, input, output, operands, input_operand_indexes);
         return 0;
     default:
-        return -1;
+        return DNN_ERROR;
     }
 }
diff --git a/libavfilter/dnn/dnn_backend_native_layer_mathunary.c b/libavfilter/dnn/dnn_backend_native_layer_mathunary.c
index 58ee0e9d3d..57bbd9d3e8 100644
--- a/libavfilter/dnn/dnn_backend_native_layer_mathunary.c
+++ b/libavfilter/dnn/dnn_backend_native_layer_mathunary.c
@@ -143,6 +143,6 @@ int dnn_execute_layer_math_unary(DnnOperand *operands, const int32_t *input_oper
             dst[i] = round(src[i]);
         return 0;
     default:
-        return -1;
+        return DNN_ERROR;
     }
 }
diff --git a/libavfilter/dnn/dnn_backend_native_layer_pad.c b/libavfilter/dnn/dnn_backend_native_layer_pad.c
index feaab001e8..5452d22878 100644
--- a/libavfilter/dnn/dnn_backend_native_layer_pad.c
+++ b/libavfilter/dnn/dnn_backend_native_layer_pad.c
@@ -112,10 +112,10 @@ int dnn_execute_layer_pad(DnnOperand *operands, const int32_t *input_operand_ind
     output_operand->data_type = operands[input_operand_index].data_type;
     output_operand->length = calculate_operand_data_length(output_operand);
     if (output_operand->length <= 0)
-        return -1;
+        return DNN_ERROR;
     output_operand->data = av_realloc(output_operand->data, output_operand->length);
     if (!output_operand->data)
-        return -1;
+        return DNN_ERROR;
     output = output_operand->data;
 
     // copy the original data



More information about the ffmpeg-cvslog mailing list