Hi Jason On Sat, Dec 20, 2025 at 10:28:39PM +0100, Jason A. Donenfeld via ffmpeg-devel wrote: > Currently if you encode a large wav, ffmpeg will hint after the fact > that the resultant file is corrupted, because traditional wav cannot > handle lengths greater than 32-bits. This isn't very useful; nobody > benefits from getting garbage files. > > You can manually work around this by adding `-rf64 always`, which most > players have support for. Most people don't remember to do this until > after the fact when their file is corrupted, or they don't figure it out > at all and wind up using the w64 container instead. > > And so that's what `-rf64 auto` is for. It uses the larger format when > needed, and if not, uses the traditional wav that is probably more > compatible. The result of using `-rf64 auto` is that you can add it to > every command line -- and should add it to every command line -- to get > either a normal small file, or a non-corrupt large file. > > This is a very sensible default to have on, rather than just producing > corrupt files and having users scrambling for solutions, and then having > to do a potentially expensive reencode after. With `-rf64 auto` on by > default, the user always gets a readable good file. And for users who > sometimes want corrupt files, there still exists `-rf64 never` that can > be enabled. > --- > libavformat/wavenc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c > index a515f4e2a2..835a2157bc 100644 > --- a/libavformat/wavenc.c > +++ b/libavformat/wavenc.c > @@ -487,7 +487,7 @@ static const AVOption options[] = { > { "off", "Do not write peak chunk.", 0, AV_OPT_TYPE_CONST, { .i64 = PEAK_OFF }, 0, 0, ENC, .unit = "peak" }, > { "on", "Append peak chunk after wav data.", 0, AV_OPT_TYPE_CONST, { .i64 = PEAK_ON }, 0, 0, ENC, .unit = "peak" }, > { "only", "Write only peak chunk, omit wav data.", 0, AV_OPT_TYPE_CONST, { .i64 = PEAK_ONLY }, 0, 0, ENC, .unit = "peak" }, > - { "rf64", "Use RF64 header rather than RIFF for large files.", OFFSET(rf64), AV_OPT_TYPE_INT, { .i64 = RF64_NEVER },-1, 1, ENC, .unit = "rf64" }, > + { "rf64", "Use RF64 header rather than RIFF for large files.", OFFSET(rf64), AV_OPT_TYPE_INT, { .i64 = RF64_AUTO },-1, 1, ENC, .unit = "rf64" }, > { "auto", "Write RF64 header if file grows large enough.", 0, AV_OPT_TYPE_CONST, { .i64 = RF64_AUTO }, 0, 0, ENC, .unit = "rf64" }, > { "always", "Always write RF64 header regardless of file size.", 0, AV_OPT_TYPE_CONST, { .i64 = RF64_ALWAYS }, 0, 0, ENC, .unit = "rf64" }, > { "never", "Never write RF64 header regardless of file size.", 0, AV_OPT_TYPE_CONST, { .i64 = RF64_NEVER }, 0, 0, ENC, .unit = "rf64" }, breaks fate: --- - 2025-12-21 04:04:18.901071242 +0100 +++ tests/data/fate/filter-channelmap-one-str 2025-12-21 04:04:18.898363748 +0100 @@ -1 +1 @@ -e18791f65ce5861e130b2c3e472ab90a +8f8a664b694f18e1e9ae1b9ccfa6f30c Test filter-channelmap-one-str failed. Look at tests/data/fate/filter-channelmap-one-str.err for details. make: *** [tests/Makefile:323: fate-filter-channelmap-one-str] Error 1 if this change is intended, then update the fate tests and explain in the commit message why they change thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The real ebay dictionary, page 1 "Used only once" - "Some unspecified defect prevented a second use" "In good condition" - "Can be repaird by experienced expert" "As is" - "You wouldnt want it even if you were payed for it, if you knew ..."