Add flag to remove MD5 hooks from decoder
diff --git a/libFLAC/stream_decoder.c b/libFLAC/stream_decoder.c
index 4d86fda..916fde6 100644
--- a/libFLAC/stream_decoder.c
+++ b/libFLAC/stream_decoder.c
@@ -193,7 +193,9 @@
 	FLAC__bool do_md5_checking; /* initially gets protected_->md5_checking but is turned off after a seek or if the metadata has a zero MD5 */
 	FLAC__bool internal_reset_hack; /* used only during init() so we can call reset to set up the decoder without rewinding the input */
 	FLAC__bool is_seeking;
+#ifndef FLAC__NO_MD5
 	FLAC__MD5Context md5context;
+#endif
 	FLAC__byte computed_md5sum[16]; /* this is the sum we computed from the decoded data */
 	/* (the rest of these are only used for seeking) */
 	FLAC__Frame last_frame; /* holds the info of the last frame we seeked to */
@@ -672,10 +674,12 @@
 	if(decoder->protected_->state == FLAC__STREAM_DECODER_UNINITIALIZED)
 		return true;
 
+#ifndef FLAC__NO_MD5
 	/* see the comment in FLAC__seekable_stream_decoder_reset() as to why we
 	 * always call FLAC__MD5Final()
 	 */
 	FLAC__MD5Final(decoder->private_->computed_md5sum, &decoder->private_->md5context);
+#endif
 
 	if(decoder->private_->has_seek_table && 0 != decoder->private_->seek_table.data.seek_table.points) {
 		free(decoder->private_->seek_table.data.seek_table.points);
@@ -1021,6 +1025,7 @@
 	 */
 	decoder->private_->fixed_block_size = decoder->private_->next_fixed_block_size = 0;
 
+#ifndef FLAC__NO_MD5
 	/* We initialize the FLAC__MD5Context even though we may never use it.  This
 	 * is because md5 checking may be turned on to start and then turned off if
 	 * a seek occurs.  So we init the context here and finalize it in
@@ -1028,6 +1033,7 @@
 	 * properly.
 	 */
 	FLAC__MD5Init(&decoder->private_->md5context);
+#endif
 
 	decoder->private_->first_frame_offset = 0;
 	decoder->private_->unparseable_frame_count = 0;
@@ -2953,10 +2959,12 @@
 		 */
 		if(!decoder->private_->has_stream_info)
 			decoder->private_->do_md5_checking = false;
+#ifndef FLAC__NO_MD5
 		if(decoder->private_->do_md5_checking) {
 			if(!FLAC__MD5Accumulate(&decoder->private_->md5context, buffer, frame->header.channels, frame->header.blocksize, (frame->header.bits_per_sample+7) / 8))
 				return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
 		}
+#endif
 		return decoder->private_->write_callback(decoder, frame, buffer, decoder->private_->client_data);
 	}
 }