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?

+
+    /* 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?

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

Maybe instead do

av_image_copy_plane(image, w, frame->data[0], frame->linesize[0],
                    w, inlink->h);
_______________________________________________
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