From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id D53A449776 for <ffmpegdev@gitmailbox.com>; Mon, 24 Mar 2025 14:51:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DA82B687B84; Mon, 24 Mar 2025 16:51:28 +0200 (EET) Received: from mail-oi1-f179.google.com (mail-oi1-f179.google.com [209.85.167.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 137BA6879D6; Mon, 24 Mar 2025 16:51:16 +0200 (EET) Received: by mail-oi1-f179.google.com with SMTP id 5614622812f47-3f6a92f234dso2528336b6e.3; Mon, 24 Mar 2025 07:51:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742827874; x=1743432674; 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=aUXWBNKk3ee6IzwXbOtBmlD9ADRVOEhOqMycTQcLwD8=; b=HtuMtlfFR6G7N8dgplWFuBMSECGFv4FCqRzdV3yEaeYg/7L2X61mnn4NHK02QR1BWr O2sLiNoGIySNnbSi4fqBOSZt1meLq5rUb7Ji79YwqdCoKWXNjuLeMPA4K0HhRZSf9zRh bzSKStwIYKJzO3/UCh87QDptuA79JLWELtbVDcHXkcb06B/Uk7hFqLO4YdNH3SddAe0N kbT5Z5elm2VEpfUtsnKit7TVcGWFBzahz7+aqshCkOqg/vmddjONXmRDKtO7/uzPzTRV lHvoAnOfexcKtezi9SYHslJGhPe5CDkHZJnXbO9IPH1HnpXkX2b1sIriJ4K3+hFpPYjn ikBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742827874; x=1743432674; 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=aUXWBNKk3ee6IzwXbOtBmlD9ADRVOEhOqMycTQcLwD8=; b=sIPl7dxiq91+zwUnCsRMNhFN0kjqeS0ESbLpF2+btC1hk4eStH7sFbbTkJ+mdudB8Y wLUXaVcb4u/IjeqviudVJ2EunmHo7YJ6GJhF4UE7Yl30JVZYQD44exGsYZxrdTE2oLGU qcMMJUN+7crqqXpBde1+W0UJnCOeptFED6fYgPVwkPYonFFc2VsDJU/dnb01bW3AAZnd qWJzrcpNu0aHUS/ip0iLGTX656Ds3fQTziwQh2wNMltoTg2LFvu0LkMzE0PdI7R/lt3X uXv/DeVkPPuOquc0nkwNs4HnZm4gxrxQuTuvCnM6FdPEgiAr9OxeSIpA2JcVYEyaFhnU zqeQ== X-Forwarded-Encrypted: i=1; AJvYcCX7+7uzfcWPSJzOUoD/6ELxu0a4npwB/A+qBgzRID9LpPpHXbg7gN+o53U4RY0XQm6BGzIggwngfEwgQblyYWo=@ffmpeg.org X-Gm-Message-State: AOJu0Yx9OcyEVBgHGUBiqv713ZAHmadZomgylWl+aCrrywebI4Y+mCU2 nMON0n6IL6wC5xgQDcxFApDXZyjSwuRcpvCbUg5X+YpruZHdTFud9X1uyOJf X-Gm-Gg: ASbGnctnL5laPvXxl10Zo6+lyQIrahhdnElm2so0CinYH2pfQ035vapuauX1bikwtrw ABwwoOP0Q2STX8Ms6vdWm6kTIZbehlwG8QIusdJKecjR74asO8a3mS0ziO2K3bbqOp4xTGa4mCV NlRbfTTBCHrBBH/W3/7oZsfZ1wajTf12sphW4W3F14xUyxFZ/XOnHoCUej1KDbmk1BclgLBVFk7 EinQHWJrjDaFqb2PKH0XQ8jXx3Oi7MJ8y55r9bPk3haHYze73bAvjLIyN+IxvmYPNkBK44Qg+hm 8k9GMXJ7AIdhWgSqtjHuQkxcLZYbWiP5lGRHQXM/Wxp2/SUeJy76K73bdS0bsrCwDLNrYXw+Yny 4UMj55XjX X-Google-Smtp-Source: AGHT+IHQ8ppEW9SkG/6GBUfgAx9gVLsZC3/qHJCb8V1ro5IO3fLaVYPI944BE99uN0xiaHeVkwoJXQ== X-Received: by 2002:a05:6808:6f96:b0:3fe:b1fd:5270 with SMTP id 5614622812f47-3febf701b71mr9741511b6e.1.1742827873720; Mon, 24 Mar 2025 07:51:13 -0700 (PDT) Received: from localhost.localdomain ([2607:fb90:e335:ccc9:113:6fea:db60:5cff]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3febf6e956fsm1612030b6e.16.2025.03.24.07.51.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 24 Mar 2025 07:51:11 -0700 (PDT) From: Romain Beauxis <romain.beauxis@gmail.com> To: ffmpeg-devel@ffmpeg.org Date: Mon, 24 Mar 2025 09:50:51 -0500 Message-Id: <20250324145059.16593-1-romain.beauxis@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v9 0/8] Properly decode ogg metadata in ogg/{vorbis, flac, opus} chained bitstreams X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Cc: samples-request@ffmpeg.org, Romain Beauxis <romain.beauxis@gmail.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250324145059.16593-1-romain.beauxis@gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> This is a series of patches to allow proper decoding of ogg metadata in chained `ogg/vorbis, `ogg/flac` and `ogg/opus` streams. FATE samples for the new tests can be found here: https://www.dropbox.com/scl/fo/xrtrna2rxr1j354hrtymq/AGwemlxHYecBLNmQ8Fsy--4?rlkey=lzilr4m9w4gfdqygoe172vvy8&dl=0 ## Changes since last version: * Fixed fate test run in cross-compiled environments. * Switched to av_tree to store pending metadata as pts->metadata mappings in case packets arrive in non-linear order or metadata updates are split accross multiple packets for a single frame. Romain Beauxis (8): libavcodec/decode.c: intercept `AV_PKT_DATA_METADATA_UPDATE` packet extra data, attach them to the next decoded frame with the same PTS. tests: Add stream dump test API util. tests: Add chained ogg/vorbis stream dump test. libavformat/oggdec.h, libavformat/oggparsevorbis.c: Factor out vorbis metadata update mechanism. libavformat/oggparseflac.c: Parse ogg/flac comments in new ogg packets, add them to ogg stream new_metadata. tests: Add chained ogg/flac stream dump test. libavformat/oggparseopus.c: Parse comments from secondary chained streams header packet. tests: Add chained ogg/opus stream dump test. libavcodec/decode.c | 131 +++++++++++++++ libavformat/oggdec.h | 14 ++ libavformat/oggparseflac.c | 21 +++ libavformat/oggparseopus.c | 13 +- libavformat/oggparsevorbis.c | 25 ++- tests/Makefile | 4 + tests/api/Makefile | 2 +- tests/api/api-dump-stream-meta-test.c | 175 +++++++++++++++++++++ tests/fate/ogg-flac.mak | 11 ++ tests/fate/ogg-opus.mak | 11 ++ tests/fate/ogg-vorbis.mak | 11 ++ tests/ref/fate/ogg-flac-chained-meta.txt | 13 ++ tests/ref/fate/ogg-opus-chained-meta.txt | 27 ++++ tests/ref/fate/ogg-vorbis-chained-meta.txt | 17 ++ 14 files changed, 465 insertions(+), 10 deletions(-) create mode 100644 tests/api/api-dump-stream-meta-test.c create mode 100644 tests/fate/ogg-flac.mak create mode 100644 tests/fate/ogg-opus.mak create mode 100644 tests/fate/ogg-vorbis.mak create mode 100644 tests/ref/fate/ogg-flac-chained-meta.txt create mode 100644 tests/ref/fate/ogg-opus-chained-meta.txt create mode 100644 tests/ref/fate/ogg-vorbis-chained-meta.txt -- 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".