mirror of
https://github.com/claunia/flac.git
synced 2025-12-16 18:54:26 +00:00
minor formatting
This commit is contained in:
@@ -107,16 +107,16 @@ extern "C" {
|
||||
*/
|
||||
typedef enum {
|
||||
|
||||
FLAC__FILE_DECODER_OK = 0,
|
||||
FLAC__FILE_DECODER_OK = 0,
|
||||
/**< The decoder is in the normal OK state. */
|
||||
|
||||
FLAC__FILE_DECODER_END_OF_FILE,
|
||||
/**< The decoder has reached the end of the file. */
|
||||
|
||||
FLAC__FILE_DECODER_ERROR_OPENING_FILE,
|
||||
FLAC__FILE_DECODER_ERROR_OPENING_FILE,
|
||||
/**< An error occurred opening the input file. */
|
||||
|
||||
FLAC__FILE_DECODER_MEMORY_ALLOCATION_ERROR,
|
||||
FLAC__FILE_DECODER_MEMORY_ALLOCATION_ERROR,
|
||||
/**< An error occurred allocating memory. */
|
||||
|
||||
FLAC__FILE_DECODER_SEEK_ERROR,
|
||||
@@ -125,18 +125,18 @@ typedef enum {
|
||||
FLAC__FILE_DECODER_SEEKABLE_STREAM_DECODER_ERROR,
|
||||
/**< An error occurred in the underlying seekable stream decoder. */
|
||||
|
||||
FLAC__FILE_DECODER_ALREADY_INITIALIZED,
|
||||
FLAC__FILE_DECODER_ALREADY_INITIALIZED,
|
||||
/**< FLAC__file_decoder_init() was called when the decoder was already
|
||||
* initialized, usually because FLAC__file_decoder_finish() was not
|
||||
* called.
|
||||
* called.
|
||||
*/
|
||||
|
||||
FLAC__FILE_DECODER_INVALID_CALLBACK,
|
||||
FLAC__FILE_DECODER_INVALID_CALLBACK,
|
||||
/**< FLAC__file_decoder_init() was called without all callbacks
|
||||
* being set.
|
||||
*/
|
||||
|
||||
FLAC__FILE_DECODER_UNINITIALIZED
|
||||
FLAC__FILE_DECODER_UNINITIALIZED
|
||||
/**< The decoder is in the uninitialized state. */
|
||||
|
||||
} FLAC__FileDecoderState;
|
||||
|
||||
@@ -107,7 +107,7 @@ typedef enum {
|
||||
FLAC__FILE_ENCODER_FATAL_ERROR_WHILE_WRITING,
|
||||
/**< A fatal error occurred while writing to the encoded file. */
|
||||
|
||||
FLAC__FILE_ENCODER_ERROR_OPENING_FILE,
|
||||
FLAC__FILE_ENCODER_ERROR_OPENING_FILE,
|
||||
/**< An error occurred opening the output file for writing. */
|
||||
|
||||
FLAC__FILE_ENCODER_MEMORY_ALLOCATION_ERROR,
|
||||
|
||||
@@ -172,7 +172,7 @@ extern const unsigned FLAC__STREAM_SYNC_LEN; /* = 32 bits */
|
||||
typedef enum {
|
||||
FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE = 0
|
||||
/**< Residual is coded by partitioning into contexts, each with it's own
|
||||
* Rice parameter. */
|
||||
* Rice parameter. */
|
||||
} FLAC__EntropyCodingMethodType;
|
||||
|
||||
/** Maps a FLAC__EntropyCodingMethodType to a C string.
|
||||
|
||||
@@ -118,7 +118,7 @@ extern "C" {
|
||||
*/
|
||||
typedef enum {
|
||||
|
||||
FLAC__SEEKABLE_STREAM_DECODER_OK = 0,
|
||||
FLAC__SEEKABLE_STREAM_DECODER_OK = 0,
|
||||
/**< The decoder is in the normal OK state. */
|
||||
|
||||
FLAC__SEEKABLE_STREAM_DECODER_SEEKING,
|
||||
@@ -141,18 +141,18 @@ typedef enum {
|
||||
* callback returned an error.
|
||||
*/
|
||||
|
||||
FLAC__SEEKABLE_STREAM_DECODER_ALREADY_INITIALIZED,
|
||||
FLAC__SEEKABLE_STREAM_DECODER_ALREADY_INITIALIZED,
|
||||
/**< FLAC__seekable_stream_decoder_init() was called when the
|
||||
* decoder was already initialized, usually because
|
||||
* FLAC__seekable_stream_decoder_finish() was not called.
|
||||
*/
|
||||
|
||||
FLAC__SEEKABLE_STREAM_DECODER_INVALID_CALLBACK,
|
||||
FLAC__SEEKABLE_STREAM_DECODER_INVALID_CALLBACK,
|
||||
/**< FLAC__seekable_stream_decoder_init() was called without all
|
||||
* callbacks being set.
|
||||
*/
|
||||
|
||||
FLAC__SEEKABLE_STREAM_DECODER_UNINITIALIZED
|
||||
FLAC__SEEKABLE_STREAM_DECODER_UNINITIALIZED
|
||||
/**< The decoder is in the uninitialized state. */
|
||||
|
||||
} FLAC__SeekableStreamDecoderState;
|
||||
|
||||
@@ -100,12 +100,12 @@ typedef enum {
|
||||
* FLAC__seekable_stream_encoder_finish() was not called.
|
||||
*/
|
||||
|
||||
FLAC__SEEKABLE_STREAM_ENCODER_INVALID_CALLBACK,
|
||||
FLAC__SEEKABLE_STREAM_ENCODER_INVALID_CALLBACK,
|
||||
/**< FLAC__seekable_stream_encoder_init() was called without all
|
||||
* callbacks being set.
|
||||
*/
|
||||
|
||||
FLAC__SEEKABLE_STREAM_ENCODER_INVALID_SEEKTABLE,
|
||||
FLAC__SEEKABLE_STREAM_ENCODER_INVALID_SEEKTABLE,
|
||||
/**< An invalid seek table was passed is the metadata to
|
||||
* FLAC__seekable_stream_encoder_set_metadata().
|
||||
*/
|
||||
|
||||
@@ -132,7 +132,7 @@ void OggFLAC__stream_decoder_delete(OggFLAC__StreamDecoder *decoder)
|
||||
|
||||
OggFLAC__stream_decoder_finish(decoder);
|
||||
|
||||
FLAC__stream_decoder_delete(decoder->private_->FLAC_stream_decoder);
|
||||
FLAC__stream_decoder_delete(decoder->private_->FLAC_stream_decoder);
|
||||
|
||||
free(decoder->private_);
|
||||
free(decoder->protected_);
|
||||
@@ -161,14 +161,14 @@ OggFLAC__StreamDecoderState OggFLAC__stream_decoder_init(OggFLAC__StreamDecoder
|
||||
if(ogg_sync_init(&decoder->private_->ogg.sync_state) != 0)
|
||||
return decoder->protected_->state = OggFLAC__STREAM_DECODER_OGG_ERROR;
|
||||
|
||||
FLAC__stream_decoder_set_read_callback(decoder->private_->FLAC_stream_decoder, read_callback_);
|
||||
FLAC__stream_decoder_set_write_callback(decoder->private_->FLAC_stream_decoder, write_callback_);
|
||||
FLAC__stream_decoder_set_metadata_callback(decoder->private_->FLAC_stream_decoder, metadata_callback_);
|
||||
FLAC__stream_decoder_set_error_callback(decoder->private_->FLAC_stream_decoder, error_callback_);
|
||||
FLAC__stream_decoder_set_client_data(decoder->private_->FLAC_stream_decoder, decoder);
|
||||
FLAC__stream_decoder_set_read_callback(decoder->private_->FLAC_stream_decoder, read_callback_);
|
||||
FLAC__stream_decoder_set_write_callback(decoder->private_->FLAC_stream_decoder, write_callback_);
|
||||
FLAC__stream_decoder_set_metadata_callback(decoder->private_->FLAC_stream_decoder, metadata_callback_);
|
||||
FLAC__stream_decoder_set_error_callback(decoder->private_->FLAC_stream_decoder, error_callback_);
|
||||
FLAC__stream_decoder_set_client_data(decoder->private_->FLAC_stream_decoder, decoder);
|
||||
|
||||
if(FLAC__stream_decoder_init(decoder->private_->FLAC_stream_decoder) != FLAC__STREAM_DECODER_SEARCH_FOR_METADATA)
|
||||
return decoder->protected_->state = OggFLAC__STREAM_DECODER_FLAC_STREAM_DECODER_ERROR;
|
||||
if(FLAC__stream_decoder_init(decoder->private_->FLAC_stream_decoder) != FLAC__STREAM_DECODER_SEARCH_FOR_METADATA)
|
||||
return decoder->protected_->state = OggFLAC__STREAM_DECODER_FLAC_STREAM_DECODER_ERROR;
|
||||
|
||||
return decoder->protected_->state = OggFLAC__STREAM_DECODER_OK;
|
||||
}
|
||||
|
||||
@@ -61,27 +61,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = (::FLAC__StreamMetadata_SeekPoint*)malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(::FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -90,16 +90,16 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = (FLAC__byte*)malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
@@ -169,21 +169,21 @@ public:
|
||||
|
||||
if(feof(file_))
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = ::fread(buffer, 1, *bytes, file_);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(file_))
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = ::fread(buffer, 1, *bytes, file_);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(file_))
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
}
|
||||
|
||||
::FLAC__StreamDecoderWriteStatus DecoderCommon::common_write_callback_(const ::FLAC__Frame *frame)
|
||||
@@ -191,13 +191,13 @@ public:
|
||||
if(error_occurred_)
|
||||
return ::FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
|
||||
|
||||
if(
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
if(
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
return ::FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
@@ -52,27 +52,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = (::FLAC__StreamMetadata_SeekPoint*)malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(::FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -81,22 +81,22 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = (FLAC__byte*)malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = ::FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = ::FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.length = 8;
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.entry = (FLAC__byte*)malloc_or_die_(8);
|
||||
memcpy(vorbiscomment_.data.vorbis_comment.vendor_string.entry, "flac 1.x", 8);
|
||||
|
||||
@@ -363,7 +363,7 @@ static bool test_file_(const char *filename, bool ignore_metadata)
|
||||
static bool change_stats_(const char *filename, bool read_only)
|
||||
{
|
||||
if(!file_utils__change_stats(filename, read_only))
|
||||
return die_("during file_utils__change_stats()");
|
||||
return die_("during file_utils__change_stats()");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -42,27 +42,27 @@ static void *malloc_or_die_(size_t size)
|
||||
|
||||
static void init_metadata_blocks_()
|
||||
{
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = (::FLAC__StreamMetadata_SeekPoint*)malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(::FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -71,16 +71,16 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application_.is_last = false;
|
||||
application_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application_.length = 8;
|
||||
application_.is_last = false;
|
||||
application_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application_.length = 8;
|
||||
memcpy(application_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application_.data.application.data = (FLAC__byte*)malloc_or_die_(4);
|
||||
memcpy(application_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = ::FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = ::FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.length = 5;
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.entry = (FLAC__byte*)malloc_or_die_(5);
|
||||
memcpy(vorbiscomment_.data.vorbis_comment.vendor_string.entry, "name0", 8);
|
||||
@@ -117,7 +117,7 @@ bool test_metadata_object_streaminfo()
|
||||
if(block.get_length() != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block.get_length());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing StreamInfo::StreamInfo(const StreamInfo &)... +\n");
|
||||
@@ -299,7 +299,7 @@ bool test_metadata_object_padding()
|
||||
if(block.get_length() != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block.get_length());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Padding::Padding(const Padding &)... +\n");
|
||||
@@ -409,7 +409,7 @@ bool test_metadata_object_application()
|
||||
if(block.get_length() != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block.get_length());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Application::Application(const Application &)... +\n");
|
||||
@@ -528,7 +528,7 @@ bool test_metadata_object_seektable()
|
||||
if(block.get_length() != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block.get_length());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing SeekTable::SeekTable(const SeekTable &)... +\n");
|
||||
@@ -790,7 +790,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
if(block.get_length() != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block.get_length());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing VorbisComment::VorbisComment(const VorbisComment &)... +\n");
|
||||
|
||||
@@ -125,27 +125,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -154,16 +154,16 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
@@ -227,21 +227,21 @@ static FLAC__StreamDecoderReadStatus stream_decoder_read_callback_(const FLAC__S
|
||||
|
||||
if(feof(dcd->file))
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = fread(buffer, 1, *bytes, dcd->file);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(dcd->file))
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = fread(buffer, 1, *bytes, dcd->file);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(dcd->file))
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
}
|
||||
|
||||
static FLAC__StreamDecoderWriteStatus stream_decoder_write_callback_(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
|
||||
@@ -258,13 +258,13 @@ static FLAC__StreamDecoderWriteStatus stream_decoder_write_callback_(const FLAC_
|
||||
if(dcd->error_occurred)
|
||||
return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
|
||||
|
||||
if(
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
if(
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
@@ -118,27 +118,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -147,22 +147,22 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.length = 8;
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.entry = malloc_or_die_(8);
|
||||
memcpy(vorbiscomment_.data.vorbis_comment.vendor_string.entry, "flac 1.x", 8);
|
||||
|
||||
@@ -377,7 +377,7 @@ static FLAC__bool test_file_(const char *filename, void (*metadata_callback)(con
|
||||
static FLAC__bool change_stats_(const char *filename, FLAC__bool read_only)
|
||||
{
|
||||
if(!file_utils__change_stats(filename, read_only))
|
||||
return die_("during file_utils__change_stats()");
|
||||
return die_("during file_utils__change_stats()");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ static FLAC__bool check_seektable_(const FLAC__StreamMetadata *block, unsigned n
|
||||
if(block->length != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block->length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(block->data.seek_table.num_points != num_points) {
|
||||
printf("FAILED, expected %u point, got %u\n", num_points, block->data.seek_table.num_points);
|
||||
return false;
|
||||
@@ -206,7 +206,7 @@ FLAC__bool test_metadata_object()
|
||||
if(block->length != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block->length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing FLAC__metadata_object_clone()... ");
|
||||
@@ -237,7 +237,7 @@ FLAC__bool test_metadata_object()
|
||||
if(block->length != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block->length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing FLAC__metadata_object_clone()... ");
|
||||
@@ -268,7 +268,7 @@ FLAC__bool test_metadata_object()
|
||||
if(block->length != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block->length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing FLAC__metadata_object_clone()... ");
|
||||
@@ -539,7 +539,7 @@ FLAC__bool test_metadata_object()
|
||||
if(!check_seektable_(block, seekpoints, seekpoint_array))
|
||||
return false;
|
||||
|
||||
{
|
||||
{
|
||||
FLAC__uint64 nums[2] = { 3, 7 };
|
||||
seekpoint_array[seekpoints++].sample_number = nums[0];
|
||||
seekpoint_array[seekpoints++].sample_number = nums[1];
|
||||
@@ -612,7 +612,7 @@ FLAC__bool test_metadata_object()
|
||||
if(block->length != expected_length) {
|
||||
printf("FAILED, bad length, expected %u, got %u\n", expected_length, block->length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing FLAC__metadata_object_clone()... ");
|
||||
|
||||
@@ -31,35 +31,35 @@ FLAC__bool compare_block_data_streaminfo_(const FLAC__StreamMetadata_StreamInfo
|
||||
if(blockcopy->min_blocksize != block->min_blocksize) {
|
||||
printf("FAILED, min_blocksize mismatch, expected %u, got %u\n", block->min_blocksize, blockcopy->min_blocksize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->max_blocksize != block->max_blocksize) {
|
||||
printf("FAILED, max_blocksize mismatch, expected %u, got %u\n", block->max_blocksize, blockcopy->max_blocksize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->min_framesize != block->min_framesize) {
|
||||
printf("FAILED, min_framesize mismatch, expected %u, got %u\n", block->min_framesize, blockcopy->min_framesize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->max_framesize != block->max_framesize) {
|
||||
printf("FAILED, max_framesize mismatch, expected %u, got %u\n", block->max_framesize, blockcopy->max_framesize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->sample_rate != block->sample_rate) {
|
||||
printf("FAILED, sample_rate mismatch, expected %u, got %u\n", block->sample_rate, blockcopy->sample_rate);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->channels != block->channels) {
|
||||
printf("FAILED, channels mismatch, expected %u, got %u\n", block->channels, blockcopy->channels);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->bits_per_sample != block->bits_per_sample) {
|
||||
printf("FAILED, bits_per_sample mismatch, expected %u, got %u\n", block->bits_per_sample, blockcopy->bits_per_sample);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->total_samples != block->total_samples) {
|
||||
printf("FAILED, total_samples mismatch, expected %llu, got %llu\n", block->total_samples, blockcopy->total_samples);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(0 != memcmp(blockcopy->md5sum, block->md5sum, sizeof(block->md5sum))) {
|
||||
printf("FAILED, md5sum mismatch, expected %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X, got %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X\n",
|
||||
(unsigned)block->md5sum[0],
|
||||
@@ -96,7 +96,7 @@ FLAC__bool compare_block_data_streaminfo_(const FLAC__StreamMetadata_StreamInfo
|
||||
(unsigned)blockcopy->md5sum[15]
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ FLAC__bool compare_block_data_application_(const FLAC__StreamMetadata_Applicatio
|
||||
(unsigned)blockcopy->id[3]
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(0 == block->data || 0 == blockcopy->data) {
|
||||
if(block->data != blockcopy->data) {
|
||||
printf("FAILED, data mismatch (%s's data pointer is null)\n", 0==block->data?"original":"copy");
|
||||
@@ -155,7 +155,7 @@ FLAC__bool compare_block_data_seektable_(const FLAC__StreamMetadata_SeekTable *b
|
||||
if(blockcopy->num_points != block->num_points) {
|
||||
printf("FAILED, num_points mismatch, expected %u, got %u\n", block->num_points, blockcopy->num_points);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for(i = 0; i < block->num_points; i++) {
|
||||
if(blockcopy->points[i].sample_number != block->points[i].sample_number) {
|
||||
printf("FAILED, points[%u].sample_number mismatch, expected %llu, got %llu\n", i, block->points[i].sample_number, blockcopy->points[i].sample_number);
|
||||
@@ -179,7 +179,7 @@ FLAC__bool compare_block_data_vorbiscomment_(const FLAC__StreamMetadata_VorbisCo
|
||||
if(blockcopy->vendor_string.length != block->vendor_string.length) {
|
||||
printf("FAILED, vendor_string.length mismatch, expected %u, got %u\n", block->vendor_string.length, blockcopy->vendor_string.length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(0 == block->vendor_string.entry || 0 == blockcopy->vendor_string.entry) {
|
||||
if(block->vendor_string.entry != blockcopy->vendor_string.entry) {
|
||||
printf("FAILED, vendor_string.entry mismatch\n");
|
||||
@@ -189,11 +189,11 @@ FLAC__bool compare_block_data_vorbiscomment_(const FLAC__StreamMetadata_VorbisCo
|
||||
else if(0 != memcmp(blockcopy->vendor_string.entry, block->vendor_string.entry, block->vendor_string.length)) {
|
||||
printf("FAILED, vendor_string.entry mismatch\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->num_comments != block->num_comments) {
|
||||
printf("FAILED, num_comments mismatch, expected %u, got %u\n", block->num_comments, blockcopy->num_comments);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for(i = 0; i < block->num_comments; i++) {
|
||||
if(blockcopy->comments[i].length != block->comments[i].length) {
|
||||
printf("FAILED, comments[%u].length mismatch, expected %u, got %u\n", i, block->comments[i].length, blockcopy->comments[i].length);
|
||||
@@ -220,15 +220,15 @@ FLAC__bool compare_block_(const FLAC__StreamMetadata *block, const FLAC__StreamM
|
||||
if(blockcopy->type != block->type) {
|
||||
printf("FAILED, type mismatch, expected %s, got %s\n", FLAC__MetadataTypeString[block->type], FLAC__MetadataTypeString[blockcopy->type]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->is_last != block->is_last) {
|
||||
printf("FAILED, is_last mismatch, expected %u, got %u\n", (unsigned)block->is_last, (unsigned)blockcopy->is_last);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->length != block->length) {
|
||||
printf("FAILED, length mismatch, expected %u, got %u\n", block->length, blockcopy->length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
switch(block->type) {
|
||||
case FLAC__METADATA_TYPE_STREAMINFO:
|
||||
return compare_block_data_streaminfo_(&block->data.stream_info, &blockcopy->data.stream_info);
|
||||
|
||||
@@ -61,27 +61,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = (::FLAC__StreamMetadata_SeekPoint*)malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(::FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -90,16 +90,16 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = (FLAC__byte*)malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
@@ -169,21 +169,21 @@ public:
|
||||
|
||||
if(feof(file_))
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = ::fread(buffer, 1, *bytes, file_);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(file_))
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = ::fread(buffer, 1, *bytes, file_);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(file_))
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return ::FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
}
|
||||
|
||||
::FLAC__StreamDecoderWriteStatus DecoderCommon::common_write_callback_(const ::FLAC__Frame *frame)
|
||||
@@ -191,13 +191,13 @@ public:
|
||||
if(error_occurred_)
|
||||
return ::FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
|
||||
|
||||
if(
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
if(
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == ::FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
return ::FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
@@ -51,27 +51,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = ::FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = ::FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = (::FLAC__StreamMetadata_SeekPoint*)malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(::FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -80,22 +80,22 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = (FLAC__byte*)malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = ::FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = ::FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = ::FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.length = 8;
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.entry = (FLAC__byte*)malloc_or_die_(8);
|
||||
memcpy(vorbiscomment_.data.vorbis_comment.vendor_string.entry, "flac 1.x", 8);
|
||||
|
||||
@@ -84,27 +84,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -113,16 +113,16 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
@@ -134,7 +134,7 @@ static void init_metadata_blocks_()
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.length = vendor_string_length;
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.entry = malloc_or_die_(vendor_string_length);
|
||||
memcpy(vorbiscomment_.data.vorbis_comment.vendor_string.entry, FLAC__VENDOR_STRING, vendor_string_length);
|
||||
vorbiscomment_.data.vorbis_comment.num_comments = 2;
|
||||
vorbiscomment_.data.vorbis_comment.num_comments = 2;
|
||||
vorbiscomment_.data.vorbis_comment.comments = malloc_or_die_(vorbiscomment_.data.vorbis_comment.num_comments * sizeof(FLAC__StreamMetadata_VorbisComment_Entry));
|
||||
vorbiscomment_.data.vorbis_comment.comments[0].length = 5;
|
||||
vorbiscomment_.data.vorbis_comment.comments[0].entry = malloc_or_die_(5);
|
||||
@@ -186,21 +186,21 @@ static FLAC__StreamDecoderReadStatus stream_decoder_read_callback_(const OggFLAC
|
||||
|
||||
if(feof(dcd->file))
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = fread(buffer, 1, *bytes, dcd->file);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(dcd->file))
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
else if(*bytes > 0) {
|
||||
unsigned bytes_read = fread(buffer, 1, *bytes, dcd->file);
|
||||
if(bytes_read == 0) {
|
||||
if(feof(dcd->file))
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
else {
|
||||
*bytes = bytes_read;
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */
|
||||
}
|
||||
|
||||
static FLAC__StreamDecoderWriteStatus stream_decoder_write_callback_(const OggFLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
|
||||
@@ -217,13 +217,13 @@ static FLAC__StreamDecoderWriteStatus stream_decoder_write_callback_(const OggFL
|
||||
if(dcd->error_occurred)
|
||||
return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
|
||||
|
||||
if(
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
if(
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER && frame->header.number.frame_number == 0) ||
|
||||
(frame->header.number_type == FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER && frame->header.number.sample_number == 0)
|
||||
) {
|
||||
printf("content... ");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
@@ -72,27 +72,27 @@ static void init_metadata_blocks_()
|
||||
*/
|
||||
|
||||
/* min/max_framesize and md5sum don't get written at first, so we have to leave them 0 */
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
streaminfo_.is_last = false;
|
||||
streaminfo_.type = FLAC__METADATA_TYPE_STREAMINFO;
|
||||
streaminfo_.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
|
||||
streaminfo_.data.stream_info.min_blocksize = 576;
|
||||
streaminfo_.data.stream_info.max_blocksize = 576;
|
||||
streaminfo_.data.stream_info.min_framesize = 0;
|
||||
streaminfo_.data.stream_info.max_framesize = 0;
|
||||
streaminfo_.data.stream_info.sample_rate = 44100;
|
||||
streaminfo_.data.stream_info.channels = 1;
|
||||
streaminfo_.data.stream_info.bits_per_sample = 8;
|
||||
streaminfo_.data.stream_info.total_samples = 0;
|
||||
memset(streaminfo_.data.stream_info.md5sum, 0, 16);
|
||||
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
padding_.is_last = false;
|
||||
padding_.type = FLAC__METADATA_TYPE_PADDING;
|
||||
padding_.length = 1234;
|
||||
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.is_last = false;
|
||||
seektable_.type = FLAC__METADATA_TYPE_SEEKTABLE;
|
||||
seektable_.data.seek_table.num_points = 2;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.length = seektable_.data.seek_table.num_points * FLAC__STREAM_METADATA_SEEKPOINT_LENGTH;
|
||||
seektable_.data.seek_table.points = malloc_or_die_(seektable_.data.seek_table.num_points * sizeof(FLAC__StreamMetadata_SeekPoint));
|
||||
seektable_.data.seek_table.points[0].sample_number = 0;
|
||||
seektable_.data.seek_table.points[0].stream_offset = 0;
|
||||
@@ -101,22 +101,22 @@ static void init_metadata_blocks_()
|
||||
seektable_.data.seek_table.points[1].stream_offset = 1000;
|
||||
seektable_.data.seek_table.points[1].frame_samples = streaminfo_.data.stream_info.min_blocksize;
|
||||
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
application1_.is_last = false;
|
||||
application1_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application1_.length = 8;
|
||||
memcpy(application1_.data.application.id, "\xfe\xdc\xba\x98", 4);
|
||||
application1_.data.application.data = malloc_or_die_(4);
|
||||
memcpy(application1_.data.application.data, "\xf0\xe1\xd2\xc3", 4);
|
||||
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
application2_.is_last = false;
|
||||
application2_.type = FLAC__METADATA_TYPE_APPLICATION;
|
||||
application2_.length = 4;
|
||||
memcpy(application2_.data.application.id, "\x76\x54\x32\x10", 4);
|
||||
application2_.data.application.data = 0;
|
||||
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.is_last = true;
|
||||
vorbiscomment_.type = FLAC__METADATA_TYPE_VORBIS_COMMENT;
|
||||
vorbiscomment_.length = (4 + 8) + 4 + (4 + 5) + (4 + 0);
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.length = 8;
|
||||
vorbiscomment_.data.vorbis_comment.vendor_string.entry = malloc_or_die_(8);
|
||||
memcpy(vorbiscomment_.data.vorbis_comment.vendor_string.entry, "flac 1.x", 8);
|
||||
|
||||
@@ -31,35 +31,35 @@ FLAC__bool compare_block_data_streaminfo_(const FLAC__StreamMetadata_StreamInfo
|
||||
if(blockcopy->min_blocksize != block->min_blocksize) {
|
||||
printf("FAILED, min_blocksize mismatch, expected %u, got %u\n", block->min_blocksize, blockcopy->min_blocksize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->max_blocksize != block->max_blocksize) {
|
||||
printf("FAILED, max_blocksize mismatch, expected %u, got %u\n", block->max_blocksize, blockcopy->max_blocksize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->min_framesize != block->min_framesize) {
|
||||
printf("FAILED, min_framesize mismatch, expected %u, got %u\n", block->min_framesize, blockcopy->min_framesize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->max_framesize != block->max_framesize) {
|
||||
printf("FAILED, max_framesize mismatch, expected %u, got %u\n", block->max_framesize, blockcopy->max_framesize);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->sample_rate != block->sample_rate) {
|
||||
printf("FAILED, sample_rate mismatch, expected %u, got %u\n", block->sample_rate, blockcopy->sample_rate);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->channels != block->channels) {
|
||||
printf("FAILED, channels mismatch, expected %u, got %u\n", block->channels, blockcopy->channels);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->bits_per_sample != block->bits_per_sample) {
|
||||
printf("FAILED, bits_per_sample mismatch, expected %u, got %u\n", block->bits_per_sample, blockcopy->bits_per_sample);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->total_samples != block->total_samples) {
|
||||
printf("FAILED, total_samples mismatch, expected %llu, got %llu\n", block->total_samples, blockcopy->total_samples);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(0 != memcmp(blockcopy->md5sum, block->md5sum, sizeof(block->md5sum))) {
|
||||
printf("FAILED, md5sum mismatch, expected %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X, got %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X\n",
|
||||
(unsigned)block->md5sum[0],
|
||||
@@ -96,7 +96,7 @@ FLAC__bool compare_block_data_streaminfo_(const FLAC__StreamMetadata_StreamInfo
|
||||
(unsigned)blockcopy->md5sum[15]
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ FLAC__bool compare_block_data_application_(const FLAC__StreamMetadata_Applicatio
|
||||
(unsigned)blockcopy->id[3]
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(0 == block->data || 0 == blockcopy->data) {
|
||||
if(block->data != blockcopy->data) {
|
||||
printf("FAILED, data mismatch (%s's data pointer is null)\n", 0==block->data?"original":"copy");
|
||||
@@ -155,7 +155,7 @@ FLAC__bool compare_block_data_seektable_(const FLAC__StreamMetadata_SeekTable *b
|
||||
if(blockcopy->num_points != block->num_points) {
|
||||
printf("FAILED, num_points mismatch, expected %u, got %u\n", block->num_points, blockcopy->num_points);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for(i = 0; i < block->num_points; i++) {
|
||||
if(blockcopy->points[i].sample_number != block->points[i].sample_number) {
|
||||
printf("FAILED, points[%u].sample_number mismatch, expected %llu, got %llu\n", i, block->points[i].sample_number, blockcopy->points[i].sample_number);
|
||||
@@ -179,7 +179,7 @@ FLAC__bool compare_block_data_vorbiscomment_(const FLAC__StreamMetadata_VorbisCo
|
||||
if(blockcopy->vendor_string.length != block->vendor_string.length) {
|
||||
printf("FAILED, vendor_string.length mismatch, expected %u, got %u\n", block->vendor_string.length, blockcopy->vendor_string.length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(0 == block->vendor_string.entry || 0 == blockcopy->vendor_string.entry) {
|
||||
if(block->vendor_string.entry != blockcopy->vendor_string.entry) {
|
||||
printf("FAILED, vendor_string.entry mismatch\n");
|
||||
@@ -189,11 +189,11 @@ FLAC__bool compare_block_data_vorbiscomment_(const FLAC__StreamMetadata_VorbisCo
|
||||
else if(0 != memcmp(blockcopy->vendor_string.entry, block->vendor_string.entry, block->vendor_string.length)) {
|
||||
printf("FAILED, vendor_string.entry mismatch\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->num_comments != block->num_comments) {
|
||||
printf("FAILED, num_comments mismatch, expected %u, got %u\n", block->num_comments, blockcopy->num_comments);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for(i = 0; i < block->num_comments; i++) {
|
||||
if(blockcopy->comments[i].length != block->comments[i].length) {
|
||||
printf("FAILED, comments[%u].length mismatch, expected %u, got %u\n", i, block->comments[i].length, blockcopy->comments[i].length);
|
||||
@@ -220,15 +220,15 @@ FLAC__bool compare_block_(const FLAC__StreamMetadata *block, const FLAC__StreamM
|
||||
if(blockcopy->type != block->type) {
|
||||
printf("FAILED, type mismatch, expected %s, got %s\n", FLAC__MetadataTypeString[block->type], FLAC__MetadataTypeString[blockcopy->type]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->is_last != block->is_last) {
|
||||
printf("FAILED, is_last mismatch, expected %u, got %u\n", (unsigned)block->is_last, (unsigned)blockcopy->is_last);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(blockcopy->length != block->length) {
|
||||
printf("FAILED, length mismatch, expected %u, got %u\n", block->length, blockcopy->length);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
switch(block->type) {
|
||||
case FLAC__METADATA_TYPE_STREAMINFO:
|
||||
return compare_block_data_streaminfo_(&block->data.stream_info, &blockcopy->data.stream_info);
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
# This isn't always true (for example, nasm can't handle it)
|
||||
command=""
|
||||
while [ $1 ]; do
|
||||
if [ "$1" != "-fPIC" ]; then
|
||||
if [ "$1" != "-DPIC" ]; then
|
||||
command="$command $1"
|
||||
fi
|
||||
fi
|
||||
shift
|
||||
if [ "$1" != "-fPIC" ]; then
|
||||
if [ "$1" != "-DPIC" ]; then
|
||||
command="$command $1"
|
||||
fi
|
||||
fi
|
||||
shift
|
||||
done
|
||||
echo $command
|
||||
exec $command
|
||||
|
||||
Reference in New Issue
Block a user