From patchwork Thu Mar 11 15:50:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26342 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 35E9A44B6B6 for ; Thu, 11 Mar 2021 17:50:37 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 13E1468AB67; Thu, 11 Mar 2021 17:50:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A8C7368AAD5 for ; Thu, 11 Mar 2021 17:50:30 +0200 (EET) Received: by mail-qt1-f179.google.com with SMTP id l13so1455476qtu.9 for ; Thu, 11 Mar 2021 07:50:30 -0800 (PST) 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=fyHA0I9v3S+ctnwROlkl8qNGjecJ1Whr4Tr5Wt5gWZA=; b=ZubsNvW1LDUb9eVRUQ7Cv5I6gf8RAEUrnZ80HxWZV+5sgTFW0EYjGgPRjkEr3KvE9h Jikg4gMl9lFul+cacbT+Pbwv6XSg00wbg3zoO7pM77Qz4zPdZoBugPEN/A56ewYCi135 sW+QylsbV+ZJtxxxf+aSJAWx2cuqleZUdHcrwo7+sAzEOK2fSvfr3+BlR2+Tlo070ZNl OZ5/p8Z3VBoCU8ODOdbNDdvvS/Kt53k1VvG1/lZrn6wWgFMVJ4BZ26gu9OGOjzfODEFx OOUOMIt0XHgxWPqXTEarwDP8GFNPkqNdM53b+6vpkF2PEiRg/3vOvvY+ikT0QIjGsvlV u29g== 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=fyHA0I9v3S+ctnwROlkl8qNGjecJ1Whr4Tr5Wt5gWZA=; b=kWialNYWHw0NaF8dI7ovVrcn5uSIvyhZnkXSAWLrWqV9nwPRVLH71NqroOVqIGJZ3G fJbFgs1TJ9x2kNN61tN6vyL5RA6fpBBJD95ppt5QhlyvTwTgcx4WayODWHi1FtmJct1O ETGh+/H9j2Co3B1rrVjdY3Ldwa+dMgn0BfNwCwxcimUs2wNY5oGiHuX5y8KR5eQezrwI ml9i9gzL5n2uf1drfdTj+Wr4iAdrw/Hs8BzaJQnoV3XjzK3E2AMYRiEDLT1+sG4MBV/T KRPGUnyYVPpKl4VOQ2tF3HNchNQfHqR7PTTOMeIlC8KjSLC5aatkp0W/6FHf1S2XXJTy Cz3Q== X-Gm-Message-State: AOAM5324MkiX4upFoCtzLUHrg99MifzefJxL8XOO+PiUBzo3iUHgfZkR T4/l3q5CfuLkLvJHwIZIzhwXnY3hhZc= X-Google-Smtp-Source: ABdhPJxNqEYFZsNa1tgJo69hbfGOaOJaWflJUx5sNfLT1U6lkXhNgz50qNWKjqF9ugyETE+1BumY6w== X-Received: by 2002:a05:622a:2d6:: with SMTP id a22mr7792480qtx.111.1615477828856; Thu, 11 Mar 2021 07:50:28 -0800 (PST) Received: from localhost.localdomain ([181.23.75.214]) by smtp.gmail.com with ESMTPSA id 85sm2307127qkf.58.2021.03.11.07.50.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Mar 2021 07:50:28 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 11 Mar 2021 12:50:09 -0300 Message-Id: <20210311155011.52961-1-jamrial@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/avpacket: add av_packet_resize() 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" This function acts as a replacement for both av_grow_packet() and av_shrink_packet(), the latter which is now deprecated and will be removed as it does not correctly handle non-writable packets. Signed-off-by: James Almer --- libavcodec/avpacket.c | 19 +++++++++++++++---- libavcodec/packet.h | 16 ++++++++++++++++ libavcodec/version.h | 3 +++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 32cb71fcf0..7d0dbadbed 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -100,6 +100,7 @@ int av_new_packet(AVPacket *pkt, int size) return 0; } +#if FF_API_SHRINK_PACKET void av_shrink_packet(AVPacket *pkt, int size) { if (pkt->size <= size) @@ -107,16 +108,26 @@ void av_shrink_packet(AVPacket *pkt, int size) pkt->size = size; memset(pkt->data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE); } +#endif int av_grow_packet(AVPacket *pkt, int grow_by) { - int new_size; av_assert0((unsigned)pkt->size <= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE); if ((unsigned)grow_by > INT_MAX - (pkt->size + AV_INPUT_BUFFER_PADDING_SIZE)) return AVERROR(ENOMEM); - new_size = pkt->size + grow_by + AV_INPUT_BUFFER_PADDING_SIZE; + return av_packet_resize(pkt, pkt->size + grow_by); +} + +int av_packet_resize(AVPacket *pkt, int size) +{ + int new_size; + + if (size < 0 || size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE) + return AVERROR(EINVAL); + + new_size = size + AV_INPUT_BUFFER_PADDING_SIZE; if (pkt->buf) { size_t data_offset; uint8_t *old_data = pkt->data; @@ -143,10 +154,10 @@ int av_grow_packet(AVPacket *pkt, int grow_by) if (!pkt->buf) return AVERROR(ENOMEM); if (pkt->size > 0) - memcpy(pkt->buf->data, pkt->data, pkt->size); + memcpy(pkt->buf->data, pkt->data, FFMIN(pkt->size, size)); pkt->data = pkt->buf->data; } - pkt->size += grow_by; + pkt->size = size; memset(pkt->data + pkt->size, 0, AV_INPUT_BUFFER_PADDING_SIZE); return 0; diff --git a/libavcodec/packet.h b/libavcodec/packet.h index 3d9013d783..1720d973f5 100644 --- a/libavcodec/packet.h +++ b/libavcodec/packet.h @@ -484,13 +484,29 @@ void av_init_packet(AVPacket *pkt); */ int av_new_packet(AVPacket *pkt, int size); +#if FF_API_SHRINK_PACKET /** * Reduce packet size, correctly zeroing padding * * @param pkt packet * @param size new size + * + * @deprecated Use av_packet_resize */ +attribute_deprecated void av_shrink_packet(AVPacket *pkt, int size); +#endif + +/** + * Resize the payload of a packet, correctly zeroing padding and avoiding data + * copy if possible. + * + * @param pkt packet + * @param size new size + * + * @return 0 on success, a negative AVERROR on error + */ +int av_packet_resize(AVPacket *pkt, int size); /** * Increase packet size, correctly zeroing padding diff --git a/libavcodec/version.h b/libavcodec/version.h index 3124ec8061..6c362b43e2 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -162,5 +162,8 @@ #ifndef FF_API_GET_FRAME_CLASS #define FF_API_GET_FRAME_CLASS (LIBAVCODEC_VERSION_MAJOR < 60) #endif +#ifndef FF_API_SHRINK_PACKET +#define FF_API_SHRINK_PACKET (LIBAVCODEC_VERSION_MAJOR < 60) +#endif #endif /* AVCODEC_VERSION_H */ From patchwork Thu Mar 11 15:50:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26343 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 F00FA44B6B6 for ; Thu, 11 Mar 2021 17:50:38 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D75C668AB79; Thu, 11 Mar 2021 17:50:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9910768AAD5 for ; Thu, 11 Mar 2021 17:50:31 +0200 (EET) Received: by mail-qt1-f181.google.com with SMTP id f12so1455055qtq.4 for ; Thu, 11 Mar 2021 07:50:31 -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=Zj2a5i/w85VPuVfaeXEQo+vNJp7VdzB/SwtwAWrH2N4=; b=iREleVO+70vlp+Ag92qGVkuPqA/S+NzShQjvYq4V9YBrgAd4oIAIc0jK0P5Fex9KVY hOeM0HpJPuQCH7ifgMy0mLMxE/uH5n7hW4IDorTeCWB9g2GwzlEdIhD58nLBCYZm91hU t2Nonip3Cv0rGKawXyMA4gwzWfT1igb938I1kpiTrJiwNbA3vwb/VnZ1MpSymz3TPqo+ FW4FqMlghKANoVPIcVss/TBmcHzQ0g3araAtsmr/FNK8qQRlFQC3/56ZmDGA2hMKBOBn Ez/CM4bO7+lyEyI1+vQfc5C8Cr9KrmQyQgQx/l61D/8IxYWxs+V8znkgZ8g62KppQ+7F EC+g== 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=Zj2a5i/w85VPuVfaeXEQo+vNJp7VdzB/SwtwAWrH2N4=; b=sD2tEoEGedjXduziqLxQqj1lZRL7CiaM31/3ZbXfU3xbOU9MRgsn5E6sz31P5kLWS4 Pi/MKmB6hVKmhAPfZdMBO9B1cTqBise7CP1jdIXbJSGZtxkidTBIHlrtIgHj2gpJcpvg KPu4N19M85s5QIw3wgTAo0uDYyYMmQipgygk/1HrBptAvPruIyUGTJdm2fgmgv+/mg4L +AqSIM6OqhC9RBa5bpOGV/3BuOnIjPTCH9QKyyVMoi2iwBBQlNZ6PsQCamPrLJ0+lYuS GLzZiZpIl7tMJ9HHxsVQGQr26sZvKQ2AJsOGov8n5Zjh3em8V7L5Rj4BGpxrhYxwv8CW q5HA== X-Gm-Message-State: AOAM532TsTp7i4kSDWTKG9/iQ6cz8VSpDM1up+yPQqR2FudU8OeyS8kl E0Pt+oJFypnOtbemljncxyhh+k5126o= X-Google-Smtp-Source: ABdhPJzEE4Vy+fe2gtjChGtANQWLbj5EnPz603XAKl8JnxUSEDij6bo+mDdQB3qHoLBjIziUNiBW2A== X-Received: by 2002:ac8:5ac6:: with SMTP id d6mr7849400qtd.193.1615477830100; Thu, 11 Mar 2021 07:50:30 -0800 (PST) Received: from localhost.localdomain ([181.23.75.214]) by smtp.gmail.com with ESMTPSA id 85sm2307127qkf.58.2021.03.11.07.50.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Mar 2021 07:50:29 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 11 Mar 2021 12:50:10 -0300 Message-Id: <20210311155011.52961-2-jamrial@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210311155011.52961-1-jamrial@gmail.com> References: <20210311155011.52961-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avcodec: replace all uses of av_shrink_packet() with av_packet_resize() 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/aliaspixenc.c | 2 +- libavcodec/cfhdenc.c | 2 +- libavcodec/exrenc.c | 2 +- libavcodec/hapenc.c | 2 +- libavcodec/libopenjpegenc.c | 2 +- libavcodec/libopusenc.c | 2 +- libavcodec/libtwolame.c | 2 +- libavcodec/rpzaenc.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/aliaspixenc.c b/libavcodec/aliaspixenc.c index a9ba00cd29..57dea147bd 100644 --- a/libavcodec/aliaspixenc.c +++ b/libavcodec/aliaspixenc.c @@ -103,7 +103,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } /* Total length */ - av_shrink_packet(pkt, buf - pkt->data); + av_packet_resize(pkt, buf - pkt->data); pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; diff --git a/libavcodec/cfhdenc.c b/libavcodec/cfhdenc.c index 42bbf99c96..109b42009a 100644 --- a/libavcodec/cfhdenc.c +++ b/libavcodec/cfhdenc.c @@ -785,7 +785,7 @@ static int cfhd_encode_frame(AVCodecContext *avctx, AVPacket *pkt, bytestream2_put_be16(pby, GroupTrailer); bytestream2_put_be16(pby, 0); - av_shrink_packet(pkt, bytestream2_tell_p(pby)); + av_packet_resize(pkt, bytestream2_tell_p(pby)); pkt->flags |= AV_PKT_FLAG_KEY; diff --git a/libavcodec/exrenc.c b/libavcodec/exrenc.c index db9000a85c..60680ccdac 100644 --- a/libavcodec/exrenc.c +++ b/libavcodec/exrenc.c @@ -504,7 +504,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, av_assert0(0); } - av_shrink_packet(pkt, bytestream2_tell_p(pb)); + av_packet_resize(pkt, bytestream2_tell_p(pb)); pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; diff --git a/libavcodec/hapenc.c b/libavcodec/hapenc.c index 3a1bc870b1..544836e4e6 100644 --- a/libavcodec/hapenc.c +++ b/libavcodec/hapenc.c @@ -227,7 +227,7 @@ static int hap_encode(AVCodecContext *avctx, AVPacket *pkt, /* Write header at the start. */ hap_write_frame_header(ctx, pkt->data, final_data_size + header_length); - av_shrink_packet(pkt, final_data_size + header_length); + av_packet_resize(pkt, final_data_size + header_length); pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; return 0; diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index e4641235f5..8791cc72a6 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -707,7 +707,7 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt, goto done; } - av_shrink_packet(pkt, writer.pos); + av_packet_resize(pkt, writer.pos); pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c index 70d17f802b..879b8a57e3 100644 --- a/libavcodec/libopusenc.c +++ b/libavcodec/libopusenc.c @@ -502,7 +502,7 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt, return ff_opus_error_to_averror(ret); } - av_shrink_packet(avpkt, ret); + av_packet_resize(avpkt, ret); ff_af_queue_remove(&opus->afq, opus->opts.packet_size, &avpkt->pts, &avpkt->duration); diff --git a/libavcodec/libtwolame.c b/libavcodec/libtwolame.c index 5ceb3d9f3f..da7a250507 100644 --- a/libavcodec/libtwolame.c +++ b/libavcodec/libtwolame.c @@ -167,7 +167,7 @@ static int twolame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (avpkt->pts != AV_NOPTS_VALUE) s->next_pts = avpkt->pts + avpkt->duration; - av_shrink_packet(avpkt, ret); + av_packet_resize(avpkt, ret); *got_packet_ptr = 1; return 0; } diff --git a/libavcodec/rpzaenc.c b/libavcodec/rpzaenc.c index baf067c205..c87fe59985 100644 --- a/libavcodec/rpzaenc.c +++ b/libavcodec/rpzaenc.c @@ -802,7 +802,7 @@ static int rpza_encode_frame(AVCodecContext *avctx, AVPacket *pkt, flush_put_bits(&s->pb); - av_shrink_packet(pkt, put_bits_count(&s->pb) >> 3); + av_packet_resize(pkt, put_bits_count(&s->pb) >> 3); buf = pkt->data; // write header opcode From patchwork Thu Mar 11 15:50:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26344 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 9190944B9C8 for ; Thu, 11 Mar 2021 17:55:49 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5E0E468ABD8; Thu, 11 Mar 2021 17:55:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vk1-f181.google.com (mail-vk1-f181.google.com [209.85.221.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7DA8A68A862 for ; Thu, 11 Mar 2021 17:55:43 +0200 (EET) Received: by mail-vk1-f181.google.com with SMTP id p62so582326vkp.4 for ; Thu, 11 Mar 2021 07:55:43 -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=1p3VxumvgvpRFiAZXqtDZ894lrcNDXGxfQ8X/Ts/ihc=; b=rbeX7mc+3plDCTzqcUoZjJQoko8oiB+wVdI39r6cO0NXiSMvC1VvQzMxFPyZe2QML7 c+/ws7BU8/ikTQdULsuE7LagraMbrQucvptE/awNvIEGYru3eDCsK9K/5pb5Bcn3A919 /pj1nZwcyhT8LP1deyH8ATy5ZnrmEnpdLIpuyo1f+UiepTiv7DBN28YDwYwTNNHI4G06 MI40Xqr+kpA8dyrBPrwIuzn6+4NfDw+jkhZW2+FfD1QMHN0iQaEl/Vra05wO2dqyHKsu Yktwz6f9bUugJl4+oeIqTbeaSMmILynzhEnTwHSJn5ltibU5FNtDbbqv2l3a/xPVZmkL T+JA== 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=1p3VxumvgvpRFiAZXqtDZ894lrcNDXGxfQ8X/Ts/ihc=; b=n+lZtKKvDXAsjUrTLipeyKa9UMKpsYQIsA3RiY1qXHg+ZGwffEAAumHxn/hi8B01Mt LgNDuHXcFwrLfi5ULFW1UDWAeIwOt80ci2VUTKXBp7aDj+Fj1NnHq1UJhXTt+rcL0X9V rZvQRsbE3bkVyzpIlHgl0YYQKUTbYv0ZG6l/v72yBEh5hwTI46xuUiHpdCmLEO5qHd50 Lla4MbCov+BvEqkm/YD4NJKi5/5EEezhs7NvF7bU2XTf37vqul7zOyOwUZuopbawuAti KsoA503WiPRb5gm38O749QZo7V6hoDKGeIWrPeb/CEf1tgqXm9Vd4iVSKUOgmiKbu6MB /OOA== X-Gm-Message-State: AOAM530jZJLvelSx0QXTge+Im2IO28/yJ7LTLmc0cNT5d68JrUj3RrGq 7FBcpL99kkUtAyX+FSeZOmpZscaizWg= X-Google-Smtp-Source: ABdhPJwtyw0zYSpS2JcWEIG0rMjMhepzwfM/0U70YyAiwjRPI7mf8YYqRfLBSnXFmv8e9wc1AGu2xQ== X-Received: by 2002:a0c:e90d:: with SMTP id a13mr8128042qvo.36.1615477831327; Thu, 11 Mar 2021 07:50:31 -0800 (PST) Received: from localhost.localdomain ([181.23.75.214]) by smtp.gmail.com with ESMTPSA id 85sm2307127qkf.58.2021.03.11.07.50.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Mar 2021 07:50:30 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 11 Mar 2021 12:50:11 -0300 Message-Id: <20210311155011.52961-3-jamrial@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210311155011.52961-1-jamrial@gmail.com> References: <20210311155011.52961-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avformat: replace all uses of av_shrink_packet() with av_packet_resize() 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/4xm.c | 2 +- libavformat/adp.c | 2 +- libavformat/adxdec.c | 2 +- libavformat/asfdec_f.c | 2 +- libavformat/cdxl.c | 2 +- libavformat/dsicin.c | 2 +- libavformat/mxfdec.c | 4 ++-- libavformat/nutdec.c | 2 +- libavformat/nuv.c | 2 +- libavformat/rawdec.c | 2 +- libavformat/rmdec.c | 2 +- libavformat/sdr2.c | 2 +- libavformat/svs.c | 2 +- libavformat/swfdec.c | 2 +- libavformat/utils.c | 2 +- libavformat/yop.c | 2 +- 16 files changed, 17 insertions(+), 17 deletions(-) diff --git a/libavformat/4xm.c b/libavformat/4xm.c index 30f1b05324..5acbd77055 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -341,7 +341,7 @@ static int fourxm_read_packet(AVFormatContext *s, av_packet_unref(pkt); } else { packet_read = 1; - av_shrink_packet(pkt, ret + 8); + av_packet_resize(pkt, ret + 8); } break; diff --git a/libavformat/adp.c b/libavformat/adp.c index 8668c78fe4..374f923072 100644 --- a/libavformat/adp.c +++ b/libavformat/adp.c @@ -80,7 +80,7 @@ static int adp_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) { return ret; } - av_shrink_packet(pkt, ret); + av_packet_resize(pkt, ret); } pkt->stream_index = 0; diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c index a265c87dea..a772e393c7 100644 --- a/libavformat/adxdec.c +++ b/libavformat/adxdec.c @@ -71,7 +71,7 @@ static int adx_read_packet(AVFormatContext *s, AVPacket *pkt) return ret; if ((ret % size) && ret >= size) { size = ret - (ret % size); - av_shrink_packet(pkt, size); + av_packet_resize(pkt, size); pkt->flags &= ~AV_PKT_FLAG_CORRUPT; } else if (ret < size) { return AVERROR(EIO); diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c index 1484b544d9..22aab4a46f 100644 --- a/libavformat/asfdec_f.c +++ b/libavformat/asfdec_f.c @@ -1388,7 +1388,7 @@ static int asf_parse_packet(AVFormatContext *s, AVIOContext *pb, AVPacket *pkt) ret = asf->packet_frag_size; } else { // no scrambling, so we can return partial packets - av_shrink_packet(&asf_st->pkt, asf->packet_frag_offset + ret); + av_packet_resize(&asf_st->pkt, asf->packet_frag_offset + ret); } } if (s->key && s->keylen == 20) diff --git a/libavformat/cdxl.c b/libavformat/cdxl.c index 33b6d5cbad..7259ba339e 100644 --- a/libavformat/cdxl.c +++ b/libavformat/cdxl.c @@ -221,7 +221,7 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) { return ret; } - av_shrink_packet(pkt, CDXL_HEADER_SIZE + ret); + av_packet_resize(pkt, CDXL_HEADER_SIZE + ret); pkt->stream_index = cdxl->video_stream_index; pkt->flags |= AV_PKT_FLAG_KEY; pkt->pos = cdxl->pos; diff --git a/libavformat/dsicin.c b/libavformat/dsicin.c index b18f43b9a0..ebadd56c98 100644 --- a/libavformat/dsicin.c +++ b/libavformat/dsicin.c @@ -203,7 +203,7 @@ static int cin_read_packet(AVFormatContext *s, AVPacket *pkt) return ret; } if (ret < pkt_size) - av_shrink_packet(pkt, 4 + ret); + av_packet_resize(pkt, 4 + ret); /* sound buffer will be processed on next read_packet() call */ cin->audio_buffer_size = hdr->audio_frame_size; diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index bb00838a3f..bdb8eff587 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -575,7 +575,7 @@ static int mxf_get_d10_aes3_packet(AVIOContext *pb, AVStream *st, AVPacket *pkt, } buf_ptr += 32 - st->codecpar->channels*4; // always 8 channels stored SMPTE 331M } - av_shrink_packet(pkt, data_ptr - pkt->data); + av_packet_resize(pkt, data_ptr - pkt->data); return 0; } @@ -642,7 +642,7 @@ static int mxf_decrypt_triplet(AVFormatContext *s, AVPacket *pkt, KLVPacket *klv if (mxf->aesc) av_aes_crypt(mxf->aesc, &pkt->data[plaintext_size], &pkt->data[plaintext_size], size >> 4, ivec, 1); - av_shrink_packet(pkt, orig_size); + av_packet_resize(pkt, orig_size); pkt->stream_index = index; avio_skip(pb, end - avio_tell(pb)); return 0; diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index ebb062377d..11cdd92c4a 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -1122,7 +1122,7 @@ static int decode_frame(NUTContext *nut, AVPacket *pkt, int frame_code) if (ret < 0) goto fail; } - av_shrink_packet(pkt, nut->header_len[header_idx] + ret); + av_packet_resize(pkt, nut->header_len[header_idx] + ret); pkt->stream_index = stream_id; if (stc->last_flags & FLAG_KEY) diff --git a/libavformat/nuv.c b/libavformat/nuv.c index df90df4938..3c8eb7b8d4 100644 --- a/libavformat/nuv.c +++ b/libavformat/nuv.c @@ -291,7 +291,7 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) return ret; } if (ret < size) - av_shrink_packet(pkt, copyhdrsize + ret); + av_packet_resize(pkt, copyhdrsize + ret); return 0; case NUV_AUDIO: if (ctx->a_id < 0) { diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c index 122afca1b6..6c72a7c94a 100644 --- a/libavformat/rawdec.c +++ b/libavformat/rawdec.c @@ -49,7 +49,7 @@ int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt) av_packet_unref(pkt); return ret; } - av_shrink_packet(pkt, ret); + av_packet_resize(pkt, ret); return ret; } diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c index 610189ecb4..79c46429d6 100644 --- a/libavformat/rmdec.c +++ b/libavformat/rmdec.c @@ -850,7 +850,7 @@ static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb, if(vst->slices != vst->cur_slice) //FIXME find out how to set slices correct from the begin memmove(pkt->data + 1 + 8*vst->cur_slice, pkt->data + 1 + 8*vst->slices, vst->videobufpos - 1 - 8*vst->slices); - av_shrink_packet(pkt, vst->videobufpos + 8*(vst->cur_slice - vst->slices)); + av_packet_resize(pkt, vst->videobufpos + 8*(vst->cur_slice - vst->slices)); pkt->pts = AV_NOPTS_VALUE; pkt->pos = vst->pktpos; vst->slices = 0; diff --git a/libavformat/sdr2.c b/libavformat/sdr2.c index 3743d59e58..255dd69475 100644 --- a/libavformat/sdr2.c +++ b/libavformat/sdr2.c @@ -97,7 +97,7 @@ static int sdr2_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) { return ret; } - av_shrink_packet(pkt, ret + 24); + av_packet_resize(pkt, ret + 24); } else { ret = av_get_packet(s->pb, pkt, next - 52); } diff --git a/libavformat/svs.c b/libavformat/svs.c index d4285ed306..66647acb67 100644 --- a/libavformat/svs.c +++ b/libavformat/svs.c @@ -79,7 +79,7 @@ static int svs_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret != 32 * 256) { if (ret < 0) return ret; - av_shrink_packet(pkt, ret); + av_packet_resize(pkt, ret); pkt->flags &= ~AV_PKT_FLAG_CORRUPT; } pkt->stream_index = 0; diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c index f9a164b33f..783e0ec072 100644 --- a/libavformat/swfdec.c +++ b/libavformat/swfdec.c @@ -538,7 +538,7 @@ bitmap_end_skip: if (res < 0) { return res; } - av_shrink_packet(pkt, res); + av_packet_resize(pkt, res); } pkt->pos = pos; diff --git a/libavformat/utils.c b/libavformat/utils.c index 8573117694..18f512a961 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -293,7 +293,7 @@ static int append_packet_chunked(AVIOContext *s, AVPacket *pkt, int size) ret = avio_read(s, pkt->data + prev_size, read_size); if (ret != read_size) { - av_shrink_packet(pkt, prev_size + FFMAX(ret, 0)); + av_packet_resize(pkt, prev_size + FFMAX(ret, 0)); break; } diff --git a/libavformat/yop.c b/libavformat/yop.c index 0d8d9f2ff7..d4150b2d6b 100644 --- a/libavformat/yop.c +++ b/libavformat/yop.c @@ -160,7 +160,7 @@ static int yop_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) goto err_out; else if (ret < actual_video_data_size) - av_shrink_packet(&yop->video_packet, yop->palette_size + ret); + av_packet_resize(&yop->video_packet, yop->palette_size + ret); // Arbitrarily return the audio data first return 0;