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 93CCA41267 for ; Mon, 17 Feb 2025 16:20:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D72C068C069; Mon, 17 Feb 2025 18:19:46 +0200 (EET) Received: from mail-yw1-f182.google.com (mail-yw1-f182.google.com [209.85.128.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E687468C08D for ; Mon, 17 Feb 2025 18:19:39 +0200 (EET) Received: by mail-yw1-f182.google.com with SMTP id 00721157ae682-6f6c90b51c3so38979397b3.2 for ; Mon, 17 Feb 2025 08:19:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739809178; x=1740413978; 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=J1KO08hgEJU324+V3QSYa5rVyTjpLKcNxpjySTb1ea0=; b=RjXEIPMcXkVXVbJg3Qfll3bN6FQlt4PuwHQEWDGrKL4x38k31yI97L6mbVPX1RfWSG y2TOzAg/uJcdOXjOY8JwwTSo3bo8vFdFxseIwhjral7p+2LqolChjET/ZZcehR0YS8c7 Tt6VDukeYDGyqmm+LphwFgbcChPRrePXaImohvDj2cK4TFd0sod/+0PC1H2srplemnQF upAgVULHIYXIMQrWM5Tc6vtTpA1l2c+aQJU4aFOelewUmBfBU5X2cBPhfyzAc7mC7EZD p4TX9mBA5QJBla8IbKNCrxx4GiDUi3CYOkQTuvMDCRf8YBcQbws0ygPOcawlTQXu4REN 5zVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739809178; x=1740413978; 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=J1KO08hgEJU324+V3QSYa5rVyTjpLKcNxpjySTb1ea0=; b=IEoWuaqwCN9yQOZcfao5lmXd6eCSr33ylcYFuw8Qnc9Fm9W177nuAvQCe2Pwm6z2Ri uGx5sJounMq4p1ZptzeW5oYF63ytTiy/UV9cWal/EB68OOdPPG4EqQTSMW/2M8Y5J9kz EPcuO/GoPup72btFVqlm/ERmbUi0vdfRg8uK8lH0JG/R+5F9aCZWGVrWyBczusYjIUzR axmDAnGg6Gc6d2ESoSxAWKGSCblsOAcHYh7+8NHMBCroHdP+hWzThtfuLuX2NgudPoZ8 bf1GoapCCwwMz+aNuprSkYZ4OLM6o3HALqLiNQXhFnEny6AmdkFtYfC83G5K0qvSrDuc nbaA== X-Gm-Message-State: AOJu0YyxTkb0UX85aFXf+FxDAod4G1ufPN2EMNO3w1Cj2D1u+OeTAfr8 W1ptyV73p/ysSslBVMREGEQWUGzAbi35Dc+zHYXfuKS+d1b9s5b75uPNfA== X-Gm-Gg: ASbGnctinUoD2hZqYvJDYBOKuzO6Sl3wyxY58U5UC9mIqOwt4esVZ7yRFHb9Vqt+niY 5TW74u+mVOpowTPLnZ/vMiMN0Pav79HqBIXvBl1PpXGsdPAbFvt7VS446T9iKNramuAaJNSxGvg aZA6Oooi50pDF6SXMT7o7PLjPESwVPS5vk7ngR5J5vFqmCJKa83QsJz1swn0ofIIczsZhYyKNTm Nj7J5s1/r4KYQcTJ51d6Ay6dsRdP1oAWWI5DHGfkJMQSUwT3HHgXFt9tHJjejedyvHzy0pN58kv buscb/w7Xn2rTUjAQX93PErvmqg4M6TAQIYVwoYxJ0zc8Iu3nkZbYQ== X-Google-Smtp-Source: AGHT+IFSJCeYO4GWCNLVVWIhzDVb3YVVx2ofqPg4z+VK5YI/UgkI91F5cvdtI+oghpBNKG+hm+G2lA== X-Received: by 2002:a05:690c:f94:b0:6ef:6ba2:e851 with SMTP id 00721157ae682-6fb5827e0bamr75957827b3.12.1739809177902; Mon, 17 Feb 2025 08:19:37 -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.36 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 17 Feb 2025 08:19:37 -0800 (PST) From: Romain Beauxis To: ffmpeg-devel@ffmpeg.org Date: Mon, 17 Feb 2025 10:19:18 -0600 Message-Id: <20250217161921.76121-4-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 3/6] Parse ogg/flac comments in new ogg packets 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: Parse ogg/flac comments in new ogg packets, add them to ogg stream new_metadata. This is pretty straight forward and taps into a mechanism already in place in libavformat/oggdec.c --- libavformat/oggparseflac.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c index f25ed9cc15..3810806112 100644 --- a/libavformat/oggparseflac.c +++ b/libavformat/oggparseflac.c @@ -78,6 +78,32 @@ 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; + AVDictionary *new_metadata = NULL; + int ret; + + if (os->psize > 0 && os->buf[os->pstart] && + (os->buf[os->pstart] & 0x7F) == FLAC_METADATA_TYPE_VORBIS_COMMENT) { + ret = ff_vorbis_comment(s, &new_metadata, os->buf + os->pstart + 4, + os->psize - 4, 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); + } + + return 0; +} + static int old_flac_header (AVFormatContext * s, int idx) { @@ -130,6 +156,7 @@ const struct ogg_codec ff_flac_codec = { .magic = "\177FLAC", .magicsize = 5, .header = flac_header, + .packet = flac_packet, .nb_header = 2, }; @@ -137,5 +164,6 @@ const struct ogg_codec ff_old_flac_codec = { .magic = "fLaC", .magicsize = 4, .header = old_flac_header, + .packet = flac_packet, .nb_header = 0, }; -- 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".