From patchwork Fri Mar 10 11:56:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 40635 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp1115886pzb; Fri, 10 Mar 2023 03:56:51 -0800 (PST) X-Google-Smtp-Source: AK7set+hyh3EeJSdtiVZsF7R+jEH3PWsSNHomv4lYwjq2mkIT115jw/tkYwN/LHc8ldoQHmjrUvA X-Received: by 2002:a17:906:9744:b0:900:a150:cea3 with SMTP id o4-20020a170906974400b00900a150cea3mr31788993ejy.9.1678449411576; Fri, 10 Mar 2023 03:56:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678449411; cv=none; d=google.com; s=arc-20160816; b=itECOk6A7vwFqUcHCWiHmrfPV1wbQzLY2zpEzMSVG6N4hmSxKCGwO8Y+lmh6MUsp6v SZk4gfXUA8gbIGqSuqi93LaxQHFgCOIZ1kkZy7YvJPPAxyTmwADQEd4lDpOlMQsc+1pD DOmWeAB0UIm4DpCNKhHFXYTUXgt/Sxo/wNUM4QGVRj96v8VF1pXcaop/1jPRyKyfKNjn rE8c2J3GvrY3iU5rKTy//rxAdYAbg0V/cT+dWE/XXdPzbIzvzP8xX8eOmgLnI/+I/4LQ QkJKHDk2B3uuyTdRAf+zFP4FPLbJw8+Sw0IJf0HuvGpdVV39X9BzX7FC/O6uO8maPYuG RO0Q== 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:message-id:date:to:from :delivered-to; bh=di/g+OE+yuf8Uvzia8htHO2USWzRNb4FuBVelo0eYW4=; b=Q7ufQvnRPOjd4H+P5oH+5D1MgsdYlLv7mt61imYE8uz6WyBEA7pXNYvZ70RKiIN+ne 2hO/myP1Nuy6Md759knmWz4ooqoAgtkRCKgKy8OOzxUhZvydPVZnpUUFhrKOoUAuoHOA yvzQ3Ebhy0dfjrzuEdHoe0Hh0DcbJJ9rvjvw7izAUf6ahoGnNNG2QIVHCRVU5Yr+vqki Co551SQu1p+mDBDFJqofH+CVTnLjHiXSrrutdMAWiGo0AztqWseRvIzWMFC+ShwdeZja k0OlnO3M5SEuFysL2hYmCZ1vEHAx7+jb8OMfhMRDbu3zKPxaTYuClvuOy9IgDttKNn4m 1E4g== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l2-20020a056402028200b004acbe796d63si2273557edv.463.2023.03.10.03.56.51; Fri, 10 Mar 2023 03:56:51 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C762E68BE18; Fri, 10 Mar 2023 13:56:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E58BD68A9DF for ; Fri, 10 Mar 2023 13:56:41 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id AE3BC2405B5 for ; Fri, 10 Mar 2023 12:56:41 +0100 (CET) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id W_tE679bJ7pf for ; Fri, 10 Mar 2023 12:56:41 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 29101240178 for ; Fri, 10 Mar 2023 12:56:41 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id D5F3B3A038E for ; Fri, 10 Mar 2023 12:56:40 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Fri, 10 Mar 2023 12:56:30 +0100 Message-Id: <20230310115635.13639-1-anton@khirnov.net> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/6] lavc/decode: stop mangling last_pkt_props->opaque 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: FOSQm7Dpg7Gm It is currently abused to store packet size, which breaks AV_CODEC_FLAG_COPY_OPAQUE. Use stream_index instead, which is unused in libavcodec and has the same type as size. --- libavcodec/decode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index be2be81089..d1ba7f167f 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->opaque = (void *)(intptr_t)pkt->size; // Needed for ff_decode_frame_props(). + avci->last_pkt_props->stream_index = pkt->size; // Needed for ff_decode_frame_props(). } return ret; } @@ -461,7 +461,7 @@ FF_ENABLE_DEPRECATION_WARNINGS pkt->dts = AV_NOPTS_VALUE; if (!(codec->caps_internal & FF_CODEC_CAP_SETS_FRAME_PROPS)) { // See extract_packet_props() comment. - avci->last_pkt_props->opaque = (void *)((intptr_t)avci->last_pkt_props->opaque - consumed); + avci->last_pkt_props->stream_index = avci->last_pkt_props->stream_index - consumed; avci->last_pkt_props->pts = AV_NOPTS_VALUE; avci->last_pkt_props->dts = AV_NOPTS_VALUE; } @@ -1355,7 +1355,7 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) int ret = ff_decode_frame_props_from_pkt(avctx, frame, pkt); if (ret < 0) return ret; - frame->pkt_size = (int)(intptr_t)pkt->opaque; + frame->pkt_size = pkt->stream_index; } #if FF_API_REORDERED_OPAQUE FF_DISABLE_DEPRECATION_WARNINGS