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 ESMTP id 878F9405A6 for ; Wed, 17 Jul 2024 01:50:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0D17068DAB5; Wed, 17 Jul 2024 04:49:48 +0300 (EEST) Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 76B7968D7D2 for ; Wed, 17 Jul 2024 04:49:39 +0300 (EEST) Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-70b07bdbfbcso259823b3a.0 for ; Tue, 16 Jul 2024 18:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721180977; x=1721785777; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=MllPA9i0vqvVuvvpG5D4UlFzPXlwZPfkAlh5WHYG0CM=; b=II/0+onKtc9keNTpqwQQ69bF4ZjtWbPn0Vm8S8jJ+5v+mz5ILfmMjVsZ79QMrY2kNE EA1EdLi5U7Cb7P/k3NX+fLBU0b/RBQO+OxMOGerKMByzGVjVN3DZHBiQOZaYP3hvJKAu SoSjcukBKu9h2j+VeFesRVCpqMpcfElBSfPVLablWraB/AMpkB/A4ktbycX6oDktL3L7 CsZmhExEjF87ykYKs/YxHUnB2iXetNkYw3ge7vu6tH8+tDgwTgO+YOsNREQ4YN6M+wo0 pbV9w0QtE09fV/1AAPmpa1nKBtffO4isBrUwMJ69rcs+HIKUcDD66kCQHNTPe6akY5f0 DIXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721180977; x=1721785777; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MllPA9i0vqvVuvvpG5D4UlFzPXlwZPfkAlh5WHYG0CM=; b=kwRW6UwuiCrXoqEWeLHMBGW/Xdi8ufX4xPXG6L+63/ghESiIwxiom4gDwl2ihQZRYS xW80yO5RRMJLdli5Gq8lf1Rd4alkMhsqE32k5oQwgVY/mEkujx0LQ/xu9cx2aZZNxnPj gIeYpY3TxDNx9C1HaasxqiuPu5TcwbbrsbXn1IHXzRuohbX7CawrS6VIqZwp3T1Im6KG y07peWL0sojtFZ+wZ6lEhw4WYGR/OCWr+LED7POm5sgT/CyJEdqacVFppD7O94iUAVXv 9eC3Zur4Ou3o9LzIudLp/Gw2oL8Gx0uhNdQXp2hoAjNfp0pkUPoo7A4Nd3iuIrYQYoZ1 Lepg== X-Gm-Message-State: AOJu0YxJpA21RQcu0EKvmszHngocER6Cpg2zegpFG/J3bPejp+XLeD/c yckPp03GmenjZlqiyDEbCbBVwGmkxCEi5DI4L7IQcNLukKDgz8sKGwVcNA== X-Google-Smtp-Source: AGHT+IFtg4UlK6NxkHr7I+DY5gflTT1minUCYjUP91NSmxoE6ca2c1Fglry2rp4w+GJJD5GRJ+17+g== X-Received: by 2002:a05:6a20:729b:b0:1c2:8a69:338f with SMTP id adf61e73a8af0-1c3fdfda0dfmr579303637.12.1721180977230; Tue, 16 Jul 2024 18:49:37 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-70b7eca7545sm7025815b3a.153.2024.07.16.18.49.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jul 2024 18:49:36 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 16 Jul 2024 22:49:24 -0300 Message-ID: <20240717014925.16517-3-jamrial@gmail.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240717014925.16517-1-jamrial@gmail.com> References: <20240717014925.16517-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] avformat/iamf_writer: fix coded audio_roll_distance values 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 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: From: Felicia Lim 'seek_preroll' corresponds to 'audio_roll_distance' in IAMF[]1 [1]https://aomediacodec.github.io/iamf/v1.0.0-errata.html#audio_roll_distance --- libavformat/iamf_parse.c | 2 +- libavformat/iamf_writer.c | 30 +++++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c index a69d4a2f3a..2674a5186d 100644 --- a/libavformat/iamf_parse.c +++ b/libavformat/iamf_parse.c @@ -683,7 +683,7 @@ static int audio_element_obu(void *s, IAMFContext *c, AVIOContext *pb, int len) substream->codecpar->codec_id = codec_config->codec_id; substream->codecpar->frame_size = codec_config->nb_samples; substream->codecpar->sample_rate = codec_config->sample_rate; - substream->codecpar->seek_preroll = codec_config->seek_preroll; + substream->codecpar->seek_preroll = -codec_config->seek_preroll * codec_config->nb_samples; switch(substream->codecpar->codec_id) { case AV_CODEC_ID_AAC: diff --git a/libavformat/iamf_writer.c b/libavformat/iamf_writer.c index 35db078147..af837ccb1f 100644 --- a/libavformat/iamf_writer.c +++ b/libavformat/iamf_writer.c @@ -72,6 +72,34 @@ static int update_extradata(IAMFCodecConfig *codec_config) return 0; } +static int populate_default_seek_preroll(IAMFCodecConfig *codec_config) +{ + switch (codec_config->codec_id) { + case AV_CODEC_ID_OPUS: + if (!codec_config->nb_samples) + return AVERROR(EINVAL); + // ceil(3840 / nb_samples) + codec_config->seek_preroll = -(1 + ((3840 - 1) / codec_config->nb_samples)); + break; + case AV_CODEC_ID_AAC: + codec_config->seek_preroll = -1; + break; + case AV_CODEC_ID_FLAC: + case AV_CODEC_ID_PCM_S16BE: + case AV_CODEC_ID_PCM_S24BE: + case AV_CODEC_ID_PCM_S32BE: + case AV_CODEC_ID_PCM_S16LE: + case AV_CODEC_ID_PCM_S24LE: + case AV_CODEC_ID_PCM_S32LE: + codec_config->seek_preroll = 0; + break; + default: + return AVERROR(EINVAL); + } + + return 0; +} + static int fill_codec_config(IAMFContext *iamf, const AVStreamGroup *stg, IAMFCodecConfig *codec_config) { @@ -83,7 +111,7 @@ static int fill_codec_config(IAMFContext *iamf, const AVStreamGroup *stg, codec_config->sample_rate = st->codecpar->sample_rate; codec_config->codec_tag = st->codecpar->codec_tag; codec_config->nb_samples = st->codecpar->frame_size; - codec_config->seek_preroll = st->codecpar->seek_preroll; + populate_default_seek_preroll(codec_config); if (st->codecpar->extradata_size) { codec_config->extradata = av_memdup(st->codecpar->extradata, st->codecpar->extradata_size); if (!codec_config->extradata) -- 2.45.2 _______________________________________________ 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".