From patchwork Sat May 20 02:40:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 41737 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:ba91:b0:105:feb:71f2 with SMTP id fb17csp248732pzb; Fri, 19 May 2023 19:40:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4lNF5eVNu0ZYqVV12M/5ZqL7MliLZE5k9jsCyY35NHwbIxtZ/BHkGL43qc3elcAXFNi6P8 X-Received: by 2002:a17:907:36ce:b0:965:6cb9:b768 with SMTP id bj14-20020a17090736ce00b009656cb9b768mr3621958ejc.31.1684550417775; Fri, 19 May 2023 19:40:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684550417; cv=none; d=google.com; s=arc-20160816; b=LG37iOAAyW9dfrOrWNVI0keluLiFNuxZhBoeQG95sGqDZMgX4H/kguwLxXVpTx8dur mmrzacZy5j+0PTEhKhvMxFlbdoz26XSpRqWkdhvnu9gA7Zh96O53vFPLB9j6QIXjE7jb xHy5e1I7XICBc/2WObqln2TF/FguWOMcmE0VldWRbQZW+E62LmEMF9IbyJGV9RSDJZTF MXq0v5euPRnbjRDWOhuP7Amj1RAwV5jKK+SOx/4Zr0rSGR9Xp+kTbXQPQWSbBbtYQsbo lNAENtetm9ayMNOTCcV43KtXli25mhVCt2KzCgPaFrmDPkKyD2i9AFjfkVFd/mPowH6Y 8IXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=Gr6TN3N9qG6GyhesL8nmhN2OfJv1XOHYvxdh0Eia4Fc=; b=0ng0mkL+h9PHA4fYheCYJJGiuuMuNuuFFTSj/3uouWdp2/OvjmfmyOZNT1hnrBBDNI Cu9noLSWX+Bf2blYKgayMtfv/yxk+z9cQWFhwQyZxEqJfZpyhCo97upu0i6MAN5EcWpH w6cwMRYj/5g+jIjWSHv2J7RSbDWYCzOvf2TObV1Tflukx8hjK1ueommVm711SvCWKFjd ZVmXmzoz/X+H+ILR/mrwnYZ1xDN0NVsb5HpHJlcR8i93wFbXhWi1DLkja+mRCsOzYEsK 08VUDzj6BziopelTyYJsWU2XXXeGmpDB72NMAWv0bvb0QwmYocBLsqrWRNeZFD0IGKUP Ad0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=FctF0sq2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id us5-20020a170906bfc500b009656138ee6bsi439524ejb.273.2023.05.19.19.40.17; Fri, 19 May 2023 19:40:17 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=FctF0sq2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A933768C17A; Sat, 20 May 2023 05:40:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f44.google.com (mail-oo1-f44.google.com [209.85.161.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5B79468C030 for ; Sat, 20 May 2023 05:40:07 +0300 (EEST) Received: by mail-oo1-f44.google.com with SMTP id 006d021491bc7-5527456ede6so1836782eaf.3 for ; Fri, 19 May 2023 19:40:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684550405; x=1687142405; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Qco/1+xvtUMwM9HltH/zrh9FrP0IiTeUn/HOqSgHAk0=; b=FctF0sq26XmwHrSDBqWMdqIHXosgicE960skuwsX6SWjM4Fj/27wU55lwaEld8IjZq 5YqShM/Hfv6taT13EuqztodPWaolaeqsjpB8eaiA4QeVLInXRfv70vCuPRTL8+B7QYKU Kous6MsHzUTWNs8UhXupIjYHxzbCzvISyQiui9ykejWak5F/YmS9+s32jq63LkheHvP/ gBqhrLhlXKtrJDet0azT4UIdBXvrmadCokRjyytVcU4SymtupXDYzY7uNnjztMAKgS/B Jp6xqYzOXFfuHbHCRvzDawudSgzXzrJA8S957u/ibTFyF+Nzbdct5IVaIr5jZL58bRI3 x7og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684550405; x=1687142405; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Qco/1+xvtUMwM9HltH/zrh9FrP0IiTeUn/HOqSgHAk0=; b=YeHE3AA6aAaBbvSr3LW6YUqH9s615HEBNTlvSLEsoRlhI855ngubIlgYxeOyp2dXqI DiOtvyWKEwr8VujG9ir4x6NItfwvMRHOUZ81XkeopEHelG99Jj1l0aE3PakTIl+0iliw 6BDTkjySwKc/qIzJKKM+uajkulWol3IJ0EeM8GzcMAhQABjt5HS5fjQ1XPfXxAYulHb1 z+EfRLGxi6bIznUlIUAhFMPtoUB4+ZtMLa2f14oO73le8JtPYFJ95Dwy935RtT2Nj71P Te0OIn/stkXjU+Kg5VCuf67vKrejdiXTYMM9ZQ5RC51Af9uSw0gKpouDFZCTOchR4BTX gu0Q== X-Gm-Message-State: AC+VfDx5oaip9+jVf2G2cdx2tcqBpZGOP9TZQqHPR0WDcxWexfnC2iez h262v8nC9h9s5xITQD/PgA3N0j5gqFo= X-Received: by 2002:a4a:2a56:0:b0:550:ab9f:ae6c with SMTP id x22-20020a4a2a56000000b00550ab9fae6cmr1748683oox.7.1684550404971; Fri, 19 May 2023 19:40:04 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id i81-20020acaea54000000b0039466dd53fasm223691oih.19.2023.05.19.19.40.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 May 2023 19:40:04 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 19 May 2023 23:40:05 -0300 Message-Id: <20230520024005.4743-1-jamrial@gmail.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avfilter/src_movie: stop using AVPacket on stack X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: YVVYKeRvFQGd Signed-off-by: James Almer --- libavfilter/src_movie.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index 5937613d13..b55c2bcb6e 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -72,6 +72,7 @@ typedef struct MovieContext { int dec_threads; AVFormatContext *format_ctx; + AVPacket *pkt; int max_stream_index; /**< max stream # actually used for output */ MovieStream *st; /**< array of all streams, one per output */ @@ -279,6 +280,10 @@ static av_cold int movie_common_init(AVFilterContext *ctx) for (i = 0; i < movie->format_ctx->nb_streams; i++) movie->format_ctx->streams[i]->discard = AVDISCARD_ALL; + movie->pkt = av_packet_alloc(); + if (!movie->pkt) + return AVERROR(ENOMEM); + movie->st = av_calloc(nb_streams, sizeof(*movie->st)); if (!movie->st) return AVERROR(ENOMEM); @@ -348,6 +353,7 @@ static av_cold void movie_uninit(AVFilterContext *ctx) av_freep(&movie->out_index); if (movie->format_ctx) avformat_close_input(&movie->format_ctx); + av_packet_free(&movie->pkt); } static int movie_query_formats(AVFilterContext *ctx) @@ -459,11 +465,11 @@ static int rewind_file(AVFilterContext *ctx) static int movie_decode_packet(AVFilterContext *ctx) { MovieContext *movie = ctx->priv; - AVPacket pkt = { 0 }; + AVPacket *pkt = movie->pkt; int pkt_out_id, ret; /* read a new packet from input stream */ - ret = av_read_frame(movie->format_ctx, &pkt); + ret = av_read_frame(movie->format_ctx, pkt); if (ret == AVERROR_EOF) { /* EOF -> set all decoders for flushing */ for (int i = 0; i < ctx->nb_outputs; i++) { @@ -477,11 +483,11 @@ static int movie_decode_packet(AVFilterContext *ctx) return ret; /* send the packet to its decoder, if any */ - pkt_out_id = pkt.stream_index > movie->max_stream_index ? -1 : - movie->out_index[pkt.stream_index]; + pkt_out_id = pkt->stream_index > movie->max_stream_index ? -1 : + movie->out_index[pkt->stream_index]; if (pkt_out_id >= 0) - ret = avcodec_send_packet(movie->st[pkt_out_id].codec_ctx, &pkt); - av_packet_unref(&pkt); + ret = avcodec_send_packet(movie->st[pkt_out_id].codec_ctx, pkt); + av_packet_unref(pkt); return ret; }