From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 41AD04F0E6 for ; Sun, 15 Jun 2025 16:57:44 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id B9F2068D74B; Sun, 15 Jun 2025 19:56:13 +0300 (EEST) Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 2BE8D68D73B for ; Sun, 15 Jun 2025 19:56:07 +0300 (EEST) Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-b2f0faeb994so4156271a12.0 for ; Sun, 15 Jun 2025 09:56:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750006565; x=1750611365; darn=ffmpeg.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:from:to:cc:subject:date :message-id:reply-to; bh=ziV5ES+6vCjongPv8Are52P8zrRWgnvOLy4nWqTS7gk=; b=CTakoh3FRIUk2rT1q3HTrGEHEC/GLmm1frRpr+Xk4Ciyn9ralkdZIrOTpelfui0hH/ 1/zHkZhSKhPdqN0/qhFUbDZsm0YBRs3yuRNmIHbXdsLsdYUgsQG4o2sGjUYs9coqk48m Rm06auZIPMn0xXBBSIGriuINCerua4ZPWf8D3dkKyTer8o/hgOdBuvb2Z13NQ/H3cr3d uZsPMDLcB6MJm4ASzcaZsaPmqInXt3gJIFvHKyL7oBblMGNebQWxZxe/yPmaxr6qjdT8 tt51zhKe0L90Jhuk4aVDseRHQSRX33TmD5eCz8sCIkhXAVZbcmgtytHzpM7S4WF+jc6P jUXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750006565; x=1750611365; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ziV5ES+6vCjongPv8Are52P8zrRWgnvOLy4nWqTS7gk=; b=TzXakAvZdg9JV54JHx203p2BUeCLg5ggwCyxUm04RN2c+6QXbwWWaT0oKMRlSmN0sB iElQE4EwqUyjMef+ul4sgdQo9vw8cGx2GSXQTtJEVmIRKmSSzZoKBUOju+3oZJaskJPe 12JicYW5nOktDs7Cxdgd4uIRSpgclX30zqoo4GLmjEYTU9x9sy8jwYeZex2Mf4+jwVf9 LwpJ6482WwPjx+5K23aVT7h/9cTJgqRWAIxrnofWt8UZPMX5/qkWT+LHDX6p1FXJz2BC WhvbIhq6/aSk5I6TvKSYVsEWSN3Iuxb8mixvJOs4C50Q4p9dBWiA673uiIcaGWfjbdxg oDSA== X-Gm-Message-State: AOJu0YzVK3dY3D5LMcdqJqvP4mSb+DtHK/k2YL91j699ACvRziQ7lOGN o3wpX3QVcg1GvnzFrT6UUTMsAAvp7LbEaMf7BSI6n2j7YmW/PwyhQZ37SW1vkA== X-Gm-Gg: ASbGncv+yB0UDA3/An6gvTpvkAjABvBdZx9KinsMiK/0t8S//OaFqM+V7a/tcXPqlQE aEqDK4F9TtXFtqM1jgdHvIj7r+EacF3kfllTA1Q25WofmNhr9UOMUG9MF7UPbQhfUgDe2AVxZoe RO8pvOzo7EydmiTzUI4P9GsrgqQxehaw70E52UEk1b+ALRyogTzhU+dqCExfLlCJdQZlhBv00xS zwuG61M0AGH+/MzIEkst92utN0YiuQ80eKe7gi0ixqCmIJjITC3Lmmy3CrZxVuA8iv1gbUWtkt4 xDBTjp0QGSt6/LIIfndIXzx6411f7IrtDvKILQp6YuCWfuTpB4fUHbc0vVKGi4lBvTbBo7y4KQL 6BzVRMK0/XRvmkOYD/Je6d/I8qBI= X-Google-Smtp-Source: AGHT+IGa+eoxphpTl0hdG071miD1Hv8mZVFx9buae89GN9xCDlVKGkxD9j7UVesXNixb+sjocrgTTw== X-Received: by 2002:a17:90a:ec86:b0:313:5d2f:5505 with SMTP id 98e67ed59e1d1-313f1db80b0mr12160058a91.16.1750006565461; Sun, 15 Jun 2025 09:56:05 -0700 (PDT) Received: from [127.0.0.1] (master.gitmailbox.com. [34.83.118.50]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2365d8a5619sm46008815ad.73.2025.06.15.09.56.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 15 Jun 2025 09:56:05 -0700 (PDT) From: Andreas Rheinhardt X-Google-Original-From: Andreas Rheinhardt Message-Id: <8d04bfcfbe3ef25ef9500183a10288f7834f5d1f.1750006479.git.ffmpegagent@gmail.com> In-Reply-To: References: Date: Sun, 15 Jun 2025 16:54:05 +0000 Fcc: Sent MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 14/47] avcodec/svq1enc: Allocate motion_val{8, 16} during init 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 Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Andreas Rheinhardt It only depends upon the dimensions (which do not change). Signed-off-by: Andreas Rheinhardt --- libavcodec/svq1enc.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index dae931fb10..948a7c41eb 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -350,17 +350,6 @@ static int svq1_encode_plane(SVQ1EncContext *s, int plane, FF_LAMBDA_SCALE / 2 >> FF_LAMBDA_SHIFT; - if (!s->motion_val8[plane]) { - s->motion_val8[plane] = av_mallocz((s2->b8_stride * - block_height * 2 + 2) * - 2 * sizeof(int16_t)); - s->motion_val16[plane] = av_mallocz((s2->mb_stride * - (block_height + 2) + 1) * - 2 * sizeof(int16_t)); - if (!s->motion_val8[plane] || !s->motion_val16[plane]) - return AVERROR(ENOMEM); - } - s->m.mb_type = s->mb_type; // dummies, to avoid segfaults @@ -620,6 +609,19 @@ static av_cold int svq1_encode_init(AVCodecContext *avctx) if (ret < 0) return ret; + for (size_t plane = 0; plane < FF_ARRAY_ELEMS(s->motion_val16); ++plane) { + const int shift = plane ? 2 : 0; + unsigned block_height = ((s->frame_height >> shift) + 15U) / 16; + unsigned block_width = ((s->frame_width >> shift) + 15U) / 16; + + s->motion_val8[plane] = av_calloc((2 * block_width + 1) * block_height * 2 + 2, + 2 * sizeof(int16_t)); + s->motion_val16[plane] = av_calloc((block_width + 1) * (block_height + 2) + 1, + 2 * sizeof(int16_t)); + if (!s->motion_val8[plane] || !s->motion_val16[plane]) + return AVERROR(ENOMEM); + } + s->m.c.picture_structure = PICT_FRAME; s->m.me.temp = s->m.me.scratchpad = av_mallocz((avctx->width + 64) * @@ -675,14 +677,8 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt, pict->linesize[i], s->current_picture->linesize[i]); emms_c(); - if (ret < 0) { - int j; - for (j = 0; j < i; j++) { - av_freep(&s->motion_val8[j]); - av_freep(&s->motion_val16[j]); - } - return -1; - } + if (ret < 0) + return ret; } // align_put_bits(&pb); -- ffmpeg-codebot _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".