From patchwork Thu Sep 3 04:03:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 22070 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 8A20644B0D2 for ; Thu, 3 Sep 2020 07:04:10 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5D1AD687F9E; Thu, 3 Sep 2020 07:04:10 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f67.google.com (mail-qv1-f67.google.com [209.85.219.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 93288687F2E for ; Thu, 3 Sep 2020 07:04:04 +0300 (EEST) Received: by mail-qv1-f67.google.com with SMTP id di5so688778qvb.13 for ; Wed, 02 Sep 2020 21:04:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=tnNMYXTprZuzwZjBH6azSjoNt2XhFutY/q2mg381l+M=; b=ZJXxGxxVUglbgYauPkEYD/91ivEimr3BvwPaYW6+mPJ1TIsQkBgJ5UxFs+sfxC5FMA 63aLrGql6QTeTkNIZdbtoMFfcUReIwJ1Lx4lcpRn12U0o8nQVSpUBsaqoydMkh2mDuIV Ppt/rVgT8H8SKyBb2vmEeuKWnc9nNa9nqY73IvxrKJk0hBWy8930AZ/tMu56cEU6SmT3 l3OoTfkTCknP9QdhZIvafm+13nFnQhaNUOKbezfTrTAyqKAbKv3wbC7QyENAYAQwt84z 7ZKPxNsw4NlbMzWEpWvH4qcarhedjq+OGoWOT6nPHbC+yYUg482NG/13KpCCIIWxq4N2 8UuQ== 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:mime-version :content-transfer-encoding; bh=tnNMYXTprZuzwZjBH6azSjoNt2XhFutY/q2mg381l+M=; b=U7wKI3cuMdMrXRg7nSeYWLTBTQuZmWey5TmZGyFokKEoKmC/fzvXXOSjE8ImE3WHOT HfLyu2xPKRZWCsSHW/W0oO+d8Nwg9ea2TKIc3UE15nBba0pI7ldxQlAuFC0PxcDdNdAq 6W5GTlBK1e+tKP1qQzInan2tylwlCWsmyNM0e8YiXVBVO5h2E3NjLo8r5Br+YGOBVsCe Elh9FS1C/jQvb/fU0ggKWOMiRqM0SIMV/PCybfD4JtWfsQtxVnmhYi7ypCtuXmmIQe2s qfzwloyTgQk0E4E5YbLChKbc2GmK6gQhGeTKKsPpZ2geXy+eEbDrsQyR20NdR4cJuBD+ S0OA== X-Gm-Message-State: AOAM530IZGu45Tm/1xZnLeXKQXha7gNpcM+/8kj5FVwR6cyqU0UtTDC6 ps8L+KmMErXFV4+Gbr+qA33dWR/+2cM= X-Google-Smtp-Source: ABdhPJwoJf0hxVbh3tD1aWALD0Ve9Bh8EJ5plqgtJw4Kp0sRTH7KsynHMEf1V7quksfWOE/YNOE0xA== X-Received: by 2002:a0c:c712:: with SMTP id w18mr105436qvi.7.1599105842700; Wed, 02 Sep 2020 21:04:02 -0700 (PDT) Received: from localhost.localdomain ([181.23.70.161]) by smtp.gmail.com with ESMTPSA id z14sm1092268qtn.92.2020.09.02.21.04.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2020 21:04:01 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Sep 2020 01:03:09 -0300 Message-Id: <20200903040311.53886-1-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/packet: factorize calls to packet_alloc() 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 --- libavcodec/avpacket.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 4801163227..22422e46ce 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -612,6 +612,23 @@ void av_packet_unref(AVPacket *pkt) pkt->size = 0; } +static int packet_alloc_and_copy(AVBufferRef **pdst, const uint8_t *data, + int size) +{ + AVBufferRef *dst; + int ret; + + ret = packet_alloc(pdst, size); + if (ret < 0) + return ret; + av_assert1(!size || data); + dst = *pdst; + if (size) + memcpy(dst->data, data, size); + + return 0; +} + int av_packet_ref(AVPacket *dst, const AVPacket *src) { int ret; @@ -623,12 +640,10 @@ int av_packet_ref(AVPacket *dst, const AVPacket *src) goto fail; if (!src->buf) { - ret = packet_alloc(&dst->buf, src->size); + ret = packet_alloc_and_copy(&dst->buf, src->data, + src->size); if (ret < 0) goto fail; - av_assert1(!src->size || src->data); - if (src->size) - memcpy(dst->buf->data, src->data, src->size); dst->data = dst->buf->data; } else { @@ -676,12 +691,10 @@ int av_packet_make_refcounted(AVPacket *pkt) if (pkt->buf) return 0; - ret = packet_alloc(&pkt->buf, pkt->size); + ret = packet_alloc_and_copy(&pkt->buf, pkt->data, + pkt->size); if (ret < 0) return ret; - av_assert1(!pkt->size || pkt->data); - if (pkt->size) - memcpy(pkt->buf->data, pkt->data, pkt->size); pkt->data = pkt->buf->data; @@ -696,12 +709,10 @@ int av_packet_make_writable(AVPacket *pkt) if (pkt->buf && av_buffer_is_writable(pkt->buf)) return 0; - ret = packet_alloc(&buf, pkt->size); + ret = packet_alloc_and_copy(&buf, pkt->data, + pkt->size); if (ret < 0) return ret; - av_assert1(!pkt->size || pkt->data); - if (pkt->size) - memcpy(buf->data, pkt->data, pkt->size); av_buffer_unref(&pkt->buf); pkt->buf = buf;