On date Tuesday 2023-12-26 16:21:55 -0300, James Almer wrote:
> On 12/26/2023 1:20 PM, Stefano Sabatini wrote:
> > +static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
> > +{
> > +    AVFilterContext *ctx = inlink->dst;
> > +    AVFilterLink *outlink = ctx->outputs[0];
> > +    QuircContext *quirc = ctx->priv;
> > +    int codes_count;
> > +    int i, w, h;
> > +    uint8_t *image, *imagep, *srcp;
> > +
> > +    image = quirc_begin(quirc->quirc, &w, &h);
> 

> Can't this fail?

> Or does the allocation take place in the quirc_resize()
> call?

correct

> > +
> > +    /* copy input image to quirc buffer */
> > +    imagep = image;
> > +    srcp = frame->data[0];
> > +    for (i = 0; i < inlink->h; i++) {
> > +        memcpy(imagep, srcp, w);
> 

> Can w differ from inlink->w?

No, given that the resize is done in config_inputs.


> > +        imagep += w;
> > +        srcp += frame->linesize[0];
> > +    }
> 
> Maybe instead do
> 

> av_image_copy_plane(image, w, frame->data[0], frame->linesize[0],
>                     w, inlink->h);

good catch, thanks for the feedback
_______________________________________________
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".

Reply via email to