Re: Undithered digital silence causing problems
Reply #9 – 2021-12-02 19:21:54
Most Windows software that I have, have no problem with this file, including Winamp native and old with the plugin, SMPlayer/MPV, Foobar old and new, XMPlay, AIMP, DirectShow/DC-Bass, iZotope RX5, OpenMPT, MPC-HC/old, MPC-HC/LAV, Reaper 6, SoX. Then it is less of a problem than I feared. Well such files should go into the testbench Yes, seems like a good fit.That points towards further restrictions to today's "Subset". More layers of strictness/laxness wouldn't be optimal, but if the mountain won't come to Muhammad ... The reason I suggested it could be linked to using --lax is because this problem makes streaming difficult. Seeking is something that players must fix, but I think getting players to not stop playing because a buffer runs thin on a bitrate of 1.4kbit/s (that means a single TCP/IP packet of 1500 byte can contain more than 8 seconds of silence) is way more difficult. The goal of the FLAC subset is twofold: to enable streaming and to lower requirements on hardware implementations. This is clearly something that has to do with enabling streaming. I see a couple of optionsLink it to the usage of --lax, because it is streaming related. When someone uses --lax, the encoder no longer ensures no block with only constant subframes are created Link it to a compression level. This can technically be done without changing the API/ABI, but this is not nice to users as they cannot choose for themselves to enable or disable it Create a new option in FLAC and new functions in libFLAC API/ABI. While not really a problem, I prefer not touching the API/ABI when possible. It will also require modifying streaming server applications using libFLAC Create a compile-time option, so a special libFLAC with this enabled can be distributed for use with FLAC streaming server applications. This can only be used for such applications where FLAC is dynamically linked (in other words, libFLAC is a dll or so) The last option is probably the cleanest, and more or less what is happening right now as I asked a few people through github to test this patch for me.