fate/lavf: add PDV round-trip and seek coverage

Add FATE coverage for PDV encoding and decoding via lavf, including
intra and inter frame cases, skip-nokey decoding, and container-level
seek coverage.

Use -strict experimental in the encode commands because the encoder
is marked experimental.
This commit is contained in:
Priyanshu Thapliyal
2026-04-08 19:27:45 +05:30
committed by michaelni
parent 4c0d563f85
commit 056562a5ff
6 changed files with 61 additions and 1 deletions

View File

@@ -7,6 +7,7 @@ FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gbrap.fits
FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gbrp16be.fits
FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gbrap16be.fits
FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, GIF, GIF) += gif
FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, PDV, PDV) += pdv pdv-intra pdv-skip-nokey
FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, RAWVIDEO, YUV4MPEGPIPE) += yuv422p.y4m yuv444p.y4m yuv411p.y4m gray.y4m
FATE_LAVF_VIDEO-$(call ENCDEC, WRAPPED_AVFRAME RAWVIDEO, YUV4MPEGPIPE) += y4m
@@ -29,6 +30,12 @@ fate-lavf-gbrap.fits: CMD = lavf_video "-pix_fmt gbrap"
fate-lavf-gbrp16be.fits: CMD = lavf_video "-pix_fmt gbrp16be"
fate-lavf-gbrap16be.fits: CMD = lavf_video "-pix_fmt gbrap16be"
fate-lavf-gif: CMD = lavf_video "-pix_fmt rgb8"
fate-lavf-pdv: KEEP_FILES ?= 1
fate-lavf-pdv: CMD = lavf_video "-pix_fmt monob" "-frames:v 4 -g 2 -strict experimental -c:v pdv -f pdv -max_frames 4"
fate-lavf-pdv-intra: CMD = lavf_video "-pix_fmt monob" "-frames:v 2 -g 1 -strict experimental -c:v pdv -f pdv -max_frames 2"
fate-lavf-pdv-skip-nokey: fate-lavf-pdv
fate-lavf-pdv-skip-nokey: CMD = framecrc -skip_frame nokey -i $(TARGET_PATH)/tests/data/lavf/lavf.pdv
fate-lavf-pdv-skip-nokey: REF = $(SRC_PATH)/tests/ref/fate/lavf-pdv-skip-nokey
fate-lavf-yuv422p.y4m: CMD = lavf_video "-pix_fmt yuv422p"
fate-lavf-yuv444p.y4m: CMD = lavf_video "-pix_fmt yuv444p"
fate-lavf-yuv411p.y4m: CMD = lavf_video "-pix_fmt yuv411p"

View File

@@ -153,7 +153,7 @@ FATE_SEEK += $(FATE_SEEK_LAVF_CONTAINER)
# files from fate-lavf-video
FATE_SEEK_LAVF_VIDEO += gif y4m
FATE_SEEK_LAVF_VIDEO += gif pdv y4m
FATE_SEEK_LAVF_VIDEO := $(FATE_SEEK_LAVF_VIDEO:%=fate-seek-lavf-%)
FATE_SEEK_LAVF_VIDEO := $(filter $(subst fate-,fate-seek-,$(FATE_LAVF_VIDEO)), $(FATE_SEEK_LAVF_VIDEO))

View File

@@ -0,0 +1,7 @@
#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 352x288
#sar 0: 0/1
0, 0, 0, 1, 12672, 0x1e28c46a
0, 2, 2, 1, 12672, 0x222d96d3

3
tests/ref/lavf/pdv Normal file
View File

@@ -0,0 +1,3 @@
f341a3cdce502dc622d45fb076c246e8 *tests/data/lavf/lavf.pdv
21760 tests/data/lavf/lavf.pdv
tests/data/lavf/lavf.pdv CRC=0x2e80dfe2

3
tests/ref/lavf/pdv-intra Normal file
View File

@@ -0,0 +1,3 @@
096dbc4b16d7e013a46e8d8fe7ffd58a *tests/data/lavf/lavf.pdv-intra
9554 tests/data/lavf/lavf.pdv-intra
tests/data/lavf/lavf.pdv-intra CRC=0x9f1c773f

40
tests/ref/seek/lavf-pdv Normal file
View File

@@ -0,0 +1,40 @@
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 48 size: 4734
ret: 0 st:-1 flags:0 ts:-1.000000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 48 size: 4734
ret: 0 st:-1 flags:1 ts: 1.894167
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret:-1 st: 0 flags:0 ts: 0.800000
ret:-1 st: 0 flags:1 ts:-0.320000
ret:-1 st:-1 flags:0 ts: 2.576668
ret: 0 st:-1 flags:1 ts: 1.470835
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret:-1 st: 0 flags:0 ts: 0.360000
ret:-1 st: 0 flags:1 ts:-0.760000
ret:-1 st:-1 flags:0 ts: 2.153336
ret: 0 st:-1 flags:1 ts: 1.047503
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret: 0 st: 0 flags:0 ts:-0.040000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 48 size: 4734
ret: 0 st: 0 flags:1 ts: 2.840000
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret:-1 st:-1 flags:0 ts: 1.730004
ret: 0 st:-1 flags:1 ts: 0.624171
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret: 0 st: 0 flags:0 ts:-0.480000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 48 size: 4734
ret: 0 st: 0 flags:1 ts: 2.400000
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret:-1 st:-1 flags:0 ts: 1.306672
ret: 0 st:-1 flags:1 ts: 0.200839
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret: 0 st: 0 flags:0 ts:-0.920000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 48 size: 4734
ret: 0 st: 0 flags:1 ts: 2.000000
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret:-1 st:-1 flags:0 ts: 0.883340
ret:-1 st:-1 flags:1 ts:-0.222493
ret:-1 st: 0 flags:0 ts: 2.680000
ret: 0 st: 0 flags:1 ts: 1.560000
ret: 0 st: 0 flags:1 dts: 0.080000 pts: 0.080000 pos: 10693 size: 4793
ret:-1 st:-1 flags:0 ts: 0.460008
ret:-1 st:-1 flags:1 ts:-0.645825