From patchwork Sun Dec 4 21:52:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 39590 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp2818362pzb; Sun, 4 Dec 2022 13:53:32 -0800 (PST) X-Google-Smtp-Source: AA0mqf4/NSQkObXBKA0Nu5XNyjoGydHUqJk1vZssLwff2DvdkpyDmvyNsCRNEZdSKf5QTehcnGLo X-Received: by 2002:a05:6402:691:b0:46b:c11:9f59 with SMTP id f17-20020a056402069100b0046b0c119f59mr31217834edy.407.1670190811853; Sun, 04 Dec 2022 13:53:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670190811; cv=none; d=google.com; s=arc-20160816; b=iLf1P1pz5EgAL1EYNNWVAVEcJdZG2oJjiYB1vFDoQUTBo+SLpM6Np6869mJxaeMrbQ 2LcqrACh+GvusbawftJt5QjX84i8s0O45tLdbbxx7kf++1fo2X7ZzBhUMdYAvhBggkMM tqoxej6mZDHFP3gOygDRVtMON9ZVlnF4rJYbQ/Cn1KRbPUP6jk8qt2n9PKxNaVYzGgI7 ntxLIrqaePLy41/UUkBsToLnDZCTv3rhClMJliPx4X7DtPg7ysYVjMlFWvQXyBzKC4sQ MZn52wSd0op6CLHz7gwao4gKfHkUnD61o8Nw25rt4SXxqKpNbpwJmAVSH51IDWK6JDdD tDnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=o3AeisowXZHwkcqOmKcbxW/KY5V9vRllXCc7vfnzVUo=; b=crUFQqlJW2a7RYEHwzv+7cQJHinqGYHrhdM1BdJfYx7/CtyFfkqndyw7ETnfUwQQK9 G9NwVL/qtkQaR5MiXu6BVkAjkfGL1Cb4g5c0CO3GZXQU7Gvk5WSpwsJBI0y2ggwpKqcB ES8LF1Ulsoql1edIcUmFxuNqDe3eD8KFkZyOT12SrMVlh7MfL2/tPbOIk236CfXQUSgS /tXzFQRGGSt5QizEH0tDOSTY8/iIUBFh4eZfYkqxCsnhSGsocUFaKaJCkif1RhBIFx5k fZDK9a/eWR0/F3bBEVFZAikFF4qXcfCml0W4N7XwIA4YcX1MGf9LY1VrG1YcgjrrPjIk vdEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VpHYoB2v; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l4-20020a50cbc4000000b0046af62544a0si9327502edi.401.2022.12.04.13.53.31; Sun, 04 Dec 2022 13:53:31 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=VpHYoB2v; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3595868BBEE; Sun, 4 Dec 2022 23:53:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f43.google.com (mail-oo1-f43.google.com [209.85.161.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6AF0F68B315 for ; Sun, 4 Dec 2022 23:53:08 +0200 (EET) Received: by mail-oo1-f43.google.com with SMTP id t15-20020a4a96cf000000b0049f7e18db0dso1466043ooi.10 for ; Sun, 04 Dec 2022 13:53:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Fpg2eVsxJRCXHsYZkJI1pKysUUSY+Uh9dvV64DE9RQQ=; b=VpHYoB2vk3PZnXaQfXY8fByR5jXT1a7aliH9Nxn5YxNSsUE+mH87XNs7iZfcxa5jmx 3nsFoOWEZH3U5e6U4PH9WJJr+z2Jx25oH67sltdiMlyWYzbmD5fDn8l5aDeaYXwYg+Z8 FCa/YbMiOqTFI8PNunfRCLx8KOhOILYL0i09rCTOYy2nf1GfBhfkGu6LJRITl346oL/I XKWMEbRnlMwvYijvjNVvecKR7HZcRi7WFV7ncREoRBpoOznciFjVpdTn+scTjxHtuT/x wDO6HvymFaLMrVWV2GUcmu4BQNReFkacb0qmzF3BZ6DQkwS2sNNeqnW2fWCzKCNEWMGG vNbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fpg2eVsxJRCXHsYZkJI1pKysUUSY+Uh9dvV64DE9RQQ=; b=jweEazfvWy/kL4l6s69WtFgp1eTzrnbMyx426WUusT1xABS9aGu790Wx3swKO78fxj HceWqhZXUgXYo72deKrMjUIB82pxgOKctDhQTV8jBeGLYN6rbd6aEZQCTrqboNCJ1KQN w7yrsThRzvNDaFUGoBZQMzqqAPhfIJPfRWXAzer2FAzWAJGTCHa99DoNp2Uzcng3tARz Kn8dHe9vt8QRJA+a93j9LEUtFwXf13AmGNc65FjCUe96bXxWnxm+If8tbiCG+nrUONSg +dUeNv7pIkgE1anQBehXnzVtn6KXsOSHclEsiToz/W7nfHSlszTcU5bjvvoqT0t+qgXr Ii6g== X-Gm-Message-State: ANoB5plteyKrJKWedRFkll1hvZqYnnxyT2UmrFk8zTNYCp8xSlOt8AU/ Sm/JdpYWgvAdzT0oatuA3JIXf2BWdvQ= X-Received: by 2002:a4a:dc9a:0:b0:4a0:5b89:cacd with SMTP id g26-20020a4adc9a000000b004a05b89cacdmr13440381oou.40.1670190786703; Sun, 04 Dec 2022 13:53:06 -0800 (PST) Received: from localhost.localdomain ([181.85.72.69]) by smtp.gmail.com with ESMTPSA id s16-20020a056830439000b0066c7733be43sm6823100otv.30.2022.12.04.13.53.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Dec 2022 13:53:06 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 4 Dec 2022 18:52:25 -0300 Message-Id: <20221204215227.4186-3-jamrial@gmail.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221204215227.4186-1-jamrial@gmail.com> References: <20221204215227.4186-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/decode: don't set last_pkt_props->size 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: r/bziftyKPwd Use the opaque field instead to store this value. No functional change, but removes the hack that made the packet technically invalid, allowing the safe usage of functions like av_packet_ref() on it if required. Signed-off-by: James Almer --- libavcodec/decode.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index c94d9aa33c..b184c3f55b 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -140,7 +140,7 @@ static int extract_packet_props(AVCodecInternal *avci, const AVPacket *pkt) if (pkt) { ret = av_packet_copy_props(avci->last_pkt_props, pkt); if (!ret) - avci->last_pkt_props->size = pkt->size; // HACK: Needed for ff_decode_frame_props(). + avci->last_pkt_props->opaque = (void *)(intptr_t)pkt->size; // Needed for ff_decode_frame_props(). } return ret; } @@ -469,7 +469,8 @@ FF_ENABLE_DEPRECATION_WARNINGS pkt->pts = AV_NOPTS_VALUE; pkt->dts = AV_NOPTS_VALUE; if (!(codec->caps_internal & FF_CODEC_CAP_SETS_FRAME_PROPS)) { - avci->last_pkt_props->size -= consumed; // See extract_packet_props() comment. + // See extract_packet_props() comment. + avci->last_pkt_props->opaque = (void *)((intptr_t)avci->last_pkt_props->opaque - consumed); avci->last_pkt_props->pts = AV_NOPTS_VALUE; avci->last_pkt_props->dts = AV_NOPTS_VALUE; } @@ -1284,7 +1285,7 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) frame->pts = pkt->pts; frame->pkt_pos = pkt->pos; frame->duration = pkt->duration; - frame->pkt_size = pkt->size; + frame->pkt_size = (int)(intptr_t)pkt->opaque; for (int i = 0; i < FF_ARRAY_ELEMS(sd); i++) { size_t size;