diff options
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/dnn/dnn_backend_native_layer_mathbinary.c | 17 | ||||
-rw-r--r-- | libavfilter/dnn/dnn_backend_native_layer_mathbinary.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c index 222941e952..c32a042788 100644 --- a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c +++ b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c @@ -133,6 +133,23 @@ int dnn_execute_layer_math_binary(DnnOperand *operands, const int32_t *input_ope } } return 0; + case DMBO_REALDIV: + if (params->input0_broadcast) { + for (int i = 0; i < dims_count; ++i) { + dst[i] = params->v / src[i]; + } + } else if (params->input1_broadcast) { + for (int i = 0; i < dims_count; ++i) { + dst[i] = src[i] / params->v; + } + } else { + const DnnOperand *input1 = &operands[input_operand_indexes[1]]; + const float *src1 = input1->data; + for (int i = 0; i < dims_count; ++i) { + dst[i] = src[i] / src1[i]; + } + } + return 0; default: return -1; } diff --git a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.h b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.h index d58b48c747..2ffbb66eeb 100644 --- a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.h +++ b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.h @@ -34,6 +34,7 @@ typedef enum { DMBO_SUB = 0, DMBO_ADD = 1, DMBO_MUL = 2, + DMBO_REALDIV = 3, DMBO_COUNT } DNNMathBinaryOperation; |