diff options
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/dnn/dnn_backend_native_layer_mathbinary.c | 13 | ||||
-rw-r--r-- | libavfilter/dnn/dnn_backend_native_layer_mathbinary.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c index 3fe337f730..222941e952 100644 --- a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c +++ b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.c @@ -120,6 +120,19 @@ int dnn_execute_layer_math_binary(DnnOperand *operands, const int32_t *input_ope } } return 0; + case DMBO_MUL: + if (params->input0_broadcast || params->input1_broadcast) { + for (int i = 0; i < dims_count; ++i) { + dst[i] = params->v * src[i]; + } + } 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 3c5bc6b2e1..d58b48c747 100644 --- a/libavfilter/dnn/dnn_backend_native_layer_mathbinary.h +++ b/libavfilter/dnn/dnn_backend_native_layer_mathbinary.h @@ -33,6 +33,7 @@ typedef enum { DMBO_SUB = 0, DMBO_ADD = 1, + DMBO_MUL = 2, DMBO_COUNT } DNNMathBinaryOperation; |