From patchwork Fri Dec 23 12:51:56 2022 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: 39743 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp451062pzb; Fri, 23 Dec 2022 04:52:26 -0800 (PST) X-Google-Smtp-Source: AMrXdXvSwxnnKYMSy7Rp8/jBkBDoQdtJ95bn6XTAMTScO3vtHgB7EwC0bew1gn52j2ZmIxQyBhoM X-Received: by 2002:a17:906:fb9a:b0:7c0:996b:be7f with SMTP id lr26-20020a170906fb9a00b007c0996bbe7fmr7736493ejb.29.1671799946279; Fri, 23 Dec 2022 04:52:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671799946; cv=none; d=google.com; s=arc-20160816; b=mumCu0B43rr7IsMasuLXTb6ryfLo6POjWrtQQMBrsE8GS4ZwdMtoai9CegmcZQwLOw 2LlKHa6AL8LrupWP6+T90GX/78Gcxvihes39mgsY/uI1uvwVkDBNiG864hAuFjF8RGDV jjq8fC1RVFQ2xxUcvMiMWRRWSxBLaIMkvoxi5AHJzOO+BN6NCMdlcy5x/7VKfFdHD/yb 7sN1QU3ZdK0SvRV51BUrSr8VRq/5rZQFoE5gYMgbwOMky+vD4ZHtL35njioY9spYUeNB jBJhgUS9xYiFcF2Trtz89PzOiZVlCpo+tg81DCho1zZag/iEdIBqX/XkwBfulE/pS4lT s8rw== 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=adHDRRw+r7MliiA73eNWmM1elE51/HOgyLP0sqZN0LI=; b=LEAPpmzbnxLSfnsCJZmevpcSN+dJB0mVO1PpTvp9Qr/364YS/8y5hoDR42vWQ1PNoD k2/MFOfUhV7Gtmq3LQ2TfvJnsYWZC8POOt/t7MaHcR5YBrRT3jj2R0VpNuISoiTzVVQ1 g6wmXj1IPu39On0ap7Ee+vuA+i7MAupld387qyEEnfEsU0K+pjKmRmllo3nUjmP2Jjqp xFqhptnHMp4K/G8PxXJRl0O5ahCb2XbP4Bqq8y7m4MdeMQIG/YvKjoxbOjIq1W9cS/Gw K3SjrtQgdKzCi7B4U42d9Wy2elO6+wvYODLYM3FrvJ42RgOfHN4dpBSC5l4DjkAt7al8 0zjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="h/bMGo3v"; 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 hv9-20020a17090760c900b007adcc8fb7a0si2681832ejc.399.2022.12.23.04.52.25; Fri, 23 Dec 2022 04:52:26 -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="h/bMGo3v"; 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 96F8168BAA5; Fri, 23 Dec 2022 14:52:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5E41D6806E2 for ; Fri, 23 Dec 2022 14:52:06 +0200 (EET) Received: by mail-lf1-f52.google.com with SMTP id g13so6993152lfv.7 for ; Fri, 23 Dec 2022 04:52:06 -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=ild4DpfDhQ/baFdtGqJRpaAupEekerz5r5cWYrp5zKg=; b=h/bMGo3vY+E5dvsrUEROpa/W6oib3pmdIzudTzi7K5Trgwnbk7+FNK3Mn2vNI7Kz+K CO162foptfJ93ZHlG1BPdfkOtt6aKREAhfNDR4b6Lz3kCzNfLwlmmNkku6PLF1WpxbKo gS5yyYPefnCYvgnWj1/PHoFAs6B7bjk+v7UyxPl6n5fZFKw+fkeBG/4SBm5s5b6g/8bZ P8Fzq473sbPxSRoDABXey00fuX4pwR0oTgFOEP1y06tBVG467VPnPHcjK2p6gBuoj7XP dJTka7mpK5j5FRIkO0Hq3VoNe2MsBKtzrPQ+as7R7SViMk8APNN646pEF+dZwExGdD/I vssg== 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=ild4DpfDhQ/baFdtGqJRpaAupEekerz5r5cWYrp5zKg=; b=th5rYWUW7Fj+86OMyjxurkBz+zM19sg2u6coMEFNkFVuSGAiMN5vv9Ku0d2tmsCwZ0 d6YecBG1cbZ4bQ37CzQBu4KMYx1UU+EWKR/mZiArHNVqZxLX5D9sKJwD2wVi9mZRN6yG cW48xNESCeA7aKg2ArKk7QXBuZtlvr8CS1dV4Q2O4+XoH+Q0HQdYemP09Qjy7PaUMTCV 4QMHHl5ffYD/FoePHSSE8wr+UdjBr3nZ1W9HBM0VMXxxHMZg23GdJz96jztio1Uxk6ZS JwpT5UrA8wqQbFzyV34Ibx0Hcr4Y+EnA+Qpvb8HUYADkEitMeyR28NVv89qjFoahwr3h 9wLg== X-Gm-Message-State: AFqh2kpATrLVd53QJX8UJDTtyW6hBM1LWE/oQrz38qWg4KjDnTJLSkLI Yc84RHW1nEdiEaE4WFT8Ki2JoQuX0gw= X-Received: by 2002:ac2:59c9:0:b0:4c4:6a8e:24 with SMTP id x9-20020ac259c9000000b004c46a8e0024mr2507553lfn.5.1671799925703; Fri, 23 Dec 2022 04:52:05 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id x14-20020a056512078e00b004b4f1ea713csm512600lfr.73.2022.12.23.04.52.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Dec 2022 04:52:05 -0800 (PST) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 23 Dec 2022 14:51:56 +0200 Message-Id: <20221223125157.83340-2-jeebjp@gmail.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221223125157.83340-1-jeebjp@gmail.com> References: <20221223125157.83340-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] 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: JN156OmaSn+b 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 5fef65e97a..01eb9896d5 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -539,6 +539,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) @@ -562,13 +563,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 92a0d4e6d5..43dc6222ce 100644 --- a/libavcodec/packet_internal.h +++ b/libavcodec/packet_internal.h @@ -32,6 +32,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. *