On 9/2/19, Steven Liu <l...@chinaffmpeg.org> wrote: > when the area outside of the frame, then use expr should > give user warning message and auto set to the area inside of the frame. > > Signed-off-by: Steven Liu <l...@chinaffmpeg.org> > --- > libavfilter/vf_delogo.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c > index 814575a36c..5521a29214 100644 > --- a/libavfilter/vf_delogo.c > +++ b/libavfilter/vf_delogo.c > @@ -327,6 +327,20 @@ static int filter_frame(AVFilterLink *inlink, AVFrame > *in) > s->w = av_expr_eval(s->w_pexpr, s->var_values, s); > s->h = av_expr_eval(s->h_pexpr, s->var_values, s); > > + if (s->x + (s->band - 1) < 0 || s->x + s->w - (s->band*2 - 2) > > inlink->w || > + s->y + (s->band - 1) < 0 || s->y + s->h - (s->band*2 - 2) > > inlink->h) { > + av_log(s, AV_LOG_WARNING, "Logo area is outside of the frame," > + "auto set the area inside of the frame\n"); > + } > + if (s->x + (s->band - 1) < 0) > + s->x = s->band; > + if (s->y + (s->band - 1) < 0) > + s->y = s->band; > + if (s->x + s->w - (s->band*2 - 2) > inlink->w) > + s->x = inlink->w - s->w + (s->band*2 - 2); > + if (s->y + s->h - (s->band*2 - 2) > inlink->h) > + s->y = inlink->h - s->h + (s->band*2 - 2); > +
What about s->h and s->w being too big? > ret = config_input(inlink); > if (ret < 0) { > av_frame_free(&in); > -- > 2.15.1 > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".