From patchwork Tue Dec 12 07:32:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 45086 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp3428876pzf; Mon, 11 Dec 2023 23:33:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IGxVYpxO4SyCo3VJi1KxKJ01Uoou/5lHvj7uDdawKZSVjmN+a4eGADIoCHMyZ2vralvcx+3 X-Received: by 2002:a50:c099:0:b0:54c:c31d:a808 with SMTP id k25-20020a50c099000000b0054cc31da808mr7098725edf.0.1702366397918; Mon, 11 Dec 2023 23:33:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702366397; cv=none; d=google.com; s=arc-20160816; b=IrjQ/PKzfzwIbBxfR07mpw0eAO/ZT41ZWMyyaJWVrs1BW0mjbfbHqd2I2pv8TxOJrm trHHwFK4fUFei1qvwy95+hNtRt7hPIUVF6v/LoVBks1cFj7CcWQrILzHI8CLISrUOt3I 9bnQodSZmV91L+LSn7U7wLb4Ju7WZXIj44rhdY1eF8GNEyMbivz+bmS8JIRmfZStYmdY DvYJHkFciMpVLr1qBhaEKsbfG5wqDDtsO+reRssSQTwbzntFJrOxItfijsMV1kRivf0P h6H3Y8j0p50sB8/GfgR7TO0h0MKg7HJMQjPU7fwaxbNfknS53l5ecLd+MVFAt6rhp130 fENQ== 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=ztWxAcNGEHkuI5I2kddernxXRHKziADilkz3yisMyxw=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=NHCbC9albNtkLIfLLWynqM/FRa/2BBFBXq88f+9C7BIAD8FIwPJtXxmZ/frSBY3XeJ E1KwjC3qGCIBRxWxGaTHb5sIZGkNcVsIgMLGKsdVtG1nHb18JKYgGRCq5QBecZEtdsAt 8AzGIh+3rMNV2Sb/HdCR2Pno6VJcTGj6IyroBlL3e4QOHXMur62w3/8FNDSY7+tz7U/V 7JFtuWjFiWAmyfJEfnalJJrcCWjHYNn0fQrAgN8oWmjcU1hZzTGK+EQ/TDo3w85AumUA ILXXElAnp3MQdbmUE6S1wNzu4EjP0I88fwFp3b56e25Jk1qk0CfXopvlaNMWqBq3xugw OJLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=ibQXRm17; 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 bo22-20020a0564020b3600b0054d4f45e134si4209321edb.686.2023.12.11.23.33.17; Mon, 11 Dec 2023 23:33:17 -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=20230601 header.b=ibQXRm17; 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 D5A5068D1C0; Tue, 12 Dec 2023 09:32:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EE2AC68D176 for ; Tue, 12 Dec 2023 09:32:49 +0200 (EET) Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2ca208940b3so67115651fa.1 for ; Mon, 11 Dec 2023 23:32:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702366369; x=1702971169; 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=EO+mleLRg0ZanvEtH0RaIM6nWTMxmSRawrAwrWYmU8k=; b=ibQXRm17/CbabFYMORZo+jqnF0F/RKSc2A7qLpKKVg3EwQTn0+WaZrZmgcoul+Jh3B xRPnXeul5YKifzG+b1vyPElKoiwEx9rO0II59W5sU9B5IL3IMkGF/B5rkynFGLZkhgWH /EettXjPgTVj10Kz1/zhLTX3fYVmpME7mrpqoudm8uMXRDtNCaEPsdQDbKXxEHvIPM6V oGeFn+emC/yZDCzbFlGQWcPaqoe9OlC5OaZkO2k79eUoiYUDzQf6j46mYlEvqpsaLhDx rFfM0yaLx+6Fec7Dw1j+nWzvt3T6HfVgwpOm40v5Tb7XrIaiGihDfDFFl6kToiJPYRX6 zpAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702366369; x=1702971169; 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=EO+mleLRg0ZanvEtH0RaIM6nWTMxmSRawrAwrWYmU8k=; b=PNLT3hvz7C1LcyK6sGskMmXzuGpNFNeCWgUcfGjXEmwYCOX9QBCNGCFhaABQb1oaeU yhuDzpEDFaPysAyNvtfVLCG8CBo8PUIURbqmvjcgVoLMPkYPZr2jsGSBFTLfDvFzaC50 MpYJx84RCXyOs0hhpdlI/K6+KOT4cRdTujAMZvvjBi3prj0v7exvcVX+WcGVnozDBE+I TFTwr8g3W38y4eNB3CQGRR65AFFXMeDEezl2UvvSHqBIEz5HFYlzXl/hoeUy5QSRT39A hRV/5cDg9D69HAOAw8VBho1t9m9UDWiBwegHYtpNnzmneK6Z1q5Ia6UWyWPYW/dgIvdn Rmyw== X-Gm-Message-State: AOJu0YzG4ZtsBF3lxnL001BnQ5SfE8Lz1NNPMwkEEO+whG/4w6OFsXOu zeJ9/gcE2+b+TsDQijEsUAoleo4/yqg= X-Received: by 2002:a2e:a4aa:0:b0:2cc:2640:b740 with SMTP id g10-20020a2ea4aa000000b002cc2640b740mr814310ljm.101.1702366369169; Mon, 11 Dec 2023 23:32:49 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id a18-20020a2e9812000000b002c9f3ba5c22sm1458045ljj.118.2023.12.11.23.32.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Dec 2023 23:32:48 -0800 (PST) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Dec 2023 09:32:26 +0200 Message-ID: <20231212073242.10967-3-jeebjp@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231212073242.10967-1-jeebjp@gmail.com> References: <20231212073242.10967-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 2/3] avcodec/avpacket: add functionality to prepend to AVPacketLists 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: gIFT6NhU4si9 From: Jan Ekström Signed-off-by: Jan Ekström --- libavcodec/avpacket.c | 20 +++++++++++++++----- libavcodec/packet_internal.h | 2 ++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index e29725c2d2..e223ab63ef 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -540,6 +540,7 @@ int avpriv_packet_list_put(PacketList *packet_buffer, int flags) { PacketListEntry *pktl = av_malloc(sizeof(*pktl)); + unsigned int update_end_point = 1; int ret; if (!pktl) @@ -563,13 +564,22 @@ int avpriv_packet_list_put(PacketList *packet_buffer, pktl->next = NULL; - if (packet_buffer->head) - packet_buffer->tail->next = pktl; - else + if (packet_buffer->head) { + if (flags & FF_PACKETLIST_FLAG_PREPEND) { + pktl->next = packet_buffer->head; + packet_buffer->head = pktl; + update_end_point = 0; + } else { + packet_buffer->tail->next = pktl; + } + } else packet_buffer->head = pktl; - /* Add the packet in the buffered packet list. */ - packet_buffer->tail = pktl; + if (update_end_point) { + /* Add the packet in the buffered packet list. */ + packet_buffer->tail = pktl; + } + return 0; } diff --git a/libavcodec/packet_internal.h b/libavcodec/packet_internal.h index 52fa6d9be9..9c0f4fead5 100644 --- a/libavcodec/packet_internal.h +++ b/libavcodec/packet_internal.h @@ -34,6 +34,8 @@ typedef struct PacketList { PacketListEntry *head, *tail; } PacketList; +#define FF_PACKETLIST_FLAG_PREPEND (1 << 0) /**< Prepend created AVPacketList instead of appending */ + /** * Append an AVPacket to the list. *