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; From patchwork Tue Aug 23 23:34:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 37423 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp2184597pzh; Tue, 23 Aug 2022 16:34:57 -0700 (PDT) X-Google-Smtp-Source: AA6agR4cRPF/w9bNoN8RxnzAZU2StZJAPFVdLlTzRWMnkPilX/2igvkqti1UHW0h65DLf4a/zi47 X-Received: by 2002:aa7:d4cb:0:b0:446:9afd:6f31 with SMTP id t11-20020aa7d4cb000000b004469afd6f31mr5366324edr.78.1661297696893; Tue, 23 Aug 2022 16:34:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661297696; cv=none; d=google.com; s=arc-20160816; b=O+dFPeEh2m6KEEmREfe/3prdc1Mp2ORTeKFXcyCFxo3HmFsl5tDf2JKZGsMXWyxayX 6nTHisN/K12yA0SdgzbO0fO7c12i1kyxCLOcuh0ORZYY/OWLkj6y6oQQmkCO7vbkLt4u PK5Iee40NdbsU6/Uq8rJvwvEG8lmvNo5VdrUNy4lii3nejjSGEG+Wk4KHj2ElYvS//ZR 3cSXw6Wc/c8xnQiLcnK5D105VBblhgBUZFO4GAOhVYLGYnr2Ak+qANjNw2LxFyt/HoGt iHf1XpFjZ80qALAgweXFXGgXerc+6eyZLHoKHt5J8OO5hZ0N98sTyJQVfduodqxGlGri qM6g== 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:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=FpsmxeXPZz5v2/fwUrzF7UpAi+lfeSFaTUYa/3X5t3U=; b=mrR/9kDhLRlal6Olrqdid95hGCQRW7Qx/ZexpZMHijjncARF1lW+13oaemoqAuDmo0 qkfK436AYqZZ3j10naxaFzxrFBXyXxasV79amhuPvcRkV0qoc5F9dk0EsVTmOiLscLC/ rqG0/h7oIKH77SEB7LoVGrkWmN2MTLOANH55f712k43ltacFNWJvolfvtwrmPHNKGQ4Q Pf9d13HDFjrNbbkOyGMn2V+S7mVxVl6udi1wXKY7r8buQzptuoYcgE99Rb7fmxHnbygU h427vYvg5xTnqlz/rsyyq2yH5nBESpeGnC1VfnqZlhJAnIHfMjspgIHI88CHSixjUaSE 3bQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fwvy3x1+; 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 hv18-20020a17090760d200b00730936657d1si781018ejc.552.2022.08.23.16.34.56; Tue, 23 Aug 2022 16:34:56 -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=fwvy3x1+; 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 3C81C68B9DF; Wed, 24 Aug 2022 02:34:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vk1-f182.google.com (mail-vk1-f182.google.com [209.85.221.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5C77168B7E6 for ; Wed, 24 Aug 2022 02:34:37 +0300 (EEST) Received: by mail-vk1-f182.google.com with SMTP id q14so7849767vke.9 for ; Tue, 23 Aug 2022 16:34:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc; bh=So0w6baGK5+3fN+O3VxYkwc0SZR8e7KWreIO076qhiY=; b=fwvy3x1+q9r6NxuHd38Np6ZLo1sWHPOtbDdLpv3c1bDVOpT/5BxDon3bzOy8QeX6vM zSKoU5Cr1JF1xK+8gZgmmiARyB1bqozH9CLtldK0UNgTbK9pJ5k+2pWEYnFF1K4h9Dm3 nRt8vvYoqVuoze+LFfvrsbQ0Re9o4BPPoOIijy3Lc3v5lQeMacSEDj+7Y0twOJnQ/jXY iUY7ZES1Mb9x9gN/+zCg9l0skFJFVX91q/U+IK8RHFlekmJ/7I/gQLwD48ZDoNkiHTlY uNeyD15KGJf7NP9Cwz24UfSrz9PWml72ladnADqTs6l8j2shp/HynAmEAlHL5ecrjn7G dv+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc; bh=So0w6baGK5+3fN+O3VxYkwc0SZR8e7KWreIO076qhiY=; b=AROH4GrEGC/GyMZENqdgIpnxtPraRPORFE4ojHObZgZvG50NWh1WvIY91+9OXW7Vns EHQDhuXOSD4O7m9I4NQH1skzx2IkX5OccNaLQ02y1eWfMjA8v7QGTBcRnCbSA8OxpiVF KZ6Wm8WX4FUhU6lVEmBC4IjsHDQXgbum7GOPf0pqZF7MjlHQeSJCpVUt7wgL2NyCh/vb 8U7uRO5gkvtuYXmoqzqISeBZPdodv5egAJqdGfMbBbH9nj4TW6upeHWJH50ZJtB4U5Wb YFXa8omRKoIgBDcgOXEbvMxmS0JGHkIJvstYYgtjLK54E7GBlQaxschbDIO/XjtvtUMP Ifqw== X-Gm-Message-State: ACgBeo33aH1JOQfs1b8D4K9MdRdlZbU/QKBgAJ3eS9vYLgbT8JaqTdZf KKIbkBb+O2FqV5huGUPaNkBmI1k2IRE= X-Received: by 2002:a1f:2ecd:0:b0:376:1d2f:9119 with SMTP id u196-20020a1f2ecd000000b003761d2f9119mr10671089vku.40.1661297675503; Tue, 23 Aug 2022 16:34:35 -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.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Aug 2022 16:34:35 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 23 Aug 2022 20:34:18 -0300 Message-Id: <20220823233418.2367-2-jamrial@gmail.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220823233418.2367-1-jamrial@gmail.com> References: <20220823233418.2367-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/libaomenc: 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: HlC1TYNWpuMb Signed-off-by: James Almer --- libavcodec/libaomenc.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index 1fd69d59a7..485f554165 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -70,6 +70,7 @@ typedef struct AOMEncoderContext { struct aom_codec_ctx encoder; struct aom_image rawimg; struct aom_fixed_buf twopass_stats; + unsigned twopass_stats_size; struct FrameListData *coded_frame_list; int cpu_used; int auto_alt_ref; @@ -1200,14 +1201,17 @@ static int queue_frames(AVCodecContext *avctx, AVPacket *pkt_out) case AOM_CODEC_STATS_PKT: { struct aom_fixed_buf *stats = &ctx->twopass_stats; - int err; - if ((err = av_reallocp(&stats->buf, - stats->sz + - pkt->data.twopass_stats.sz)) < 0) { + uint8_t *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;