From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 556924BEE3 for ; Mon, 3 Nov 2025 14:14:46 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b't0Q9sXPmIUnbWOtx+dG6d9ldPtbeFMAvQjtqn9Xfhak=', expected b'TA7zv9Yhz8UmUsackf1h2rLCKC85N6/Q1nbeuJN1++U=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1762179273; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=t0Q9sXPmIUnbWOtx+dG6d9ldPtbeFMAvQjtqn9Xfhak=; b=YNCLCPgVZR19vnSs3VXbURFJ0Vzpdjkuauel/XLWpAKG9q1FrPJmwE4FncEdN2gaEqBQs ed0CjSbSvxblaEMPLukuMJsAsxI03uCz/B//mbZlUEkDeJaCAtrM12wqbnG4Kre59T072uc rptGGd8g3LSnGxwh+Yj10rMA0Rv1Pp63BbYQfTLTlZrZRU8n+mAJNyh9gucuyp8SV9MMPra ZI8gdb8MsR/tADnHQYLvwPJp1Fx8PM+5Cndz34x0EokScI/gdvYJRPrmQ4eRU3T6kr47r5p /eOAfcF/n5oXdODBw6NcdtaympjfArwi0oC5B2luZHyg870kvjskw+Ir+n+A== Received: from [172.19.0.2] (unknown [172.19.0.2]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 214A368FA8B; Mon, 3 Nov 2025 16:14:33 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1762179255; b=JfDxGEU6SYSd0hJ+LxSGWEw3qB6r5kHICkL6zn1qn1RatSxkgobyn8U9zacQl1HE2XLEu Vj0dVh38yhQrONDNYmhdfI0pTuPAHb2VTneozCXZfUiCxWgpnAjF5mCegsNy1ZNOKOCi5bY qnap433bUmio7YAla4swS2ntrowzTGrXofe7tdDAZEaQQBUP3Eczbfgj//87Bo6A+i+LT5e QK/XlyXgPg2fW+7uVk79t3X85RCOBWsdIsoGaxyUQq7SiwO6agPt/aZghfPogeSVC3OZ+zV k4Twv+uOdd28fkArccxnA0jvrQIgEkkx57jcj7+bxRYP6fYY/uiwePbjtdhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1762179255; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=AxW28y3ce9+OGDsRFVZGg9Gj1uT9MyuDpQjq93O9tJI=; b=VywAM6OM1PFxQhhRKFUuT0yy0U9nzmMtLlcVzOSZyNilNr9oCNJBbjn099CdgV3RMBhNN 6wIAsBiqDgnff6QVefmqCI01N7+HUYaX/tlNxnnLOTc32Nyo9KGLixPSjXmTd+D+7z/EgbN ggENm2jtN13qUqT2mV2QQwZke2kmEnLnXg9+3VqFNGO88Yl0E2MwIynkkVPstBh3sNkwo/s 8Z+ZbvmvjjQk32LFA/7ErjFHjlkDNthEYAMYGFVH3FRe0o3l+Ig533mZp4zPAxyBo8UTw8e mKl5mwYZpqGHFMmKFxmluzJnDH7PiTpAnXmSKL311oS0AuTxxzQOpJTqYuWw== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1762179248; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=TA7zv9Yhz8UmUsackf1h2rLCKC85N6/Q1nbeuJN1++U=; b=yp0pqzMoZ5TVbFZheLYwjbun1ClzhpVTU2MTWT6Fjt/aqRfXjTwUFMNq5IKNZWyeifu3T WV+2sNwVAikptfuWRQcsd/gIyxd4xErSmLJ+hROPqPrOrBN7YQzg0vvU8VBzEYOEjzrZhpd s8V3tw/HQn6PG81laEGUoxaev3YJhhJhMMgP/+EgAxVVmY3IMhnH7IUmYAQJCkiDUTOwQVY sJqdyKGhYaWvEMcoc5KnAIQR+hiu6nmJlbHdnZ/J3CUT/2Xpr9NV9FTUybVlQa/WFDCWh+i AQWvzPLi1PsYO3gRqwHIiQGU/IXbfvBkC1ZQmcwkDgN4BFToggL1/MOnjAgg== Received: from 02c22a36bd31 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id CFD7C68F1D0 for ; Mon, 3 Nov 2025 16:14:08 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Mon, 03 Nov 2025 14:14:08 -0000 Message-ID: <176217924895.25.11756083379690107411@2cb04c0e5124> Message-ID-Hash: QEPRUBMBM6LHEAYKGWFCYIMGQMFLQ55N X-Message-ID-Hash: QEPRUBMBM6LHEAYKGWFCYIMGQMFLQ55N X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] WIP: avcodec/libmpeghdec: Add FATE test and use correct timescale (PR #20830) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Daniel Stadelmann via ffmpeg-devel Cc: Daniel Stadelmann Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #20830 opened by Daniel Stadelmann (dstadelmann-iis) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20830 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20830.patch Consists of 2 related changes: * Fixes the timestamp calculation for input samples to the decoder, as per @mkver's https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20602#issue-1151. * Adds FATE tests for decoding select streams into different channel layouts >>From a81098d201749bf2b2bc2233688bb822669574ff Mon Sep 17 00:00:00 2001 From: "Stadelmann, Daniel" Date: Mon, 3 Nov 2025 14:27:17 +0100 Subject: [PATCH 1/2] fate/mpegh3da: Add FATE tests for libmpeghdec decoder Signed-off-by: Stadelmann, Daniel --- tests/Makefile | 1 + tests/fate/mpegh3da.mak | 42 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 tests/fate/mpegh3da.mak diff --git a/tests/Makefile b/tests/Makefile index 3eef290e41..8789e8489f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -221,6 +221,7 @@ include $(SRC_PATH)/tests/fate/mov.mak include $(SRC_PATH)/tests/fate/mp3.mak include $(SRC_PATH)/tests/fate/mpc.mak include $(SRC_PATH)/tests/fate/mpeg4.mak +include $(SRC_PATH)/tests/fate/mpegh3da.mak include $(SRC_PATH)/tests/fate/mpegps.mak include $(SRC_PATH)/tests/fate/mpegts.mak include $(SRC_PATH)/tests/fate/mxf.mak diff --git a/tests/fate/mpegh3da.mak b/tests/fate/mpegh3da.mak new file mode 100644 index 0000000000..d76c33da1e --- /dev/null +++ b/tests/fate/mpegh3da.mak @@ -0,0 +1,42 @@ +FATE_MPEGH3DA += fate-mpegh3da-decode-2-2 +fate-mpegh3da-decode-2-2: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout stereo -i $(TARGET_SAMPLES)/mpegh3da/mpegh_cicp_02_baseline_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-2-2: REF = $(SAMPLES)/mpegh3da/reference_stereo_to_stereo.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-2-13 +fate-mpegh3da-decode-2-13: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout 22.2 -i $(TARGET_SAMPLES)/mpegh3da/mpegh_cicp_02_baseline_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-2-13: REF = $(SAMPLES)/mpegh3da/reference_stereo_to_22.2.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-2-1 +fate-mpegh3da-decode-2-1: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout mono -i $(TARGET_SAMPLES)/mpegh3da/mpegh_cicp_02_baseline_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-2-1: REF = $(SAMPLES)/mpegh3da/reference_stereo_to_mono.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-13-2 +fate-mpegh3da-decode-13-2: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout stereo -i $(TARGET_SAMPLES)/mpegh3da/mpegh_cicp_13_lc_baseline_compatible_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-13-2: REF = $(SAMPLES)/mpegh3da/reference_22.2_to_stereo.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-13-13 +fate-mpegh3da-decode-13-13: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout 22.2 -i $(TARGET_SAMPLES)/mpegh3da/mpegh_cicp_13_lc_baseline_compatible_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-13-13: REF = $(SAMPLES)/mpegh3da/reference_22.2_to_22.2.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-13-1 +fate-mpegh3da-decode-13-1: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout mono -i $(TARGET_SAMPLES)/mpegh3da/mpegh_cicp_13_lc_baseline_compatible_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-13-1: REF = $(SAMPLES)/mpegh3da/reference_22.2_to_mono.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-change-2 +fate-mpegh3da-decode-change-2: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout stereo -i $(TARGET_SAMPLES)/mpegh3da/mpegh_config_change_cicp_2_14_6_lc_baseline_compatible_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-change-2: REF = $(SAMPLES)/mpegh3da/reference_config_change_to_stereo.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-change-13 +fate-mpegh3da-decode-change-13: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout 22.2 -i $(TARGET_SAMPLES)/mpegh3da/mpegh_config_change_cicp_2_14_6_lc_baseline_compatible_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-change-13: REF = $(SAMPLES)/mpegh3da/reference_config_change_to_22.2.pcm + +FATE_MPEGH3DA += fate-mpegh3da-decode-change-1 +fate-mpegh3da-decode-change-1: CMD = ffmpeg -auto_conversion_filters -c:a libmpeghdec -ch_layout mono -i $(TARGET_SAMPLES)/mpegh3da/mpegh_config_change_cicp_2_14_6_lc_baseline_compatible_32kbps.mp4 -f s16le - +fate-mpegh3da-decode-change-1: REF = $(SAMPLES)/mpegh3da/reference_config_change_to_mono.pcm + +$(FATE_MPEGH3DA): CMP = oneoff +$(FATE_MPEGH3DA): CMP_UNIT = s16 + +FATE_MPEGH3DA-$(call DEMDEC, MOV, LIBMPEGHDEC) += $(FATE_MPEGH3DA) +FATE_SAMPLES_FFMPEG += $(FATE_MPEGH3DA-yes) +fate-mpegh3da: $(FATE_MPEGH3DA-yes) -- 2.49.1 >>From 7bfa871a10a89144240457e9d9cebbe110d42848 Mon Sep 17 00:00:00 2001 From: "Stadelmann, Daniel" Date: Mon, 3 Nov 2025 14:33:26 +0100 Subject: [PATCH 2/2] avcodec/libmpeghdec: Use correct time base for timestamp calculation Signed-off-by: Stadelmann, Daniel --- libavcodec/libmpeghdec.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/libavcodec/libmpeghdec.c b/libavcodec/libmpeghdec.c index ecc3a2dc09..2dc697952c 100644 --- a/libavcodec/libmpeghdec.c +++ b/libavcodec/libmpeghdec.c @@ -152,15 +152,10 @@ static int mpegh3dadec_decode_frame(AVCodecContext *avctx, AVFrame *frame, MPEGH_DECODER_ERROR err; MPEGH_DECODER_OUTPUT_INFO out_info; - if (!avctx->sample_rate) { - av_log(avctx, AV_LOG_ERROR, "Audio sample rate is not set"); - return AVERROR_INVALIDDATA; - } - if (avpkt->data != NULL && avpkt->size > 0) { - if ((err = mpeghdecoder_processTimescale(s->decoder, avpkt->data, - avpkt->size, avpkt->pts, - avctx->sample_rate))) { + if ((err = mpeghdecoder_processTimescale( + s->decoder, avpkt->data, avpkt->size, + avpkt->pts * avctx->pkt_timebase.num, avctx->pkt_timebase.den))) { av_log(avctx, AV_LOG_ERROR, "mpeghdecoder_process() failed: %x\n", err); return AVERROR_INVALIDDATA; @@ -189,8 +184,7 @@ static int mpegh3dadec_decode_frame(AVCodecContext *avctx, AVFrame *frame, frame->nb_samples = out_info.numSamplesPerChannel; frame->sample_rate = avctx->sample_rate = out_info.sampleRate; frame->pts = out_info.ticks; - frame->time_base.num = 1; - frame->time_base.den = out_info.sampleRate; + frame->time_base = av_make_q(1, out_info.sampleRate); if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org