Subsampling mode and resolution (especially doubly-odd resolutions)
num_points_y, num_points_uv[] N or 0
chroma_scaling_from_luma 1 or 0
overlap_flag 1 or 0
(clip_to_restricted_range 1 or 0)
These are the ones that actually modify the algorithm flow. The others just affect the appearance of the output.
I don't know of a good way to generate AV1 files with film grain, but I could write C code to generate a set of interesting Dav1dFilmGrainData structs. The most important part for me would be comparing against reference output from libaom for the same structs.
Subsampling mode and resolution (especially doubly-odd resolutions)
$ for file in ../tests/dav1d-test-data//8-bit/features/ccvb_film_grain.ivf ../tests/dav1d-test-data//8-bit/film_grain/av1-1-b8-23-film_grain-50.ivf ../tests/dav1d-test-data//8-bit/issues/309_odd_width.ivf ../tests/dav1d-test-data//8-bit/vq_suite/Syntax_AV1_mainb8ss420_432x240_018_vq_aom_ctest_4.2.stripped.ivf ../tests/dav1d-test-data//10-bit/film_grain/av1-1-b10-23-film_grain-50.ivf; do ffprobe $file; done 2>&1 | grep yuv | cut -d, -f2|sort -u yuv420p(pc yuv420p(tv) yuv420p10le(tv)$ for file in ../tests/dav1d-test-data//8-bit/features/ccvb_film_grain.ivf ../tests/dav1d-test-data//8-bit/film_grain/av1-1-b8-23-film_grain-50.ivf ../tests/dav1d-test-data//8-bit/issues/309_odd_width.ivf ../tests/dav1d-test-data//8-bit/vq_suite/Syntax_AV1_mainb8ss420_432x240_018_vq_aom_ctest_4.2.stripped.ivf ../tests/dav1d-test-data//10-bit/film_grain/av1-1-b10-23-film_grain-50.ivf; do ffprobe $file; done 2>&1 | grep yuv | cut -d\) -f4|cut -d, -f2|cut -d\ -f2640x480352x288179x120432x240352x288
[edit]
Bitdepth-separated, including argon samples:
8bit
640x480352x288179x120432x240
10bit
352x2882955x25617x8618x365242x35826x22
[/edit]
Conclusion: we test odd width (8-bit/issues/309_odd_width.ivf) but not odd height (for 8bit). All samples are yuv420p (8bit or 10bit). So what we need:
odd width (see above: 8-bit/issues/309_odd_width.ivf & 10-bit/argon/test185_302.obu)
We test both, so this is done. [edit] and I checked to make sure this is true for 8bit as well as 10bit files [/edit]
(clip_to_restricted_range 1 or 0)
Chroma clips differently depending on is_id, basically seq_hdr->mtrx == DAV1D_MC_IDENTITY. So we need identity and non-identity matrices for clip=1.
The only file with color_description_present_flag = 1 is 8-bit/vq_suite/Syntax_AV1_mainb8ss420_432x240_018_vq_aom_ctest_4.2.stripped.ivf. In this file, matrix_coefficients = 113, which has no meaning but implies is_id = 0. So, in short, all our files are is_id = 0. We have both modes of clipping: