[FFmpeg-devel] [PATCH] avfilter/vf_dnn_classify: add result check for av_frame_get_side_data

Guo, Yejun yejun.guo at intel.com
Fri May 7 11:11:13 EEST 2021



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Steven Liu
> Sent: 2021年5月7日 14:43
> To: ffmpeg-devel at ffmpeg.org
> Cc: Steven Liu <liuqi05 at kuaishou.com>
> Subject: [FFmpeg-devel] [PATCH] avfilter/vf_dnn_classify: add result check for
> av_frame_get_side_data
> 
> CID: 1482090

thanks for the patch, what does CID mean?

> there can return null from av_frame_get_side_data, and will use sd->data
> after av_frame_get_side_data, so should check null return value.
> 
> Signed-off-by: Steven Liu <liuqi05 at kuaishou.com>
> ---
>  libavfilter/vf_dnn_classify.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/libavfilter/vf_dnn_classify.c b/libavfilter/vf_dnn_classify.c
> index 18fcd452d0..7900255cfe 100644
> --- a/libavfilter/vf_dnn_classify.c
> +++ b/libavfilter/vf_dnn_classify.c
> @@ -77,6 +77,10 @@ static int dnn_classify_post_proc(AVFrame *frame,
> DNNData *output, uint32_t bbox
>      }
> 
>      sd = av_frame_get_side_data(frame,
> AV_FRAME_DATA_DETECTION_BBOXES);
> +    if (!sd) {
> +        av_log(filter_ctx, AV_LOG_ERROR, "Cannot get side data in
> dnn_classify_post_proc\n");
> +        return -1;
> +    }

The check happens in the backend,
see https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/dnn/dnn_backend_openvino.c#L536, 
this function will not be invoked if sd is NULL.

anyway, I think it's nice to have another check here.



More information about the ffmpeg-devel mailing list