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 1AB7740280 for ; Tue, 30 Sep 2025 17:04:53 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'8wjjWAoM+SvRRjA0D6ldgJMj4JTdwNND5j2d2KnfKWA=', expected b'FbKi9b5C9eB/8T3D5FNdGyugqG914tqEB/8dFifL7b4=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1759251884; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=8wjjWAoM+SvRRjA0D6ldgJMj4JTdwNND5j2d2KnfKWA=; b=OcikO5NZIA+UGmyPzcg4CQiEDb0EXsjbCj2sK4qCbw/o/Y6crgQUj/IVs+ZSsLsgJ815u FDAFO7P5qdtS5wlhRQaDEODWMyL47fj1yZ9al3OoMC5czfFV4bGHHdZkJxzWdILFIvMDn9E LZLDoPAqPrLzOWhShvkiinD/VdpeQdVNcnDwmmZfpbmUxwVhCAvlskX4K90YJgQKYHvYe0H iDjZtBlJVrLyTV0cGsL80C4CE0cxb4ngJMnxiiYkdJrVsaOnDmK34LAjgGqKFtc+mHsMdsj jeJ4o00SJ503tRq4b1Bg/4j/PYWuVH11mY+w1Ml24jtfNz6DJnqJzQS9wzpQ== Received: from [172.19.0.2] (unknown [172.19.0.2]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id A4C7568EE99; Tue, 30 Sep 2025 20:04:44 +0300 (EEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1759251871; b=lMHK7qaOE2Wauk0i7z+Bl51NyhZ7Xr+w2ioFQ5WQyWR+RgLAPSEngJCvmDxLMZpDChF53 Skumemnv9c8JRq0zdk8TUxfjGNWV2hFS6syAEtS9YfkwL+q2e7ySYQP3vQNiTedm0yPUpFP TjU0hIKjbNTik+j8VhKZSugQqRayUgevIltlGYadtYIGFbpZQ//22hDhUOeHTIVrNGw4CQW Ho30P7UGpFxMLdSw7iHlDLcMPO9GlsjTsU3QnOZtZ4QJyCf6vXfGFhjRXh18hPjHHsy9vlE bHZHIPHGvAP/vRzlI95st9UzB6/2ipldeF7QXsCSETP1rYI/MLo3dM7ZBt3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1759251871; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=wYHeewj0wn14HQxNi43pO2XJUfWhajYRZ8mhOjGUhAM=; b=KE/qGR9VZNMKEh40lrPJJaYw7UIUaV02FxC4E0lvvwKhboCexhlClNiPeHsL4/ZwjZiD9 rc6+k77Xu2z7HmJ9Sz/LDtEKOlURkSPg0Csn7CbRNCZiJ71U6eZcLkLlo5m+ZTwcvkhxU6X yssX2uEsKQv7N6WICg9XNWQ8y1feIizmLOVKWGIbSwrnmTQ8IMz2f6pUOD+lDIRYNbc/TXS SKnD01CeQTg+hjCb8v8jxhzcT5LC6Ier706MBrWiblqUZ7jOAd0qM/Npofy+YTTnLqpV266 XU+xPo8ULde9/4xZvUC2j6OepY7QoNHXxJYGF9l94hhpkwPKoc2lsw4E+B/A== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1759251863; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=FbKi9b5C9eB/8T3D5FNdGyugqG914tqEB/8dFifL7b4=; b=xYaXhdwUyvS08MrkUy2SgevQhz3R/A2x8dqt4ARIJ9h9DZqJ8TRIRgPFRevL7UPiaH/sB Hdax986/eJwnEeXY4e84HvnDDf1UnVeQGXpgNwTPZl9xLg7aW9d3PEmpERElBcYB5jzanp7 ET3CevGQGkkwcBaXAI/c+VHknApBnPzzJrYcGMfAy4P2t3H3qTQAioCbEJDW7qlLHEcGt0x lwZnmCQ0uIhOfI7d1zJzROFpkeuZz/vJHsyMkJoX3TdeHoUVg8ImhcwbnDguIGoZQXaTOUE eroC308akrFKE4ixChzMqKb3LI4jBrGN22VC51bESmsEip/yW+ZWpRZuqULg== Received: from 13289e625de8 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id A603668EE08 for ; Tue, 30 Sep 2025 20:04:23 +0300 (EEST) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Tue, 30 Sep 2025 17:04:23 -0000 Message-ID: <175925186383.69.5409419678900483020@bf249f23a2c8> Message-ID-Hash: IY7W3LUPQSNXGH5FM7MRS7HXK2ORYIDY X-Message-ID-Hash: IY7W3LUPQSNXGH5FM7MRS7HXK2ORYIDY X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avcodec/liblc3enc: Avoid allocating buffer to send a zero frame (PR #20633) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: mkver via ffmpeg-devel Cc: mkver Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #20633 opened by mkver URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20633 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20633.patch liblc3 supports arbitrary strides, so one can simply use a stride of zero to make it read the same zero value again and again. >>From 3bf38a3570673776249787228325a8c15bc020c6 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 30 Sep 2025 18:53:08 +0200 Subject: [PATCH] avcodec/liblc3enc: Avoid allocating buffer to send a zero frame liblc3 supports arbitrary strides, so one can simply use a stride of zero to make it read the same zero value again and again. Signed-off-by: Andreas Rheinhardt --- libavcodec/liblc3enc.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/libavcodec/liblc3enc.c b/libavcodec/liblc3enc.c index 66007a90f3..72c117b993 100644 --- a/libavcodec/liblc3enc.c +++ b/libavcodec/liblc3enc.c @@ -137,7 +137,6 @@ static int liblc3_encode(AVCodecContext *avctx, AVPacket *pkt, LibLC3EncContext *liblc3 = avctx->priv_data; int block_bytes = liblc3->block_bytes; int channels = avctx->ch_layout.nb_channels; - void *zero_frame = NULL; uint8_t *data_ptr; int ret; @@ -152,25 +151,20 @@ static int liblc3_encode(AVCodecContext *avctx, AVPacket *pkt, return 0; liblc3->remaining_samples = 0; - zero_frame = av_mallocz(avctx->frame_size * sizeof(float)); - if (!zero_frame) - return AVERROR(ENOMEM); } data_ptr = pkt->data; for (int ch = 0; ch < channels; ch++) { - const float *pcm = zero_frame ? zero_frame : frame->data[ch]; + const float *pcm = frame ? (const float*)frame->data[ch] : (const float[]){ 0 }; + int stride = !!frame; // use a stride of zero to send a zero frame int nbytes = block_bytes / channels + (ch < block_bytes % channels); lc3_encode(liblc3->encoder[ch], - LC3_PCM_FORMAT_FLOAT, pcm, 1, nbytes, data_ptr); + LC3_PCM_FORMAT_FLOAT, pcm, stride, nbytes, data_ptr); data_ptr += nbytes; } - if (zero_frame) - av_free(zero_frame); - *got_packet_ptr = 1; return 0; -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org