From patchwork Fri Mar 5 16:33:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26129 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 1425A44B9E2 for ; Fri, 5 Mar 2021 18:35:52 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F3E7A68ABD8; Fri, 5 Mar 2021 18:35:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8463968AB2C for ; Fri, 5 Mar 2021 18:35:45 +0200 (EET) Received: by mail-qt1-f182.google.com with SMTP id t13so786964qta.11 for ; Fri, 05 Mar 2021 08:35:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Z/4LYWbLhQ6PYpkm6mfHH60WshYTjwMWiiA6dXNCSv0=; b=mj0YS6TDx8Jv12r7d4BgrWCRSGwAg5h7V8OANQKPv/95e47qpzSYSDs54LQRyXkA7z Tq+8XgR5FZgUrGwyeMKo1tOQW03QILlSPG40OF0yHx3xWXt2GU6TVjFFbnAg9eDWOAzo 7YEuu/Lo8n147IOtWm/Tniux2IcHl6YQWn9twj4WjHR+mrjXg6db2CFSJ6LqrPX+PO1Z LyMb0y5+P2UCx0QODYn74qwK8R4QNb003t1vBkBZvatIStvECb/mrGIKkkSyBdHzsCWS TBcUHBrwdi66PfDUYdj+W/7CekBx6Xr0KxTq61BLvLlzVKodxd3Ilu/S0vBDvMP4ihaf TUiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z/4LYWbLhQ6PYpkm6mfHH60WshYTjwMWiiA6dXNCSv0=; b=hzEgwFHB6FxDSNwZY9Yx8JkAbno0RHvSoOCDYIdGQ2nspHw1ph+BOtq1CllQ8N5jCs VAoSuaV5rSU2d8NbYML52fdeq41jvTwrsPSljh2O8nnAXRv/KZ96vPPFK5MI8P45xGDv O+hoZ1XkkesQ6utLW6HTk5mJVq7Vwz7+xk5qHLYaGl+40mdrP2TnFdOzepP3hyNxm9cb zsHi6azTxjL1xpTQRZeoNCOvmXodprJMZg/j3Is1kuC2r0wlhF5YH8A7oXWTdMTZXtO9 BXuO2FKisUSIfQ4NL2GoAuP/MAr5zU9IJxZEFbilj7aN1h1eOg7JtTUsNv/+NpA0avsG /d4w== X-Gm-Message-State: AOAM532kMB7SnxL8keXd5Af8b4UkvTErsBK2PkcoSeHtsewb8kbam8SI cXafCDGMS1lIfsJ44NttRy0t3DvVmSc85w== X-Google-Smtp-Source: ABdhPJyqp5HMxrx/IUFAVhEVSYhG1xnyKbFfVJruZpK8Qm2zAp58SQl+QN0u5galQk3FkwrsKfrCwQ== X-Received: by 2002:ac8:4b4e:: with SMTP id e14mr9380943qts.25.1614962143978; Fri, 05 Mar 2021 08:35:43 -0800 (PST) Received: from localhost.localdomain ([181.23.89.132]) by smtp.gmail.com with ESMTPSA id b10sm2168494qtt.23.2021.03.05.08.35.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Mar 2021 08:35:43 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 5 Mar 2021 13:33:05 -0300 Message-Id: <20210305163339.63164-15-jamrial@gmail.com> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210305163339.63164-1-jamrial@gmail.com> References: <20210305163339.63164-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 14/48] avformat/amvenc: use av_packet_alloc() to allocate packets X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" Signed-off-by: James Almer --- libavformat/amvenc.c | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/libavformat/amvenc.c b/libavformat/amvenc.c index 4d4ec7a2b1..5d13b618f4 100644 --- a/libavformat/amvenc.c +++ b/libavformat/amvenc.c @@ -62,8 +62,8 @@ typedef struct AMVContext int32_t aframe_size; /* Expected audio frame size. */ int32_t ablock_align; /* Expected audio block align. */ - AVPacket apad; /* Dummy audio packet for padding. */ - AVPacket vpad; /* Most recent video frame, for padding. */ + AVPacket *apad; /* Dummy audio packet for padding. */ + AVPacket *vpad; /* Most recent video frame, for padding. */ /* * Cumulative PTS values for each stream, used for the final @@ -183,16 +183,25 @@ static av_cold int amv_init(AVFormatContext *s) } /* Allocate and fill dummy packet so we can pad the audio. */ - if ((ret = av_new_packet(&amv->apad, amv->ablock_align)) < 0) + amv->apad = av_packet_alloc(); + if (!amv->apad) + return AVERROR(ENOMEM); + if ((ret = av_new_packet(amv->apad, amv->ablock_align)) < 0) { + av_packet_free(&amv->apad); return ret; + } - amv->apad.stream_index = AMV_STREAM_AUDIO; - memset(amv->apad.data, 0, amv->ablock_align); - AV_WL32(amv->apad.data + 4, amv->aframe_size); + amv->apad->stream_index = AMV_STREAM_AUDIO; + memset(amv->apad->data, 0, amv->ablock_align); + AV_WL32(amv->apad->data + 4, amv->aframe_size); - av_init_packet(&amv->vpad); - amv->vpad.stream_index = AMV_STREAM_VIDEO; - amv->vpad.duration = 1; + amv->vpad = av_packet_alloc(); + if (!amv->vpad) { + av_packet_free(&amv->apad); + return AVERROR(ENOMEM); + } + amv->vpad->stream_index = AMV_STREAM_VIDEO; + amv->vpad->duration = 1; return 0; } @@ -200,8 +209,8 @@ static void amv_deinit(AVFormatContext *s) { AMVContext *amv = s->priv_data; - av_packet_unref(&amv->apad); - av_packet_unref(&amv->vpad); + av_packet_free(&amv->apad); + av_packet_free(&amv->vpad); } static void amv_write_vlist(AVFormatContext *s, AVCodecParameters *par) @@ -325,9 +334,9 @@ static int amv_pad(AVFormatContext *s, AVPacket *pkt) stream_index = (stream_index + 1) % s->nb_streams; if (stream_index == AMV_STREAM_VIDEO) - return amv_write_packet_internal(s, &amv->vpad); + return amv_write_packet_internal(s, amv->vpad); else if (stream_index == AMV_STREAM_AUDIO) - return amv_write_packet_internal(s, &amv->apad); + return amv_write_packet_internal(s, amv->apad); else av_assert0(0); @@ -348,8 +357,8 @@ static int amv_write_packet(AVFormatContext *s, AVPacket *pkt) if (pkt->stream_index == AMV_STREAM_VIDEO) { /* Save the last packet for padding. */ - av_packet_unref(&amv->vpad); - if ((ret = av_packet_ref(&amv->vpad, pkt)) < 0) + av_packet_unref(amv->vpad); + if ((ret = av_packet_ref(amv->vpad, pkt)) < 0) return ret; } @@ -366,7 +375,7 @@ static int amv_write_trailer(AVFormatContext *s) /* Pad-out one last audio frame if needed. */ if (amv->last_stream == AMV_STREAM_VIDEO) { - if ((ret = amv_write_packet_internal(s, &amv->apad)) < 0) + if ((ret = amv_write_packet_internal(s, amv->apad)) < 0) return ret; }