From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 239334C5A8 for ; Tue, 6 May 2025 14:20:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4D24868B76A; Tue, 6 May 2025 17:19:50 +0300 (EEST) Received: from mail-oa1-f43.google.com (mail-oa1-f43.google.com [209.85.160.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2AEF568B5E3 for ; Tue, 6 May 2025 17:19:42 +0300 (EEST) Received: by mail-oa1-f43.google.com with SMTP id 586e51a60fabf-2cc36b39545so2689129fac.1 for ; Tue, 06 May 2025 07:19:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746541180; x=1747145980; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1tOcUxs3dyPis0UO7LMMLXqDLBbgAN5mgK+xL4cDfBM=; b=UZjHXfY6dbD0DOK/VUGaR2Ic1R7WIUWdF4IDqXpAQ6QQPD89DnvzWFWFsdZ03NjRB/ 1R6mTf/m2v4dNoSvQVXpAdaf2HfvZc/ifeSPeb+XEh6UfDxJcYyFiCndgiO93iJftHNV nh9EI++YhziXClDdazQebj+sGlcY+PFkBy/7DD+3xFzWC09XL77uBgNjzsqB5/kGA6g4 2a2k0rEAo1bdl8qL0QUk+i+gOz5tQxdTrFigOUP1PrbBhQLW7xdkD4JpPp8iCGYwiNLV H+7MCX0d58/TAn+6PzJX+xka5iQSy6iSFFWtMYyzxwMckGAWQTs4sM+tBhJoRIoAF1H9 8gIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746541180; x=1747145980; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1tOcUxs3dyPis0UO7LMMLXqDLBbgAN5mgK+xL4cDfBM=; b=G6H2qi8DX4XZ6/6MlzYw7zNE5jrJ/g85/Oq7T34oy76WDNsNbO6dPlmlq/bnZaVrAh flUGdH1bt9bY2251OqPxCw2dWhcirnft4AXpMWBLm0Wirp3RNp8i1jXHGOvsKgdSI04H pvpdRHpznz2bbb6uBThScqe7WftGGxZmyQJ5v8GO/NsmYeLEddiVYr6Tak3s9KiVbqjo tS1KKKCzWM7cDV2XzRBZCDokyn72NdnaQu4gvCLlFCY6rEAa1MRhNWfJBDhMIZgqsrCu mvCRifun0KVuN38onPnO/YLUEToWMiRfIqXG8hw0RrCILG0OazjbyqwPxdJ3X18Ne/Jy 6bOQ== X-Gm-Message-State: AOJu0YxBRBbKR/B6FGXKagCqWlu8w/3w3CVYig/6swoS6Z4svk26YdSL Hpn85g9oYSn9I0JREtAi6QLyrqGl3Gb1VFeTwZ+udTUtbUVe+uX9fzLLpW1c X-Gm-Gg: ASbGnctt559tEGbkDISOAV353Q2btcKBHiIeRj3MvZ6BapTpP65aWZt2jKPwDmLN1H0 0/nTQ3kJlTcEr94UsyrtgL+VH6r4zXonY8FdfYZC9dOWYUgQFYc5dYh3tUzyo+etP3URcUtijAy nBqt4aMFIoRgPJukq5woFHjWIA0iR6OcE8qYlMeig/zm9kV4UR56SQFFHzV/6vrdXQeQ/nOHfyn DnOkIbrKQjnxNWccWRHlK00nbaRSNfWkm3/01y4TXxXrW+SgzMjF1L4CUt3T+McnBM15nfduDXK j+eZAcPSsXACKmNilv8wP1WdYlOHLU4zBWNVKp3Cb80dkoeKAO1vk62OrRRn79TbKWvxPCY8Fdc d1XhYNSydo1R81nnCr8WECsur5Kdd X-Google-Smtp-Source: AGHT+IErcU6CEu2UVcegeWZEz0tv+fkTy7hKQVcF1q0b+EWsuMXZMrhacTNCudLRHVIxsu8y6Tvh6g== X-Received: by 2002:a05:6870:af02:b0:2cb:d32f:2f18 with SMTP id 586e51a60fabf-2db386fb975mr2125262fac.16.1746541180375; Tue, 06 May 2025 07:19:40 -0700 (PDT) Received: from macbookpro.lan (ip72-211-125-114.no.no.cox.net. [72.211.125.114]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-2daa12508ccsm2713442fac.43.2025.05.06.07.19.39 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 06 May 2025 07:19:40 -0700 (PDT) From: Romain Beauxis To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 May 2025 09:19:30 -0500 Message-Id: <20250506141932.73142-5-romain.beauxis@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250506141932.73142-1-romain.beauxis@gmail.com> References: <20250506141932.73142-1-romain.beauxis@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 4/6] ogg/flac: implement header packet skip in chained ogg bitstreams. 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 Cc: Romain Beauxis 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: --- libavformat/oggparseflac.c | 28 ++++++++++++++++++++++-- tests/ref/fate/ogg-flac-chained-meta.txt | 2 -- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c index f25ed9cc15..d66b85b09e 100644 --- a/libavformat/oggparseflac.c +++ b/libavformat/oggparseflac.c @@ -27,6 +27,8 @@ #include "oggdec.h" #define OGG_FLAC_METADATA_TYPE_STREAMINFO 0x7F +#define OGG_FLAC_MAGIC "\177FLAC" +#define OGG_FLAC_MAGIC_SIZE sizeof(OGG_FLAC_MAGIC)-1 static int flac_header (AVFormatContext * s, int idx) @@ -78,6 +80,27 @@ flac_header (AVFormatContext * s, int idx) return 1; } +static int +flac_packet (AVFormatContext * s, int idx) +{ + struct ogg *ogg = s->priv_data; + struct ogg_stream *os = ogg->streams + idx; + + if (os->psize > OGG_FLAC_MAGIC_SIZE && + !memcmp( + os->buf + os->pstart, + OGG_FLAC_MAGIC, + OGG_FLAC_MAGIC_SIZE)) + return 1; + + if (os->psize > 0 && + ((os->buf[os->pstart] & 0x7F) == FLAC_METADATA_TYPE_VORBIS_COMMENT)) { + return 1; + } + + return 0; +} + static int old_flac_header (AVFormatContext * s, int idx) { @@ -127,10 +150,11 @@ fail: } const struct ogg_codec ff_flac_codec = { - .magic = "\177FLAC", - .magicsize = 5, + .magic = OGG_FLAC_MAGIC, + .magicsize = OGG_FLAC_MAGIC_SIZE, .header = flac_header, .nb_header = 2, + .packet = flac_packet, }; const struct ogg_codec ff_old_flac_codec = { diff --git a/tests/ref/fate/ogg-flac-chained-meta.txt b/tests/ref/fate/ogg-flac-chained-meta.txt index ad20ba935f..28e22aa29e 100644 --- a/tests/ref/fate/ogg-flac-chained-meta.txt +++ b/tests/ref/fate/ogg-flac-chained-meta.txt @@ -5,8 +5,6 @@ Stream ID: 0, frame PTS: 0, metadata: N/A Stream ID: 0, packet PTS: 4608, packet DTS: 4608 Stream ID: 0, frame PTS: 4608, metadata: N/A Stream ID: 0, packet PTS: 0, packet DTS: 0 -Stream ID: 0, packet PTS: 0, packet DTS: 0 -Stream ID: 0, packet PTS: 0, packet DTS: 0 Stream ID: 0, frame PTS: 0, metadata: N/A Stream ID: 0, packet PTS: 4608, packet DTS: 4608 Stream ID: 0, frame PTS: 4608, metadata: N/A -- 2.39.5 (Apple Git-154) _______________________________________________ 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".