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

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Fri Aug 21 17:21:13 EEST 2020


Guo, Yejun:
> 
> 
>> -----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.

I actually push my patches myself. Too late now.

- Andreas


More information about the ffmpeg-devel mailing list