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 3D00D4BE8C for ; Tue, 4 Feb 2025 11:16:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6050468B71A; Tue, 4 Feb 2025 13:15:48 +0200 (EET) Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A21C68B5DB for ; Tue, 4 Feb 2025 13:15:41 +0200 (EET) Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-4679d366adeso48533791cf.1 for ; Tue, 04 Feb 2025 03:15:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738667739; x=1739272539; 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=+tK4JLBSu1JOfKLP22Y7H4wiS7HBf6P9TsGCW9+e9tY=; b=doRQMu0idsyghf8eoNb/qRCExOkS3GIokJu2euvOfJxqtieRXDrNFvtdd2Sy5Pjh6p Jc72dJsuRNXJXYkAYYRWheakmRnsVnx49IpLfRPY6pyKRIPwzRbCohAN+THXYa4VieUy idH5cyV07e0uhdn5p5Wsg/RoAuKNNND8SYF6mlXw41+wr4CVvcmXYQadu5T4nkVSKw8r bqRDMTolEy8fzHl5JnjytNrCjX/r6hmAaNMIIQSJK3gJ6Z3dqmA9W38J8bk+9YHFiYZ2 MZdHO+6N24chGEdoOgq1x73EaiB4mamkaRwa8JwxomGi/n1ziojXHlUqsilxOYx84Ayl oRPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738667739; x=1739272539; 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=+tK4JLBSu1JOfKLP22Y7H4wiS7HBf6P9TsGCW9+e9tY=; b=qZDTjPWK1WNrYBcjHzjubrjwNw9Tpkr/BzbYyt8SwyFoDHiv/XSpfycTgyWjy/kdfy Z9nFHmei9EdKtdTPihiqQ5yx8JgGlmZUpZiiZ/fqGNSkm5wGLndpVoYe1D+KpEiH+Oj8 Q1H/fSR3yl3fJkFiRKcy/mbMUd0S/oBqcwLnoRXhHv9AwHSz3j99TbPYU0z7QfDO9rij /2v7noM7Skw/7rrhCGX8iBETAbuTnXz6K/2MXqm9Zrvt0N9QJBKx1Ie3FDwQiTO3fqD7 V82V2dgYdmdo2xaQl5ioBh9zqNSuXwE4MGNQgsW2H63pPsWx666lV5NtZqKLi3PXNRWm glvQ== X-Gm-Message-State: AOJu0YxBX4b/oyHOE3J5NiMgfeamJWCB2uoVvcLt34yf07dwN3fwEQ2q LeZT9gunorGbCi8wlp6c5TKpkGH0KUqUv0fJgpaBkXAFzCBK8TOCj/heIdYuQxi+pA== X-Gm-Gg: ASbGncsol4dJPxshQdJFTFibtmi/hT6+TyStJ0BCwupXbfObviAt5JXDoS7T6Ars9k1 wZGjhdiecIb7JZXAd9Y51ms8P9TD8w29mGO8GFDIwkg1bg4NNlvD/55AC3u4dcqi8oXPgv9cAd0 RZWNT1gphG8NEb+wkvGcHieXPGfdUb+C0XqXwLrRQH5IqrUtcq4MHz4ebE3Qw5+RE3L8daaM2mu TufM3eBMkL9r9vqthGX0xct2/yEbedZq7TM4BRpIZzlL+HMhVZEGTC5WhGyEbWEFBwizH7lH4Lz OZKuNsDjU3n4SsLM6ZSdZL0HZRHXfzou3J+/imDHEmn08Q== X-Google-Smtp-Source: AGHT+IE1AM6nsdeaMUhR7NSExg8zTWNc03WwFtWeKcveK4PHNWX4ll4COGvure/IYBdGwiIMqoJZ/w== X-Received: by 2002:a05:622a:4d46:b0:467:59d5:b20b with SMTP id d75a77b69052e-4701867f221mr50140601cf.4.1738667739155; Tue, 04 Feb 2025 03:15:39 -0800 (PST) Received: from localhost.localdomain ([12.172.251.101]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-46fdf17c92fsm58181831cf.67.2025.02.04.03.15.36 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Feb 2025 03:15:37 -0800 (PST) From: Romain Beauxis To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Feb 2025 06:15:20 -0500 Message-Id: <20250204111521.48785-3-romain.beauxis@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250204111521.48785-1-romain.beauxis@gmail.com> References: <20250204111521.48785-1-romain.beauxis@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/3] libavcodec/flacdec: parse vorbis metadata from ogg packets, add them to the next decoded frame. 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: epirat07@gmail.com, 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 is the main patch. Parse ogg comments in ogg packets with comment, keep them in pending_metadata and copy them to the next decoded audio frame. --- libavcodec/flacdec.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index ad921a1bd1..03a68cdfef 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -37,6 +37,7 @@ #include "libavutil/crc.h" #include "libavutil/mem.h" #include "libavutil/opt.h" +#include "libavformat/oggdec.h" #include "avcodec.h" #include "codec_internal.h" #include "get_bits.h" @@ -68,6 +69,8 @@ typedef struct FLACContext { unsigned int decoded_buffer_size_33bps; int buggy_lpc; ///< use workaround for old lavc encoded files + AVDictionary *pending_metadata; + FLACDSPContext dsp; } FLACContext; @@ -728,7 +731,8 @@ static int flac_decode_frame(AVCodecContext *avctx, AVFrame *frame, } if (buf_size > 0 && (*buf & 0x7F) == FLAC_METADATA_TYPE_VORBIS_COMMENT) { - av_log(s->avctx, AV_LOG_DEBUG, "skipping vorbis comment\n"); + av_dict_free(&s->pending_metadata); + ff_vorbis_comment(avctx, &s->pending_metadata, buf + 4, buf_size - 4, 1); return buf_size; } @@ -788,6 +792,11 @@ static int flac_decode_frame(AVCodecContext *avctx, AVFrame *frame, buf_size - bytes_read, buf_size); } + if (s->pending_metadata) { + av_dict_copy(&frame->metadata, s->pending_metadata, AV_DICT_APPEND); + av_dict_free(&s->pending_metadata); + } + *got_frame_ptr = 1; return bytes_read; @@ -799,6 +808,7 @@ static av_cold int flac_decode_close(AVCodecContext *avctx) av_freep(&s->decoded_buffer); av_freep(&s->decoded_buffer_33bps); + av_dict_free(&s->pending_metadata); return 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".