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".