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 77DC1432DC for ; Sat, 18 Jan 2025 17:54:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5C18E68B3B5; Sat, 18 Jan 2025 19:54:49 +0200 (EET) Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E611468AFF6 for ; Sat, 18 Jan 2025 19:54:42 +0200 (EET) Received: by mail-yb1-f173.google.com with SMTP id 3f1490d57ef6-e573136107bso5359310276.3 for ; Sat, 18 Jan 2025 09:54:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737222880; x=1737827680; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=6cUxjuq0SLWxWynHfDBRkyBxcKvxZn5Ay0kvOEtfbKU=; b=Z9geEhbz8zfxmuUV6iszporsZ2Ogbk/yBcYfAdFY/WInuGhj6cXfYStfdPm+RdMbbH mcH6oVLYHuH2iw5VI3JY+auJBTBMZicBR/GQiBgIMwMSvsjKX7MQ7QWGvFuxSXwTAnd4 Qk3MfZBoXSicK/yTC3ile/xWFD0WIsi7j7JwRkPoLkp9W1LGHGKnnkBVsOQOOCWN9jXq JlOxKp+hrryLQWVg3EGROu/ewKQI6qfXV/L2wGE2AdgJ74NAMQpDw7OUInws+XeoZFsb MCkw3ukPNcXpNA10iXEFsu7U8hFaHoSxtZAv7M3zaXR3AJu4AYZNqmfTKfs0Vm/NuEGl FN6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737222880; x=1737827680; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6cUxjuq0SLWxWynHfDBRkyBxcKvxZn5Ay0kvOEtfbKU=; b=HKTm8kUBpdXNv8T8GvlI4Z12CpT+IbHpveZ3eT3D4ZF/+5dbJ4uFD5KZu5hcCj8CxC Z5v1RJJ97/WJC0y8CQsgRi0jV4WeDUR8GDxga3NuqMT5TB+ubNOROuioqICYjo9vYVuo YKhY9iAdmjG81mGKq4+bgg2EtiW7idbuY7cSUlzPVHaDCxTB+QwH4lmDoZ5WhsU5SVoF WWUM7wtCmuc1KRCD9NBA3bryHVbSF5QzIt3w4XnOlt5L3hPskntN5UnMy0LfS6rAlCfG IWB1DGZsM19WC6nEjFc0Zp3cUYgXOk05Z3QfBzVskzJhbhRetqRjNaptrqY2GYtwFnT7 vn/w== X-Gm-Message-State: AOJu0Yzfv3r0IAqg6Jzu/Du6eTeB8H11Ft5An3Z7uQNOHAtsYvM5s1Lo IgD0VvYNwR5y2iurkbvknwUFdHtIiRFbyxB5EmLvYK2YjEkgQfu/5HIA3Q== X-Gm-Gg: ASbGncvdAuXUmKhZYkF0dvxzrszWL76Yhqh/51+KC6ufrGXTz2GmcnAykQC9vkeA3F+ nhaYdKig1/1PImk3XSTVUonxQHEYBkAISu2Kn+IGSARYIyObpz9FFRMY3csIVW00erOac1JeUoV klSi41zbTwvMgNFdGZt/MDgtyz+NirW9mQoJou5gyBbHuAINI6tz0k/4ecD+IugSniYzWrc2T7G 1vzfNk+I0iiTlVqyBlXwxbIwMQQtWeLqK37l/JFCAkael8tcm5d7ZBmosuKbJkEDXo4zC8/LICr qIp+ihGqWtgAuctCIkUm3HkYi0iqMNW+9cg= X-Google-Smtp-Source: AGHT+IHGS22QtPj5KEFZHEWAG2/kBtqLRChLJsLRC0PdzpLOmZv7s8uTo7CiRctBvEQT8sIcp1voZQ== X-Received: by 2002:a05:690c:c94:b0:6ef:61b9:e003 with SMTP id 00721157ae682-6f6eb93f127mr54438837b3.36.1737222880591; Sat, 18 Jan 2025 09:54:40 -0800 (PST) Received: from localhost.localdomain ([2607:fb90:e330:709c:b480:3186:2daa:8367]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6f6e647e885sm8557397b3.67.2025.01.18.09.54.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 18 Jan 2025 09:54:39 -0800 (PST) From: Romain Beauxis To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Jan 2025 11:53:13 -0600 Message-Id: <20250118175312.55761-1-romain.beauxis@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] Parse ogg/flac header again after processing a new chained ogg bitstream. 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: This patch makes sure that ogg/flac headers are parsed again when encountering a new logic stream inside a chained ogg bistream[1]. This patches makes it possible to retrieve metadata in chained ogg/flac bitstreams. It is particularly important because ogg/flac is one of the only (if not the only one) lossless container supported over HTTP/icecast. The patch has been tested with various ogg/flac encoders and appears to work fine with ffmpeg. 1: https://xiph.org/ogg/doc/oggstream.html --- libavformat/oggdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c index 5339fdd32c..d986e19817 100644 --- a/libavformat/oggdec.c +++ b/libavformat/oggdec.c @@ -239,8 +239,11 @@ static int ogg_replace_stream(AVFormatContext *s, uint32_t serial, char *magic, os->start_trimming = 0; os->end_trimming = 0; - /* Chained files have extradata as a new packet */ - if (codec == &ff_opus_codec) + /* Parse opus and flac header on new chained bitstreams. + * For opus, header contains required extradata as new packet. + * For both formats, this makes it possible to read chained metadata. */ + if (codec == &ff_opus_codec || + codec == &ff_flac_codec) os->header = -1; return i; -- 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".