From patchwork Tue Aug 23 23:34:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 37422 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp2184547pzh; Tue, 23 Aug 2022 16:34:49 -0700 (PDT) X-Google-Smtp-Source: AA6agR5eAUt7RIhi1Xi2YS67vfk5uNnz2VEaGvltg7Kj9mOGQry+KXptDZmG6xwpTygwGBnBov0e X-Received: by 2002:a05:6402:3546:b0:43e:466c:d4ed with SMTP id f6-20020a056402354600b0043e466cd4edmr5523739edd.48.1661297689467; Tue, 23 Aug 2022 16:34:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661297689; cv=none; d=google.com; s=arc-20160816; b=BgCmqbIISQNNwag+iJ5bDRu4pwdQYpl9UF7zgq1m2Svo7BJxy859uuXHG5iof2ZBnT UjqMomgNFbySV9Fvzw7S5pEJ6y9MjfQd+329SQPY5503ZuQacTdcNG8Y7t0YPIXbOhXO QDR/5kNJFTAnWNpmKRH75DZ+MmslkJiN2OCrrgBeBgBeIMNCwRa3tWQCZz6POYniew/L 33V4nd+xjID/YyLaDpzquKV4SzKKe1N3SJqPdsyZfIaWwZEVNvnflsfIRcWvssqhkcCm x4LCIATdjmYAMI0plsiOz6me0Lty1Ya2TRjs3yeyv4EPemx8FNnc+b1Sr9hgU4wpt8ew xxaw== 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=VK2EewNcBiQIIp5WSo30zG5ghFgClY6T+YnS/HmHiTY=; b=urLVqjNZlCRRantJ7tkvXJVJ5BJ0SC/09+hvw/pazmDSxvbvofiklWVosnlmfSWhB7 kyKFNvxEwL3nQjXeGVFw/kH1uxesWDsy2+d0tTHXziz4PgU3wkYvwdcle9AhbG9bJag8 /jmZobp9jCix4FQDIXsKlz5ChExArRN68gR3Y0LB/EqnsgxINTUAmf0SQ7jVPU0iF5Wg 1ls8lJSl0XQYt3mU3CJNZl10Pvc+okL4XZVFE+D69XYR4hm+W9SIbEoHgJNJwCioD/An sYmKJOQsdc3LhY2z4OMPs3qsHLQREqsFcyKin+C/iKrPKd834IVsstAXpkhVz76E/MtF q/Ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HLDvSQv1; 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 dm22-20020a170907949600b0072f2ce19e49si866212ejc.10.2022.08.23.16.34.46; Tue, 23 Aug 2022 16:34:49 -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=20210112 header.b=HLDvSQv1; 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 4EEFB68ABEF; Wed, 24 Aug 2022 02:34:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vs1-f52.google.com (mail-vs1-f52.google.com [209.85.217.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1231F68ABEF for ; Wed, 24 Aug 2022 02:34:36 +0300 (EEST) Received: by mail-vs1-f52.google.com with SMTP id p6so15606080vsr.9 for ; Tue, 23 Aug 2022 16:34:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc; bh=01BfsgOJYOXfeEcRewQ2AoXZ/H8nTxutghdK4oCytgI=; b=HLDvSQv13dZ44Ylk+nJB50TXOEBQs/LANIT/1J7bZI6V6xl7eRv27OUfAm15BTrL3Y 0NkvpixN5WQleXRGst4dnqd9tSCSTeBvQ4GsiaFmYKL9RiQWbLNrCdi858nwgA2/GtSk MVz5Vxtc57gh/HV+P7Yx85XGOmiOlCnbUKPfc33hzAVt5sI7cS24xBNPPLoT3eP6BLzs E5oGxvDV3S9Ffv+O3YVSRXQ+fIeV1ySGLoJkcved6K1rDNEB4pPPbWjfAAT2xD3lcS3d 2458FAsmBCSXY9Qj7oCl8bkQVK1Usj80wM8Cu0B5ZXmeAPFR/0APOzeav18hFRkUc4mJ 5q/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc; bh=01BfsgOJYOXfeEcRewQ2AoXZ/H8nTxutghdK4oCytgI=; b=r1VlDGle9pDj6Ntq0pke70sPF095yoy0gZaiF3svck73VHWaN9cyl4HWCLe9FM+kRh x14A4EtLik+wi7b0Mk+2uHrXya11bUgQn+V51dimeIKM8mSIQMI1Ne7hQVeQ3dBFSokD uMAyth69ygeS0QKt7MuPdRfbdRS4HRVi+o2Su4dBbyFSYzDBeSQL2MUlEkXe29B6UmeZ iuJZlgRwoFzy63R1c3a43YXtmOkQVe8FIPScx7C9NdCeKswJqWatj2pTqNvT1YoaYJUt FJ6j/IFzzLSvFu2o1TzmPpdivuqEYtlVgSi/0U5rqC9dOSCWVBweiV46wEdJkqoXuR6q olWg== X-Gm-Message-State: ACgBeo0knNrIsISYbJj7XH+app2up2CuuBvFwF4Rp01wm2l3P4Zkzt5V 9P+cR0cG0bJIb82YVgDlZFnCeA+OdN0= X-Received: by 2002:a05:6102:e8d:b0:38d:a4f2:41a5 with SMTP id l13-20020a0561020e8d00b0038da4f241a5mr10826983vst.5.1661297674044; Tue, 23 Aug 2022 16:34:34 -0700 (PDT) Received: from localhost.localdomain ([191.97.187.183]) by smtp.gmail.com with ESMTPSA id f41-20020a056102152900b003908d2ec4c5sm977140vsv.34.2022.08.23.16.34.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Aug 2022 16:34:33 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 23 Aug 2022 20:34:17 -0300 Message-Id: <20220823233418.2367-1-jamrial@gmail.com> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/libvpxenc: use av_fast_realloc() to resize the stats buffer 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: eAer0+GLPzWG Signed-off-by: James Almer --- libavcodec/libvpxenc.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index e08df5fb96..bbbe56c0dc 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -80,6 +80,7 @@ typedef struct VPxEncoderContext { struct vpx_image rawimg_alpha; uint8_t is_alpha; struct vpx_fixed_buf twopass_stats; + unsigned twopass_stats_size; int deadline; //i.e., RT/GOOD/BEST uint64_t sse[4]; int have_sse; /**< true if we have pending sse[] */ @@ -1356,16 +1357,20 @@ static int queue_frames(AVCodecContext *avctx, struct vpx_codec_ctx *encoder, break; case VPX_CODEC_STATS_PKT: { struct vpx_fixed_buf *stats = &ctx->twopass_stats; - int err; + uint8_t *tmp; if (!pkt_out) break; - if ((err = av_reallocp(&stats->buf, - stats->sz + - pkt->data.twopass_stats.sz)) < 0) { + tmp = av_fast_realloc(stats->buf, + &ctx->twopass_stats_size, + stats->sz + + pkt->data.twopass_stats.sz); + if (!tmp) { + av_freep(&stats->buf); stats->sz = 0; av_log(avctx, AV_LOG_ERROR, "Stat buffer realloc failed\n"); - return err; + return AVERROR(ENOMEM); } + stats->buf = tmp; memcpy((uint8_t*)stats->buf + stats->sz, pkt->data.twopass_stats.buf, pkt->data.twopass_stats.sz); stats->sz += pkt->data.twopass_stats.sz;