#include #include // compile with: // gcc -O2 -S -o test.s test.c typedef struct { FLAC__bool has_md5sum; } DecoderSession; void callback1(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) { DecoderSession *decoder_session = (DecoderSession*)client_data; decoder_session->has_md5sum = memcmp(metadata->data.stream_info.md5sum, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16); } void callback2(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) { DecoderSession *decoder_session = (DecoderSession*)client_data; decoder_session->has_md5sum = memcmp(metadata->data.stream_info.md5sum, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) != 0; } void callback3(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) { DecoderSession *decoder_session = (DecoderSession*)client_data; FLAC__byte emptyMD5[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; decoder_session->has_md5sum = memcmp(metadata->data.stream_info.md5sum, emptyMD5, 16); }