On 6/20/2023 4:41 PM, Anton Khirnov wrote:
Quoting James Almer (2023-06-20 21:39:22)
On 6/20/2023 3:53 PM, Anton Khirnov wrote:
Fixed-point AAC decoder currently does not produce the same output on
all platforms. Until that is fixed, silence the audio stream using the
volume filter.
Also, actually use the aac_fixed decoder as was the original intent.
---
tests/fate/ffmpeg.mak | 7 +-
tests/ref/fate/ffmpeg-streamloop-transcode-av | 144 +++++++++---------
2 files changed, 77 insertions(+), 74 deletions(-)
diff --git a/tests/fate/ffmpeg.mak b/tests/fate/ffmpeg.mak
index 87cd0b46d0..763ed381ee 100644
--- a/tests/fate/ffmpeg.mak
+++ b/tests/fate/ffmpeg.mak
@@ -132,9 +132,12 @@ fate-ffmpeg-fix_sub_duration_heartbeat: CMD = fmtstdout
srt -fix_sub_duration \
-c:s srt \
-f null -
-FATE_SAMPLES_FFMPEG-$(call FRAMECRC, MATROSKA, H264 AAC_FIXED, PCM_S32LE_ENCODER) += fate-ffmpeg-streamloop-transcode-av
+# FIXME: the integer AAC decoder does not produce the same output on all
platforms
+# so until that is fixed we use the volume filter to silence the data
+FATE_SAMPLES_FFMPEG-$(call FRAMECRC, MATROSKA, H264 AAC_FIXED,
PCM_S32LE_ENCODER VOLUME_FILTER) += fate-ffmpeg-streamloop-transcode-av
fate-ffmpeg-streamloop-transcode-av: CMD = \
- framecrc -auto_conversion_filters -stream_loop 3 -i
$(TARGET_SAMPLES)/mkv/1242-small.mkv -c:a pcm_s32le
+ framecrc -auto_conversion_filters -stream_loop 3 -c:a aac_fixed -i
$(TARGET_SAMPLES)/mkv/1242-small.mkv \
+ -af volume=0 -c:a pcm_s32le
Maybe do volume=0:precision=fixed so you can remove the
-auto_conversion_filters part.
It's mainly there to interleave s32p to s32 for encoding
Yeah, just checked and it fails without -auto_conversion_filters even if
you force fixed point in the filter.
Still, even if it's a temporal change, it's best to add precision=fixed
since it will prevent conversion to float and back to fixed from auto
inserting two aresample instances in the filterchain.
With precision=fixed
[AVFilterGraph @ 000001f29a306e20] Setting 'volume' to value '0'
[AVFilterGraph @ 000001f29a306e20] Setting 'precision' to value 'fixed'
[graph_0_in_0_0 @ 000001f29a30eea0] Setting 'time_base' to value '1/48000'
[graph_0_in_0_0 @ 000001f29a30eea0] Setting 'sample_rate' to value '48000'
[graph_0_in_0_0 @ 000001f29a30eea0] Setting 'sample_fmt' to value 's32p'
[graph_0_in_0_0 @ 000001f29a30eea0] Setting 'channel_layout' to value 'stereo'
[graph_0_in_0_0 @ 000001f29a30eea0] tb:1/48000 samplefmt:s32p samplerate:48000
chlayout:stereo
[format_out_0_0 @ 000001f29a0defa0] Setting 'sample_fmts' to value 's32'
[format_out_0_0 @ 000001f29a0defa0] auto-inserting filter 'auto_aresample_0'
between the filter 'Parsed_volume_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 000001f29a306e20] query_formats: 4 queried, 4 merged, 6
already done, 0 delayed
[graph_0_in_0_0 @ 000001f29a30eea0] tb:0.000021 sample_rate:48000.000000
nb_channels:2.000000
[Parsed_volume_0 @ 000001f29a026f60] n:nan t:nan pts:nan precision:fixed
volume_i:0/255 volume:0.000000 volume_dB:-inf
[auto_aresample_0 @ 000001f29a0df8a0] [SWR @ 000001f29a1cbf60] Using s32p
internally between filters
[auto_aresample_0 @ 000001f29a0df8a0] ch:2 chl:stereo fmt:s32p r:48000Hz ->
ch:2 chl:stereo fmt:s32 r:48000Hz
Without it
[AVFilterGraph @ 000001ccb6036aa0] Setting 'volume' to value '0'
[graph_0_in_0_0 @ 000001ccb603b6c0] Setting 'time_base' to value '1/48000'
[graph_0_in_0_0 @ 000001ccb603b6c0] Setting 'sample_rate' to value '48000'
[graph_0_in_0_0 @ 000001ccb603b6c0] Setting 'sample_fmt' to value 's32p'
[graph_0_in_0_0 @ 000001ccb603b6c0] Setting 'channel_layout' to value 'stereo'
[graph_0_in_0_0 @ 000001ccb603b6c0] tb:1/48000 samplefmt:s32p samplerate:48000
chlayout:stereo
[format_out_0_0 @ 000001ccb5e0eec0] Setting 'sample_fmts' to value 's32'
[Parsed_volume_0 @ 000001ccb5d56f80] auto-inserting filter 'auto_aresample_0'
between the filter 'graph_0_in_0_0' and the filter 'Parsed_volume_0'
[format_out_0_0 @ 000001ccb5e0eec0] auto-inserting filter 'auto_aresample_1'
between the filter 'Parsed_volume_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 000001ccb6036aa0] query_formats: 4 queried, 2 merged, 9
already done, 0 delayed
[auto_aresample_0 @ 000001ccb5d59be0] picking fltp out of 2 ref:s32p
[auto_aresample_0 @ 000001ccb5d59be0] [SWR @ 000001ccb5efbf80] Using fltp
internally between filters
[auto_aresample_0 @ 000001ccb5d59be0] ch:2 chl:stereo fmt:s32p r:48000Hz ->
ch:2 chl:stereo fmt:fltp r:48000Hz
[auto_aresample_0 @ 000001ccb5d59be0] tb:0.000021 sample_rate:48000.000000
nb_channels:2.000000
[Parsed_volume_0 @ 000001ccb5d56f80] n:nan t:nan pts:nan precision:float
volume:0.000000 volume_dB:-inf
[auto_aresample_1 @ 000001ccb5d5ae80] [SWR @ 000001ccb5f10fc0] Using fltp
internally between filters
[auto_aresample_1 @ 000001ccb5d5ae80] ch:2 chl:stereo fmt:fltp r:48000Hz ->
ch:2 chl:stereo fmt:s32 r:48000Hz
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".