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 965F04D124 for ; Mon, 17 Feb 2025 16:20:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E1D7368C124; Mon, 17 Feb 2025 18:19:51 +0200 (EET) Received: from mail-yw1-f181.google.com (mail-yw1-f181.google.com [209.85.128.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 572D968C0F5 for ; Mon, 17 Feb 2025 18:19:44 +0200 (EET) Received: by mail-yw1-f181.google.com with SMTP id 00721157ae682-6fb2a6360efso29870647b3.0 for ; Mon, 17 Feb 2025 08:19:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739809182; x=1740413982; 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=BAIMMHcd586c9k8KjosYYF9GcU+MfCh9AbhLMxZelek=; b=ELpupx7IavgB8YJXIdojwnhRQo6BVrq4V90nCeVUkJIqCIsqazGFm6CC3hLl9BIue3 zHWr3SgwUgwLrI1w93R45xn9f+Z/m1uZWYoph/um7VMhT4Kjo0rO8O3LCiGAcgxTTaDP FHgafc/Q50q3T8mdGBvgYbsjGEzslqQwTueM+tA71GGzc0H8SBlb3FIPccx3eVftq5Bb jlDxwEH2s+xXQTSEk1kZaufBvl8GRPfUyzVO/x/b7fQmEyDtPPl2DtaknLSc2wAekwx+ qFRxKCvwVdVDeiksH2vxXRZra6CF9pV+NzZu+0+Htz05KyJeu5JnLaePR2lM+s3GjP8U mtaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739809182; x=1740413982; 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=BAIMMHcd586c9k8KjosYYF9GcU+MfCh9AbhLMxZelek=; b=dTxHKTDAA+08omhAtAB47+EUjUnYcs88K4bvFUfjBRQk/VBdZ/POpfQaf2mQYKZwiD KmqoppJjnBzyym/GSgNiTWmVrmVhS9GQ0SOU1XOnBOu/H7bnLToPSZFuaxBpB0Is+dNe RbhmKGBY/IeiQ7FDrwHu81fTAVL5iICk+ePofG1ZnFuvW9br7zFzU5AJzWb9Kl1FWGzM iR4C6VJ4k0EG1IFL0NY5hLSeU4Fbz99Lf2VYbckZnQuLk9+gUtOxgvZpsz6+kp8rXVF1 ydx3IBQWhNes5+VbcKPokVBWuy3mrt8unJZCANAAdsTR2qiR7YbcTz9kRNxsnLhlldQC 0cFg== X-Gm-Message-State: AOJu0YyAycIFF+H8ZfCCUXIiRjA9qlkIw9Sq7ZTkGj3BxJmFLKKmskE5 FILx2xS5RZ/MylOslsEV9ePjQu3WHUIZnnlyCxToNIlsdB9Km7m+e/gmMg== X-Gm-Gg: ASbGncvzbzsWjo0ePdKtjwFlgv00lwDA/yR47/a+JVv3Eb1VSHimZEXt3Sb3wFnsxe4 4WZZ7lV6bK7QapGX6kDuCfhLLPOUW7LtCCno8c9hZyHWxQ1DBF4b2ykBYppqW9JKW2GRkDg1M6G 5sQ41dzRWB2VQEeXvGCrMKqEL1V17vj6ZLxo2uObCe3QDrnsDwSFNI1lELCR/8p9pexB48IKKMm SWE7iGVsq7PXicgD/dI6IIJ2Lg1JJUnVyOeJEi3PLb6sLbId14Y3W+LuPHUhklCgSolqJpd0MAE w3JRKKQnB/21Q5Avq/E5xliwDs3IPg8syPhtNAaWGoqOiCRrD4CWJg== X-Google-Smtp-Source: AGHT+IGVrBFEo5DU44Wg54ZGlOUhXUpE2WX6VSRFJQn/j1AGHbw0dVWqk/jxUGxrcs6CQjUpkzYVSg== X-Received: by 2002:a05:690c:4d81:b0:6f9:72a9:f7cd with SMTP id 00721157ae682-6fb5827b4d6mr81894977b3.9.1739809182146; Mon, 17 Feb 2025 08:19:42 -0800 (PST) Received: from localhost.localdomain ([2607:fb91:fef:2a0c:58ec:790:2715:af11]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6fb3605b553sm21488177b3.30.2025.02.17.08.19.40 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 17 Feb 2025 08:19:41 -0800 (PST) From: Romain Beauxis To: ffmpeg-devel@ffmpeg.org Date: Mon, 17 Feb 2025 10:19:20 -0600 Message-Id: <20250217161921.76121-6-romain.beauxis@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250217161921.76121-1-romain.beauxis@gmail.com> References: <20250217161921.76121-1-romain.beauxis@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 5/6] Parse comments from secondary chained ogg/opus streams 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/oggparseopus.c: Parse comments from secondary chained streams header packet. This is the same processing as with ogg/flac except that is done in the `opus_header` handler. This is because, in the case of opus streams, the header is currently parsed again on secondary chained streams so this is where comments have to be extracted too. --- libavformat/oggparseopus.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/libavformat/oggparseopus.c b/libavformat/oggparseopus.c index 218e9df581..76c51d2961 100644 --- a/libavformat/oggparseopus.c +++ b/libavformat/oggparseopus.c @@ -29,6 +29,7 @@ struct oggopus_private { int need_comments; + int comments_parsed; unsigned pre_skip; int64_t cur_dts; }; @@ -43,6 +44,7 @@ static int opus_header(AVFormatContext *avf, int idx) AVStream *st = avf->streams[idx]; struct oggopus_private *priv = os->private; uint8_t *packet = os->buf + os->pstart; + AVDictionary *new_metadata = NULL; int ret; if (!priv) { @@ -81,7 +83,24 @@ static int opus_header(AVFormatContext *avf, int idx) if (priv->need_comments) { if (os->psize < 8 || memcmp(packet, "OpusTags", 8)) return AVERROR_INVALIDDATA; - ff_vorbis_stream_comment(avf, st, packet + 8, os->psize - 8); + + if (!priv->comments_parsed) { + ff_vorbis_stream_comment(avf, st, packet + 8, os->psize - 8); + priv->comments_parsed = 1; + } else { + ret = ff_vorbis_comment(avf, &new_metadata, packet + 8, + os->psize - 8, 1); + + if (ret < 0) + return ret; + + os->new_metadata = av_packet_pack_dictionary(new_metadata, &os->new_metadata_size); + av_dict_free(&new_metadata); + + if (!os->new_metadata) + return AVERROR(ENOMEM); + } + priv->need_comments--; return 1; } -- 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".