tests/fate: Add a VPK regression test for a zeroed channel layout

Generate the 21-byte sample from issue #24290 and copy it with
ffmpeg. avformat_find_stream_info() must keep the container channel
count at 80 instead of replacing it with 0 after adpcm_psx fails to
open; the decoder cannot be opened, so ffprobe -show_entries is not
usable here.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
This commit is contained in:
Jun Zhao authored and Jun Zhao committed 2026-09-08 05:00:37 +00:00
1 parent 780f6efbcf
commit 1de77bb898
1 file changed
+14
+14
View File
@@ -189,6 +189,20 @@ fate-ts-timed-id3-hls-demux: CMD = ffprobe_demux $(TARGET_PATH)/tests/data/id3.m
FATE_SAMPLES_DEMUX-$(call PARSERDEM, JPEGXS, IMAGE_JPEGXS_PIPE, CONCAT_PROTOCOL) += fate-jxs-concat-demux
fate-jxs-concat-demux: CMD = framecrc "-i concat:$(TARGET_SAMPLES)/jxs/lena.jxs|$(TARGET_SAMPLES)/jxs/lena.jxs -c:v copy"
# 21-byte crafted VPK: header parses (nb_channels=80) but adpcm_psx open
# fails. After find_stream_info the layout must stay 80, not 0.
# ffprobe cannot be used: it aborts on the failed decoder open before
# printing -show_entries.
tests/data/vpk-div0.vpk: TAG = GEN
tests/data/vpk-div0.vpk: | tests/data
$(Q)printf '\040\113\120\126\126\120\000\370\004\000\073\003\141\071\126\062\066\066\060\070\120' > $@
FATE_FFMPEG-$(call ALLYES, VPK_DEMUXER ADPCM_PSX_DECODER FILE_PROTOCOL NULL_MUXER) += fate-demux-vpk-div0
fate-demux-vpk-div0: tests/data/vpk-div0.vpk
fate-demux-vpk-div0: CMD = ffmpeg -i $(TARGET_PATH)/tests/data/vpk-div0.vpk -map 0 -c copy -f null -
fate-demux-vpk-div0: CMP = grep
fate-demux-vpk-div0: REF = 80 channels
FATE_SAMPLES_DEMUX += $(FATE_SAMPLES_DEMUX-yes)
FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_DEMUX)
FATE_FFPROBE_DEMUX += $(FATE_FFPROBE_DEMUX-yes)