link mostra esta informação:
Instead, when you decompress or use flac's Test feature, FLAC automatically verifies each file against an internal checksum stored in the file.
Note that a flac fingerprint isn't a checksum of the encoded flac data - it's a checksum of the decoded music data. So to test the file, flac decodes the data in the file and verifies that the checksum of the music data matches the (internally stored) flac fingerprint.
This has a few interesting implications:
When flac decodes, it checks the file (and each part of the file) against the internal checksum data. If a flac file decodes without error, it's a good file - as long as you are using an application that reports decoding errors!
Isto parece implicar que tanto o CRC quanto o MD5 são verificados, uma vez que os CRCs são apenas para quadros. Fiz um pequeno teste e recebi 2:FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH
, o que é esperado. Analisando o código , o seguinte implica que está sempre marcado:
/*
* undocumented debugging options for the test suite
*/
{ "no-md5-sum" , share__no_argument, 0, 0 },
Por padrão, está definido :
FLAC__stream_decoder_set_md5_checking(decoder_session->decoder, true);
Set the "MD5 signature checking" flag. If true, the decoder will compute the MD5 signature of the unencoded audio data while decoding and compare it to the signature from the STREAMINFO block, if it exists, during FLAC__stream_decoder_finish().
É como a resposta de sendmoreinfo indica:
The most reliable source is the source code itself, and it does suggest that MD5 stored in STREAMINFO is checked by default.