[FFmpeg-devel] [PATCH] dnn_backend_native_layer_avgpool: Fix invalid assignment, use av_assert

Guo, Yejun yejun.guo at intel.com
Fri Aug 21 17:17:19 EEST 2020



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Andreas Rheinhardt
> Sent: 2020年8月21日 19:47
> To: ffmpeg-devel at ffmpeg.org
> Cc: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> Subject: [FFmpeg-devel] [PATCH] dnn_backend_native_layer_avgpool: Fix invalid
> assignment, use av_assert
> 
> dnn_execute_layer_avg_pool() contains the following line:
> 
> assert(avgpool_params->padding_method = VALID);
> 
> This statement contains an assignment where obviously a comparison was
> intended. Furthermore, *avgpool_params is const, so that the attempted
> assignment leads to a compilation failure if asserts are enabled (i.e. if DEBUG is
> defined which leads libavutil/internal.h to not define NDEBUG). Moreover, the
> enumeration constant VALID actually has the value 0, so that the assert would
> be triggered if a compiler compiles this with asserts enabled. Finally, the
> statement uses assert() directly instead of av_assert*().
> 
> All these errors have been fixed.
> 
> Thanks to ubitux for providing a FATE-box [1] where DEBUG is defined.
> 
> [1]: http://fate.ffmpeg.org/history.cgi?slot=x86_64-archlinux-gcc-ddebug
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> I was unsure which assert level to use and therefore simply opted for 0.
> 
>  libavfilter/dnn/dnn_backend_native_layer_avgpool.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavfilter/dnn/dnn_backend_native_layer_avgpool.c
> b/libavfilter/dnn/dnn_backend_native_layer_avgpool.c
> index d745c35b4a..8d4d8db98c 100644
> --- a/libavfilter/dnn/dnn_backend_native_layer_avgpool.c
> +++ b/libavfilter/dnn/dnn_backend_native_layer_avgpool.c
> @@ -91,7 +91,7 @@ int dnn_execute_layer_avg_pool(DnnOperand *operands,
> const int32_t *input_operan
>          output_height = ceil(height / (kernel_strides * 1.0));
>          output_width = ceil(width / (kernel_strides * 1.0));
>      } else {
> -        assert(avgpool_params->padding_method = VALID);
> +        av_assert0(avgpool_params->padding_method == VALID);
>          height_end = height - avgpool_params->kernel_size + 1;
>          width_end = width - avgpool_params->kernel_size + 1;
>          height_radius = 0;

thanks for the patch, will push now.


More information about the ffmpeg-devel mailing list