From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 2F41B4BFA3 for ; Fri, 23 May 2025 03:11:15 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1942768DCE7; Fri, 23 May 2025 06:10:51 +0300 (EEST) Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 5931A68D5A2 for ; Fri, 23 May 2025 06:10:43 +0300 (EEST) Received: by mail-ua1-f54.google.com with SMTP id a1e0cc1a2514c-86dc3482b3dso351084241.0 for ; Thu, 22 May 2025 20:10:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747969841; x=1748574641; darn=ffmpeg.org; 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=oL/eSKNujJjHEP6e6gW9qMWiYIhZ2k6ZQhd9xz5e/X0=; b=MCTFG5vhL0fDXobnKvn2IWw0qTTgyAemZ7vO1Q5Ekm/RvXvaptqa/tMFkiNMg+DgHD WgfjIvFKVGTY8yF7W6zsbbuVNCUXQVS4mE1gTcEak7QZX+o1e7rxM2QeLKOKPMWQHR9K 11Sj60MEDxI/EAEqRZF+JC/VFCbr/h1ERwjym5rHe85BGOh5aTkIkzn/wO50BH07eC/G 6mRxlL18g4/LynJ2H+EoCkj3cr1U6AWdDbYRRaQc9KB+2jR4GYJGHJ0g81Acadz9gN24 mIDQMY5XYRhCv0iquu4iHzvWPWe+TchVvHoDf56OBkdJ9LwrHJsxn64vyeAAAOQ9N8BD ov6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747969841; x=1748574641; 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=oL/eSKNujJjHEP6e6gW9qMWiYIhZ2k6ZQhd9xz5e/X0=; b=rBt53Z776vBjj00FHES3/aPRtfqXnYTegzSn9t1JyxPig5WspTxwvlLp+/Y6rGqU9k dnxRrHKGhYc8WuteRkIDxSpIP5Cca3J2xdnMCl80tPVH1XdR9ebpxaTaUViMlixRLO11 ACh+bjLeiGNZy88yHM3GnYeXHrN96mzOmbGQza6Gex9HscFrc9YHbaFc0eZTbcjs8oTm lMteARTySFcGTccoQf+gW+YX2/gboWR2JjyTk5c1dzgbr0CQYZSIqjjjB1eiCKnRxb3j oFtE/RmRpIFs49HKuma1rwTOmiDEOi+BxVyuP+f1rI+09rWeSn43Dkitu/6YykcqJr94 DwyQ== X-Gm-Message-State: AOJu0Yxzd51uf1jfNIOrJli4qeCoi3HfYaLYQ/qgEGi03PV+Rme9DaHq MjyD5c0/KiBX5duvW7SeYwWZVQHenUwGn/7JI1wlHbjUS4gTg2vXNUst0Zb5hQ== X-Gm-Gg: ASbGncvgaWOpkx2s5js7dMZS5mpR9RItnQ2oooM50k7L1c8v1LcCyi+qRqXCQBH1oC2 RIsUC7w57jxb5VIwVPkQ2RNadyb1SJB+ujP1ysmEYdws6Gm9CIqXBL/P1R8ltzNuAEYmVI5vBic ITFXv1vLFpXSBXi35/QAO2dP7rqj16kJS+LwuQ17dnt9xJXlsW7zSnOs/WNu0twKdr23fZXXypI IcnjzWWIHVdG1OM2DcSjr7w8IfvlmGbbD+U4v4+4kQVkqKSSz4N+pDE0fuMFkQ8X8mxvj24ZbPs smQPyLNITGzo5nRREyV9bigJDCfaFed7YsX8mi2uGgS475uDi1jIdHyu6AHE4rtjUPDz3w== X-Google-Smtp-Source: AGHT+IFFex1wvABsb9PkxWqi48bwLsOkCx2Hrgi+oq7yAxwbPqVCaapAV/bPGpchdIl8R+/SDA3ICw== X-Received: by 2002:a05:6122:488f:b0:52d:d4cf:5754 with SMTP id 71dfb90a1353d-52f1ebd2b74mr1976674e0c.0.1747969841361; Thu, 22 May 2025 20:10:41 -0700 (PDT) Received: from localhost.localdomain ([2800:2121:b000:82e:78e2:53a8:f2f1:b249]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-52dba9408f5sm12812913e0c.15.2025.05.22.20.10.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 20:10:40 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 23 May 2025 00:10:21 -0300 Message-ID: <20250523031021.15983-3-jamrial@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250523031021.15983-1-jamrial@gmail.com> References: <20250523031021.15983-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/av1_parser: use an AVBufferRef to avoid data copying 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Signed-off-by: James Almer --- libavcodec/av1_parser.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavcodec/av1_parser.c b/libavcodec/av1_parser.c index 77906d0c91..b9a96ad59a 100644 --- a/libavcodec/av1_parser.c +++ b/libavcodec/av1_parser.c @@ -50,6 +50,11 @@ static const enum AVPixelFormat pix_fmts_rgb[3] = { AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, }; +static void dummy_free(void *opaque, uint8_t *data) +{ + av_assert0(opaque == data); +} + static int av1_parser_parse(AVCodecParserContext *ctx, AVCodecContext *avctx, const uint8_t **out_data, int *out_size, @@ -60,6 +65,7 @@ static int av1_parser_parse(AVCodecParserContext *ctx, const CodedBitstreamAV1Context *av1 = s->cbc->priv_data; const AV1RawSequenceHeader *seq; const AV1RawColorConfig *color; + AVBufferRef *ref = NULL; int ret; *out_data = data; @@ -69,6 +75,11 @@ static int av1_parser_parse(AVCodecParserContext *ctx, ctx->pict_type = AV_PICTURE_TYPE_NONE; ctx->picture_structure = AV_PICTURE_STRUCTURE_UNKNOWN; + ref = av_buffer_create((uint8_t *)data, size, dummy_free, + (void *)data, AV_BUFFER_FLAG_READONLY); + if (!ref) + return size; + s->cbc->log_ctx = avctx; if (avctx->extradata_size && !s->parsed_extradata) { @@ -171,6 +182,8 @@ static int av1_parser_parse(AVCodecParserContext *ctx, end: ff_cbs_fragment_reset(td); + av_assert1(av_buffer_get_ref_count(ref) == 1); + av_buffer_unref(&ref); s->cbc->log_ctx = NULL; -- 2.49.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".