From patchwork Thu Oct 24 12:26:51 2024 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: 52477 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:1c41:b0:48e:c0f8:d0de with SMTP id im1csp328995vqb; Thu, 24 Oct 2024 06:04:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVepYVnhAWsNDRtAVDuDJZyGsQ0mENQE/vd+lmtzpDwlNk3rQnjem0sZG7gkeAAInECuYjrscDNKmDdsJ6eTEMI@gmail.com X-Google-Smtp-Source: AGHT+IGN3qPEMA4DgFvQ1p0bB5UrpBUPO53/manTzQe0jqi6qPC8tnTLwVgu0pGc1VK6s9LbjWrh X-Received: by 2002:a2e:9785:0:b0:2fa:fd41:24c1 with SMTP id 38308e7fff4ca-2fca82a02a7mr9619771fa.45.1729775050651; Thu, 24 Oct 2024 06:04:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1729775050; cv=none; d=google.com; s=arc-20240605; b=WdFf6sIKHidFBt7QmQlk/JqaaRLYs29QBROxpYof3bftQV9C1BXf2Pa95cXMzu1fyE ypq7xaSSG3ehIcrOSn005sEl21egNwlib/9VYuzVRnGAvB+RItxOK0SMauS15LDf7ZOD a5WxDoFCMgeo+6ssy3oCmUQObxLWx0+sdCTdw3AtMNyQXCz7JIwX0HmtBJy4vtPwaGQm JR+b9U42HMnqFig9hESlccZv4wb8Ld2cSyeMJAsBeLvqHtF+cVRJ9Y2xIk6fLqzvW4tZ 5Nmoauq9HZq9PBwlbzEq0i4kabuPEZBs/aotehHuHh3JMmwnBP8fENdOkwQ4HRfiHfJr 3fMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=XDSTGa36RAqu50opXmgxTdGU259n5PbXFodWnzAyh7g=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=QhyOQsZrht/Obbm1Nxkw0+5C1ZNq5zDqH5iXwU+iTuzNE8F24/4Cbg+zOpJ7yWVfGy 2C+sxPSD7nafJ0zEYGe1ouEoSDVpqFlkSLjmBuluH7imPZ0jgLsz+eIvZiLx7Ah08zus S4ceacR0Gt/tGfjGuZc6G8S+qCsN0eGmYf+IylZ2+wdgh84kIHuXsgMrBv5grWJmawSv eHSimtz9FXgU1u5Z1kS8Zi+MXAd8jVbP70Z2MDbqZ+F8ySAWObkGKocTlZtNPL4KuoK0 MoUO4+UD+lZtiV2DgUYNHS5F5ySHXVNhcq8UriXXc2087l55z99Nd7jbfK349Ql2s4nz nQ2A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=SvpVLwY1; 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; dara=fail header.i=@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 4fb4d7f45d1cf-5cb66a67dd2si7223657a12.147.2024.10.24.06.04.07; Thu, 24 Oct 2024 06:04:10 -0700 (PDT) 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=SvpVLwY1; 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; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6400868DBDB; Thu, 24 Oct 2024 15:27:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E026268D910 for ; Thu, 24 Oct 2024 15:27:07 +0300 (EEST) Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-2fb443746b8so8459631fa.0 for ; Thu, 24 Oct 2024 05:27:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729772827; x=1730377627; 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=mpGY/MoWphUIgptkdPkIJacs3twhk57neG5pbP7Nbqg=; b=SvpVLwY1x8takvc+URzc2e+0YLNKXYmdrKoemUosoYxHDgTSeLirYYqfAWFvn1UbkT 20Z0P7qB+QUCVEgva+VaarUORW5TsEUPoD1cIbwehWbbPBWia7OmV9ggRuJe4ZCjRytd xwJVNB6Xyrjw8Ig/QLdhJ4WOquC0e2iVN0udD3uSPpmREBC9tG8diUpe9QfzqHRx4UCm 9Bhl+WR2EDFkRcleV9RbQsDast4x+/CBzpocaebVECfKsdmMwl95tODpGaiVUQy/ADpa TY3iJ8Av+KpZ3gcjrkUrsHfe8LsA5imGMGeAEKuuI082TNmXfxnjHxOCrXZt82QtPySh GQtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729772827; x=1730377627; 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=mpGY/MoWphUIgptkdPkIJacs3twhk57neG5pbP7Nbqg=; b=uN+wrpwDmp521EiZzOTmbu0RX8CFsdR3GTpdYPzZyLfA6r/Hb0vuX9+DHo2MkyHP7J wcubihhx9Bk2cObNWI4C1saCbbTFXV2YOCj9iwViL4Yc0laab7F1BZP0Kb+Og6GojNEr gIMYW2uvUcNHKAXaVsFWBBhNJuXOG8C3LX63UZ6BhB3x1HTUYv6QKPiYmmt2glcSbDeA qRXSdxFXNhcxfyXsOzxVCAJV0VNJBC2cry/EGxsANbWA+4Cv6/SDwikJ0F2nKyDSAokJ bpNsXtigSIEDv1RHU17hUtespFnr0oau3vfmQZHNK1b9KV8oMP755o6A7TtBwcToeQtv 4YOQ== X-Gm-Message-State: AOJu0YxcFMXqokWo3h2l5hprOXhzPDWxq4DZALwS4nvUwyxkUiNPd7eY of7c/kRXU0d9UynX1c7VBtPawf+QupCAIZbJaFiVIePXJBe66qB86UVlPA== X-Received: by 2002:a2e:be87:0:b0:2fb:3bc0:9c7c with SMTP id 38308e7fff4ca-2fca822ffefmr10730391fa.25.1729772826817; Thu, 24 Oct 2024 05:27:06 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2fb9ad76206sm13817991fa.52.2024.10.24.05.27.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2024 05:27:06 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Thu, 24 Oct 2024 15:26:51 +0300 Message-ID: <20241024122659.676104-3-jeebjp@gmail.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20241024122659.676104-1-jeebjp@gmail.com> References: <20241024122659.676104-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 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: 3nTc6yTooVr2 From: Jan Ekström Signed-off-by: Jan Ekström --- libavcodec/packet.c | 20 +++++++++++++++----- libavcodec/packet_internal.h | 2 ++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/libavcodec/packet.c b/libavcodec/packet.c index 381001fd65..a6302340bb 100644 --- a/libavcodec/packet.c +++ b/libavcodec/packet.c @@ -546,6 +546,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) @@ -569,13 +570,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. *