mirror of
https://github.com/claunia/flac.git
synced 2025-12-16 18:54:26 +00:00
add support for new PICTURE metadata block
This commit is contained in:
@@ -58,8 +58,8 @@ static const char * const LayerString[] = {
|
||||
"Filename"
|
||||
};
|
||||
|
||||
static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application1_, application2_, vorbiscomment_, cuesheet_, unknown_;
|
||||
static ::FLAC__StreamMetadata *expected_metadata_sequence_[8];
|
||||
static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application1_, application2_, vorbiscomment_, cuesheet_, picture_, unknown_;
|
||||
static ::FLAC__StreamMetadata *expected_metadata_sequence_[9];
|
||||
static unsigned num_expected_;
|
||||
static const char *flacfilename_ = "metadata.flac";
|
||||
static off_t flacfilesize_;
|
||||
@@ -86,12 +86,12 @@ static FLAC__bool die_s_(const char *msg, const FLAC::Decoder::Stream *decoder)
|
||||
|
||||
static void init_metadata_blocks_()
|
||||
{
|
||||
mutils__init_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_);
|
||||
mutils__init_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &picture_, &unknown_);
|
||||
}
|
||||
|
||||
static void free_metadata_blocks_()
|
||||
{
|
||||
mutils__free_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_);
|
||||
mutils__free_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &picture_, &unknown_);
|
||||
}
|
||||
|
||||
static bool generate_file_()
|
||||
@@ -105,6 +105,7 @@ static bool generate_file_()
|
||||
expected_metadata_sequence_[num_expected_++] = &application2_;
|
||||
expected_metadata_sequence_[num_expected_++] = &vorbiscomment_;
|
||||
expected_metadata_sequence_[num_expected_++] = &cuesheet_;
|
||||
expected_metadata_sequence_[num_expected_++] = &picture_;
|
||||
expected_metadata_sequence_[num_expected_++] = &unknown_;
|
||||
|
||||
if(!file_utils__generate_flacfile(flacfilename_, &flacfilesize_, 512 * 1024, &streaminfo_, expected_metadata_sequence_, num_expected_))
|
||||
@@ -710,6 +711,7 @@ static bool test_stream_decoder(Layer layer)
|
||||
expected_metadata_sequence_[num_expected_++] = &application2_;
|
||||
expected_metadata_sequence_[num_expected_++] = &vorbiscomment_;
|
||||
expected_metadata_sequence_[num_expected_++] = &cuesheet_;
|
||||
expected_metadata_sequence_[num_expected_++] = &picture_;
|
||||
expected_metadata_sequence_[num_expected_++] = &unknown_;
|
||||
|
||||
if(!(layer < LAYER_FILE? dynamic_cast<StreamDecoder*>(decoder)->test_respond() : dynamic_cast<FileDecoder*>(decoder)->test_respond()))
|
||||
@@ -756,6 +758,7 @@ static bool test_stream_decoder(Layer layer)
|
||||
expected_metadata_sequence_[num_expected_++] = &application1_;
|
||||
expected_metadata_sequence_[num_expected_++] = &application2_;
|
||||
expected_metadata_sequence_[num_expected_++] = &cuesheet_;
|
||||
expected_metadata_sequence_[num_expected_++] = &picture_;
|
||||
expected_metadata_sequence_[num_expected_++] = &unknown_;
|
||||
|
||||
if(!(layer < LAYER_FILE? dynamic_cast<StreamDecoder*>(decoder)->test_respond() : dynamic_cast<FileDecoder*>(decoder)->test_respond()))
|
||||
@@ -785,6 +788,7 @@ static bool test_stream_decoder(Layer layer)
|
||||
expected_metadata_sequence_[num_expected_++] = &seektable_;
|
||||
expected_metadata_sequence_[num_expected_++] = &vorbiscomment_;
|
||||
expected_metadata_sequence_[num_expected_++] = &cuesheet_;
|
||||
expected_metadata_sequence_[num_expected_++] = &picture_;
|
||||
expected_metadata_sequence_[num_expected_++] = &unknown_;
|
||||
|
||||
if(!(layer < LAYER_FILE? dynamic_cast<StreamDecoder*>(decoder)->test_respond() : dynamic_cast<FileDecoder*>(decoder)->test_respond()))
|
||||
@@ -815,6 +819,7 @@ static bool test_stream_decoder(Layer layer)
|
||||
expected_metadata_sequence_[num_expected_++] = &application2_;
|
||||
expected_metadata_sequence_[num_expected_++] = &vorbiscomment_;
|
||||
expected_metadata_sequence_[num_expected_++] = &cuesheet_;
|
||||
expected_metadata_sequence_[num_expected_++] = &picture_;
|
||||
expected_metadata_sequence_[num_expected_++] = &unknown_;
|
||||
|
||||
if(!(layer < LAYER_FILE? dynamic_cast<StreamDecoder*>(decoder)->test_respond() : dynamic_cast<FileDecoder*>(decoder)->test_respond()))
|
||||
@@ -851,6 +856,7 @@ static bool test_stream_decoder(Layer layer)
|
||||
expected_metadata_sequence_[num_expected_++] = &seektable_;
|
||||
expected_metadata_sequence_[num_expected_++] = &vorbiscomment_;
|
||||
expected_metadata_sequence_[num_expected_++] = &cuesheet_;
|
||||
expected_metadata_sequence_[num_expected_++] = &picture_;
|
||||
expected_metadata_sequence_[num_expected_++] = &unknown_;
|
||||
|
||||
if(!(layer < LAYER_FILE? dynamic_cast<StreamDecoder*>(decoder)->test_respond() : dynamic_cast<FileDecoder*>(decoder)->test_respond()))
|
||||
@@ -993,6 +999,7 @@ static bool test_stream_decoder(Layer layer)
|
||||
expected_metadata_sequence_[num_expected_++] = &application1_;
|
||||
expected_metadata_sequence_[num_expected_++] = &vorbiscomment_;
|
||||
expected_metadata_sequence_[num_expected_++] = &cuesheet_;
|
||||
expected_metadata_sequence_[num_expected_++] = &picture_;
|
||||
expected_metadata_sequence_[num_expected_++] = &unknown_;
|
||||
|
||||
if(!(layer < LAYER_FILE? dynamic_cast<StreamDecoder*>(decoder)->test_respond() : dynamic_cast<FileDecoder*>(decoder)->test_respond()))
|
||||
|
||||
@@ -42,8 +42,8 @@ static const char * const LayerString[] = {
|
||||
"Filename"
|
||||
};
|
||||
|
||||
static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application1_, application2_, vorbiscomment_, cuesheet_, unknown_;
|
||||
static ::FLAC__StreamMetadata *metadata_sequence_[] = { &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_ };
|
||||
static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application1_, application2_, vorbiscomment_, cuesheet_, picture_, unknown_;
|
||||
static ::FLAC__StreamMetadata *metadata_sequence_[] = { &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &picture_, &unknown_ };
|
||||
static const unsigned num_metadata_ = sizeof(metadata_sequence_) / sizeof(metadata_sequence_[0]);
|
||||
static const char *flacfilename_ = "metadata.flac";
|
||||
|
||||
@@ -73,12 +73,12 @@ static bool die_s_(const char *msg, const FLAC::Encoder::Stream *encoder)
|
||||
|
||||
static void init_metadata_blocks_()
|
||||
{
|
||||
mutils__init_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_);
|
||||
mutils__init_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &picture_, &unknown_);
|
||||
}
|
||||
|
||||
static void free_metadata_blocks_()
|
||||
{
|
||||
mutils__free_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_);
|
||||
mutils__free_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &picture_, &unknown_);
|
||||
}
|
||||
|
||||
class StreamEncoder : public FLAC::Encoder::Stream {
|
||||
|
||||
@@ -106,6 +106,16 @@ static void *malloc_or_die_(size_t size)
|
||||
return x;
|
||||
}
|
||||
|
||||
static char *strdup_or_die_(const char *s)
|
||||
{
|
||||
char *x = strdup(s);
|
||||
if(0 == x) {
|
||||
fprintf(stderr, "ERROR: out of memory copying string \"%s\"\n", s);
|
||||
exit(1);
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
/* functions for working with our metadata copy */
|
||||
|
||||
static bool replace_in_our_metadata_(FLAC::Metadata::Prototype *block, unsigned position, bool copy)
|
||||
@@ -474,10 +484,10 @@ void OurFileDecoder::error_callback(::FLAC__StreamDecoderErrorStatus status)
|
||||
printf("ERROR: got error callback, status = %s (%u)\n", FLAC__StreamDecoderErrorStatusString[status], (unsigned)status);
|
||||
}
|
||||
|
||||
static bool generate_file_(FLAC__bool include_cuesheet)
|
||||
static bool generate_file_(FLAC__bool include_extras)
|
||||
{
|
||||
::FLAC__StreamMetadata streaminfo, vorbiscomment, *cuesheet, padding;
|
||||
::FLAC__StreamMetadata *metadata[3];
|
||||
::FLAC__StreamMetadata streaminfo, vorbiscomment, *cuesheet, picture, padding;
|
||||
::FLAC__StreamMetadata *metadata[4];
|
||||
unsigned i = 0, n = 0;
|
||||
|
||||
printf("generating FLAC file for test\n");
|
||||
@@ -524,23 +534,54 @@ static bool generate_file_(FLAC__bool include_cuesheet)
|
||||
return die_("priming our metadata");
|
||||
}
|
||||
|
||||
{
|
||||
picture.is_last = false;
|
||||
picture.type = ::FLAC__METADATA_TYPE_PICTURE;
|
||||
picture.length =
|
||||
(
|
||||
FLAC__STREAM_METADATA_PICTURE_TYPE_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN + /* will add the length for the string later */
|
||||
FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN + /* will add the length for the string later */
|
||||
FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN /* will add the length for the data later */
|
||||
) / 8
|
||||
;
|
||||
picture.data.picture.type = ::FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER;
|
||||
picture.data.picture.mime_type = strdup_or_die_("image/jpeg");
|
||||
picture.length += strlen(picture.data.picture.mime_type);
|
||||
picture.data.picture.description = (FLAC__byte*)strdup_or_die_("desc");
|
||||
picture.length += strlen((const char *)picture.data.picture.description);
|
||||
picture.data.picture.width = 300;
|
||||
picture.data.picture.height = 300;
|
||||
picture.data.picture.depth = 24;
|
||||
picture.data.picture.data = (FLAC__byte*)strdup_or_die_("SOMEJPEGDATA");
|
||||
picture.data.picture.data_length = strlen((const char *)picture.data.picture.data);
|
||||
picture.length += picture.data.picture.data_length;
|
||||
}
|
||||
|
||||
padding.is_last = true;
|
||||
padding.type = ::FLAC__METADATA_TYPE_PADDING;
|
||||
padding.length = 1234;
|
||||
|
||||
metadata[n++] = &vorbiscomment;
|
||||
if (include_cuesheet)
|
||||
if(include_extras) {
|
||||
metadata[n++] = cuesheet;
|
||||
metadata[n++] = &picture;
|
||||
}
|
||||
metadata[n++] = &padding;
|
||||
|
||||
FLAC::Metadata::StreamInfo s(&streaminfo);
|
||||
FLAC::Metadata::VorbisComment v(&vorbiscomment);
|
||||
FLAC::Metadata::CueSheet c(cuesheet, /*copy=*/false);
|
||||
FLAC::Metadata::Picture pi(&picture);
|
||||
FLAC::Metadata::Padding p(&padding);
|
||||
if(
|
||||
!insert_to_our_metadata_(&s, i++, /*copy=*/true) ||
|
||||
!insert_to_our_metadata_(&v, i++, /*copy=*/true) ||
|
||||
(include_cuesheet && !insert_to_our_metadata_(&v, i++, /*copy=*/true)) ||
|
||||
(include_extras && !insert_to_our_metadata_(&c, i++, /*copy=*/true)) ||
|
||||
(include_extras && !insert_to_our_metadata_(&pi, i++, /*copy=*/true)) ||
|
||||
!insert_to_our_metadata_(&p, i++, /*copy=*/true)
|
||||
)
|
||||
return die_("priming our metadata");
|
||||
@@ -616,7 +657,7 @@ static bool test_level_0_()
|
||||
|
||||
printf("\n\n++++++ testing level 0 interface\n");
|
||||
|
||||
if(!generate_file_(/*include_cuesheet=*/true))
|
||||
if(!generate_file_(/*include_extras=*/true))
|
||||
return false;
|
||||
|
||||
if(!test_file_(flacfile_, /*ignore_metadata=*/true))
|
||||
@@ -705,6 +746,38 @@ static bool test_level_0_()
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
{
|
||||
printf("testing FLAC::Metadata::get_picture(Picture *&)... ");
|
||||
|
||||
FLAC::Metadata::Picture *picture = 0;
|
||||
|
||||
if(!FLAC::Metadata::get_picture(flacfile_, picture, /*type=*/(::FLAC__StreamMetadata_Picture_Type)(-1), /*mime_type=*/0, /*description=*/0, /*max_width=*/(unsigned)(-1), /*max_height=*/(unsigned)(-1), /*max_depth=*/(unsigned)(-1)))
|
||||
return die_("during FLAC::Metadata::get_picture()");
|
||||
|
||||
/* check to see if some basic data matches (c.f. generate_file_()) */
|
||||
if(picture->get_type () != ::FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER)
|
||||
return die_("mismatch in picture->get_type ()");
|
||||
|
||||
printf("OK\n");
|
||||
|
||||
delete picture;
|
||||
}
|
||||
|
||||
{
|
||||
printf("testing FLAC::Metadata::get_picture(Picture &)... ");
|
||||
|
||||
FLAC::Metadata::Picture picture;
|
||||
|
||||
if(!FLAC::Metadata::get_picture(flacfile_, picture, /*type=*/(::FLAC__StreamMetadata_Picture_Type)(-1), /*mime_type=*/0, /*description=*/0, /*max_width=*/(unsigned)(-1), /*max_height=*/(unsigned)(-1), /*max_depth=*/(unsigned)(-1)))
|
||||
return die_("during FLAC::Metadata::get_picture()");
|
||||
|
||||
/* check to see if some basic data matches (c.f. generate_file_()) */
|
||||
if(picture.get_type () != ::FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER)
|
||||
return die_("mismatch in picture->get_type ()");
|
||||
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
if(!remove_file_(flacfile_))
|
||||
return false;
|
||||
|
||||
@@ -729,7 +802,7 @@ static bool test_level_1_()
|
||||
{
|
||||
printf("simple iterator on read-only file\n");
|
||||
|
||||
if(!generate_file_(/*include_cuesheet=*/false))
|
||||
if(!generate_file_(/*include_extras=*/false))
|
||||
return false;
|
||||
|
||||
if(!change_stats_(flacfile_, /*read_only=*/true))
|
||||
@@ -1394,7 +1467,7 @@ static bool test_level_2_(bool filename_based)
|
||||
|
||||
printf("generate read-only file\n");
|
||||
|
||||
if(!generate_file_(/*include_cuesheet=*/false))
|
||||
if(!generate_file_(/*include_extras=*/false))
|
||||
return false;
|
||||
|
||||
if(!change_stats_(flacfile_, /*read_only=*/true))
|
||||
@@ -1949,7 +2022,7 @@ static bool test_level_2_misc_()
|
||||
|
||||
printf("generate file\n");
|
||||
|
||||
if(!generate_file_(/*include_cuesheet=*/false))
|
||||
if(!generate_file_(/*include_extras=*/false))
|
||||
return false;
|
||||
|
||||
printf("create chain\n");
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <stdlib.h> /* for malloc() */
|
||||
#include <string.h> /* for memcmp() */
|
||||
|
||||
static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application_, vorbiscomment_, cuesheet_;
|
||||
static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application_, vorbiscomment_, cuesheet_, picture_;
|
||||
|
||||
static bool die_(const char *msg)
|
||||
{
|
||||
@@ -40,6 +40,16 @@ static void *malloc_or_die_(size_t size)
|
||||
return x;
|
||||
}
|
||||
|
||||
static char *strdup_or_die_(const char *s)
|
||||
{
|
||||
char *x = strdup(s);
|
||||
if(0 == x) {
|
||||
fprintf(stderr, "ERROR: out of memory copying string \"%s\"\n", s);
|
||||
exit(1);
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
static bool index_is_equal_(const ::FLAC__StreamMetadata_CueSheet_Index &index, const ::FLAC__StreamMetadata_CueSheet_Index &indexcopy)
|
||||
{
|
||||
if(indexcopy.offset != index.offset)
|
||||
@@ -131,7 +141,7 @@ static void init_metadata_blocks_()
|
||||
vorbiscomment_.data.vorbis_comment.comments[1].entry = (FLAC__byte*)malloc_or_die_(12+1);
|
||||
memcpy(vorbiscomment_.data.vorbis_comment.comments[1].entry, "name3=value3", 12+1);
|
||||
|
||||
cuesheet_.is_last = true;
|
||||
cuesheet_.is_last = false;
|
||||
cuesheet_.type = ::FLAC__METADATA_TYPE_CUESHEET;
|
||||
cuesheet_.length =
|
||||
/* cuesheet guts */
|
||||
@@ -186,6 +196,31 @@ static void init_metadata_blocks_()
|
||||
cuesheet_.data.cue_sheet.tracks[1].indices = (FLAC__StreamMetadata_CueSheet_Index*)malloc_or_die_(cuesheet_.data.cue_sheet.tracks[1].num_indices * sizeof(FLAC__StreamMetadata_CueSheet_Index));
|
||||
cuesheet_.data.cue_sheet.tracks[1].indices[0].offset = 0;
|
||||
cuesheet_.data.cue_sheet.tracks[1].indices[0].number = 1;
|
||||
|
||||
picture_.is_last = true;
|
||||
picture_.type = FLAC__METADATA_TYPE_PICTURE;
|
||||
picture_.length =
|
||||
(
|
||||
FLAC__STREAM_METADATA_PICTURE_TYPE_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN + /* will add the length for the string later */
|
||||
FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN + /* will add the length for the string later */
|
||||
FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN /* will add the length for the data later */
|
||||
) / 8
|
||||
;
|
||||
picture_.data.picture.type = FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER;
|
||||
picture_.data.picture.mime_type = strdup_or_die_("image/jpeg");
|
||||
picture_.length += strlen(picture_.data.picture.mime_type);
|
||||
picture_.data.picture.description = (FLAC__byte*)strdup_or_die_("desc");
|
||||
picture_.length += strlen((const char *)picture_.data.picture.description);
|
||||
picture_.data.picture.width = 300;
|
||||
picture_.data.picture.height = 300;
|
||||
picture_.data.picture.depth = 24;
|
||||
picture_.data.picture.data = (FLAC__byte*)strdup_or_die_("SOMEJPEGDATA");
|
||||
picture_.data.picture.data_length = strlen((const char *)picture_.data.picture.data);
|
||||
picture_.length += picture_.data.picture.data_length;
|
||||
}
|
||||
|
||||
static void free_metadata_blocks_()
|
||||
@@ -199,6 +234,9 @@ static void free_metadata_blocks_()
|
||||
free(cuesheet_.data.cue_sheet.tracks[0].indices);
|
||||
free(cuesheet_.data.cue_sheet.tracks[1].indices);
|
||||
free(cuesheet_.data.cue_sheet.tracks);
|
||||
free(picture_.data.picture.mime_type);
|
||||
free(picture_.data.picture.description);
|
||||
free(picture_.data.picture.data);
|
||||
}
|
||||
|
||||
bool test_metadata_object_streaminfo()
|
||||
@@ -223,7 +261,7 @@ bool test_metadata_object_streaminfo()
|
||||
{
|
||||
FLAC::Metadata::StreamInfo blockcopy(block);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != block)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -237,7 +275,7 @@ bool test_metadata_object_streaminfo()
|
||||
{
|
||||
FLAC::Metadata::StreamInfo blockcopy(streaminfo_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != streaminfo_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -248,7 +286,7 @@ bool test_metadata_object_streaminfo()
|
||||
{
|
||||
FLAC::Metadata::StreamInfo blockcopy(&streaminfo_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != streaminfo_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -259,7 +297,7 @@ bool test_metadata_object_streaminfo()
|
||||
{
|
||||
FLAC::Metadata::StreamInfo blockcopy(&streaminfo_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != streaminfo_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -271,7 +309,7 @@ bool test_metadata_object_streaminfo()
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&streaminfo_);
|
||||
FLAC::Metadata::StreamInfo blockcopy(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != streaminfo_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -283,7 +321,7 @@ bool test_metadata_object_streaminfo()
|
||||
FLAC::Metadata::StreamInfo blockcopy;
|
||||
blockcopy.assign(&streaminfo_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != streaminfo_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -296,7 +334,7 @@ bool test_metadata_object_streaminfo()
|
||||
FLAC::Metadata::StreamInfo blockcopy;
|
||||
blockcopy.assign(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != streaminfo_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -307,7 +345,7 @@ bool test_metadata_object_streaminfo()
|
||||
{
|
||||
FLAC::Metadata::StreamInfo blockcopy = block;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == block))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -318,7 +356,7 @@ bool test_metadata_object_streaminfo()
|
||||
{
|
||||
FLAC::Metadata::StreamInfo blockcopy = streaminfo_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == streaminfo_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -329,7 +367,7 @@ bool test_metadata_object_streaminfo()
|
||||
{
|
||||
FLAC::Metadata::StreamInfo blockcopy = &streaminfo_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == streaminfo_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -456,7 +494,7 @@ bool test_metadata_object_padding()
|
||||
{
|
||||
FLAC::Metadata::Padding blockcopy(block);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != block)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -470,7 +508,7 @@ bool test_metadata_object_padding()
|
||||
{
|
||||
FLAC::Metadata::Padding blockcopy(padding_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != padding_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -481,7 +519,7 @@ bool test_metadata_object_padding()
|
||||
{
|
||||
FLAC::Metadata::Padding blockcopy(&padding_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != padding_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -492,7 +530,7 @@ bool test_metadata_object_padding()
|
||||
{
|
||||
FLAC::Metadata::Padding blockcopy(&padding_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != padding_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -504,7 +542,7 @@ bool test_metadata_object_padding()
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&padding_);
|
||||
FLAC::Metadata::Padding blockcopy(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != padding_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -516,7 +554,7 @@ bool test_metadata_object_padding()
|
||||
FLAC::Metadata::Padding blockcopy;
|
||||
blockcopy.assign(&padding_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != padding_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -529,7 +567,7 @@ bool test_metadata_object_padding()
|
||||
FLAC::Metadata::Padding blockcopy;
|
||||
blockcopy.assign(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != padding_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -540,7 +578,7 @@ bool test_metadata_object_padding()
|
||||
{
|
||||
FLAC::Metadata::Padding blockcopy = block;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == block))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -551,7 +589,7 @@ bool test_metadata_object_padding()
|
||||
{
|
||||
FLAC::Metadata::Padding blockcopy = padding_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == padding_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -562,7 +600,7 @@ bool test_metadata_object_padding()
|
||||
{
|
||||
FLAC::Metadata::Padding blockcopy = &padding_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == padding_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -617,7 +655,7 @@ bool test_metadata_object_application()
|
||||
{
|
||||
FLAC::Metadata::Application blockcopy(block);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != block)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -631,7 +669,7 @@ bool test_metadata_object_application()
|
||||
{
|
||||
FLAC::Metadata::Application blockcopy(application_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != application_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -642,7 +680,7 @@ bool test_metadata_object_application()
|
||||
{
|
||||
FLAC::Metadata::Application blockcopy(&application_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != application_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -653,7 +691,7 @@ bool test_metadata_object_application()
|
||||
{
|
||||
FLAC::Metadata::Application blockcopy(&application_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != application_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -665,7 +703,7 @@ bool test_metadata_object_application()
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&application_);
|
||||
FLAC::Metadata::Application blockcopy(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != application_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -677,7 +715,7 @@ bool test_metadata_object_application()
|
||||
FLAC::Metadata::Application blockcopy;
|
||||
blockcopy.assign(&application_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != application_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -690,7 +728,7 @@ bool test_metadata_object_application()
|
||||
FLAC::Metadata::Application blockcopy;
|
||||
blockcopy.assign(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != application_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -701,7 +739,7 @@ bool test_metadata_object_application()
|
||||
{
|
||||
FLAC::Metadata::Application blockcopy = block;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == block))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -712,7 +750,7 @@ bool test_metadata_object_application()
|
||||
{
|
||||
FLAC::Metadata::Application blockcopy = application_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == application_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -723,7 +761,7 @@ bool test_metadata_object_application()
|
||||
{
|
||||
FLAC::Metadata::Application blockcopy = &application_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == application_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -787,7 +825,7 @@ bool test_metadata_object_seektable()
|
||||
{
|
||||
FLAC::Metadata::SeekTable blockcopy(block);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != block)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -801,7 +839,7 @@ bool test_metadata_object_seektable()
|
||||
{
|
||||
FLAC::Metadata::SeekTable blockcopy(seektable_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != seektable_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -812,7 +850,7 @@ bool test_metadata_object_seektable()
|
||||
{
|
||||
FLAC::Metadata::SeekTable blockcopy(&seektable_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != seektable_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -823,7 +861,7 @@ bool test_metadata_object_seektable()
|
||||
{
|
||||
FLAC::Metadata::SeekTable blockcopy(&seektable_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != seektable_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -835,7 +873,7 @@ bool test_metadata_object_seektable()
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&seektable_);
|
||||
FLAC::Metadata::SeekTable blockcopy(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != seektable_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -847,7 +885,7 @@ bool test_metadata_object_seektable()
|
||||
FLAC::Metadata::SeekTable blockcopy;
|
||||
blockcopy.assign(&seektable_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != seektable_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -860,7 +898,7 @@ bool test_metadata_object_seektable()
|
||||
FLAC::Metadata::SeekTable blockcopy;
|
||||
blockcopy.assign(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != seektable_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -871,7 +909,7 @@ bool test_metadata_object_seektable()
|
||||
{
|
||||
FLAC::Metadata::SeekTable blockcopy = block;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == block))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -882,7 +920,7 @@ bool test_metadata_object_seektable()
|
||||
{
|
||||
FLAC::Metadata::SeekTable blockcopy = seektable_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == seektable_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -893,7 +931,7 @@ bool test_metadata_object_seektable()
|
||||
{
|
||||
FLAC::Metadata::SeekTable blockcopy = &seektable_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == seektable_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1140,7 +1178,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
{
|
||||
FLAC::Metadata::VorbisComment blockcopy(block);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != block)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1154,7 +1192,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
{
|
||||
FLAC::Metadata::VorbisComment blockcopy(vorbiscomment_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != vorbiscomment_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1165,7 +1203,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
{
|
||||
FLAC::Metadata::VorbisComment blockcopy(&vorbiscomment_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != vorbiscomment_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1176,7 +1214,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
{
|
||||
FLAC::Metadata::VorbisComment blockcopy(&vorbiscomment_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != vorbiscomment_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1188,7 +1226,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&vorbiscomment_);
|
||||
FLAC::Metadata::VorbisComment blockcopy(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != vorbiscomment_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1200,7 +1238,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
FLAC::Metadata::VorbisComment blockcopy;
|
||||
blockcopy.assign(&vorbiscomment_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != vorbiscomment_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1213,7 +1251,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
FLAC::Metadata::VorbisComment blockcopy;
|
||||
blockcopy.assign(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != vorbiscomment_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1224,7 +1262,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
{
|
||||
FLAC::Metadata::VorbisComment blockcopy = block;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == block))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1235,7 +1273,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
{
|
||||
FLAC::Metadata::VorbisComment blockcopy = vorbiscomment_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == vorbiscomment_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1246,7 +1284,7 @@ bool test_metadata_object_vorbiscomment()
|
||||
{
|
||||
FLAC::Metadata::VorbisComment blockcopy = &vorbiscomment_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == vorbiscomment_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1518,7 +1556,7 @@ bool test_metadata_object_cuesheet()
|
||||
{
|
||||
FLAC::Metadata::CueSheet blockcopy(block);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != block)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1532,7 +1570,7 @@ bool test_metadata_object_cuesheet()
|
||||
{
|
||||
FLAC::Metadata::CueSheet blockcopy(cuesheet_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != cuesheet_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1543,7 +1581,7 @@ bool test_metadata_object_cuesheet()
|
||||
{
|
||||
FLAC::Metadata::CueSheet blockcopy(&cuesheet_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != cuesheet_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1554,7 +1592,7 @@ bool test_metadata_object_cuesheet()
|
||||
{
|
||||
FLAC::Metadata::CueSheet blockcopy(&cuesheet_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != cuesheet_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1566,7 +1604,7 @@ bool test_metadata_object_cuesheet()
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&cuesheet_);
|
||||
FLAC::Metadata::CueSheet blockcopy(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != cuesheet_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1578,7 +1616,7 @@ bool test_metadata_object_cuesheet()
|
||||
FLAC::Metadata::CueSheet blockcopy;
|
||||
blockcopy.assign(&cuesheet_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != cuesheet_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1591,7 +1629,7 @@ bool test_metadata_object_cuesheet()
|
||||
FLAC::Metadata::CueSheet blockcopy;
|
||||
blockcopy.assign(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != cuesheet_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1602,7 +1640,7 @@ bool test_metadata_object_cuesheet()
|
||||
{
|
||||
FLAC::Metadata::CueSheet blockcopy = block;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == block))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1613,7 +1651,7 @@ bool test_metadata_object_cuesheet()
|
||||
{
|
||||
FLAC::Metadata::CueSheet blockcopy = cuesheet_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == cuesheet_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1624,7 +1662,7 @@ bool test_metadata_object_cuesheet()
|
||||
{
|
||||
FLAC::Metadata::CueSheet blockcopy = &cuesheet_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == cuesheet_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
@@ -1759,6 +1797,254 @@ bool test_metadata_object_cuesheet()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool test_metadata_object_picture()
|
||||
{
|
||||
unsigned expected_length;
|
||||
|
||||
printf("testing class FLAC::Metadata::Picture\n");
|
||||
|
||||
printf("testing Picture::Picture()... ");
|
||||
FLAC::Metadata::Picture block;
|
||||
if(!block.is_valid())
|
||||
return die_("!block.is_valid()");
|
||||
expected_length = (
|
||||
FLAC__STREAM_METADATA_PICTURE_TYPE_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN +
|
||||
FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN
|
||||
) / 8;
|
||||
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 Picture::Picture(const Picture &)... +\n");
|
||||
printf(" Picture::operator!=(const Picture &)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy(block);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != block)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::~Picture()... ");
|
||||
}
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::Picture(const ::FLAC__StreamMetadata &)... +\n");
|
||||
printf(" Picture::operator!=(const ::FLAC__StreamMetadata &)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy(picture_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != picture_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::Picture(const ::FLAC__StreamMetadata *)... +\n");
|
||||
printf(" Picture::operator!=(const ::FLAC__StreamMetadata *)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy(&picture_);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != picture_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::Picture(const ::FLAC__StreamMetadata *, copy=true)... +\n");
|
||||
printf(" Picture::operator!=(const ::FLAC__StreamMetadata *)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy(&picture_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != picture_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::Picture(const ::FLAC__StreamMetadata *, copy=false)... +\n");
|
||||
printf(" Picture::operator!=(const ::FLAC__StreamMetadata *)... ");
|
||||
{
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&picture_);
|
||||
FLAC::Metadata::Picture blockcopy(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != picture_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::assign(const ::FLAC__StreamMetadata *, copy=true)... +\n");
|
||||
printf(" Picture::operator!=(const ::FLAC__StreamMetadata *)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy;
|
||||
blockcopy.assign(&picture_, /*copy=*/true);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != picture_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::assign(const ::FLAC__StreamMetadata *, copy=false)... +\n");
|
||||
printf(" Picture::operator!=(const ::FLAC__StreamMetadata *)... ");
|
||||
{
|
||||
::FLAC__StreamMetadata *copy = ::FLAC__metadata_object_clone(&picture_);
|
||||
FLAC::Metadata::Picture blockcopy;
|
||||
blockcopy.assign(copy, /*copy=*/false);
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(blockcopy != picture_)
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::operator=(const Picture &)... +\n");
|
||||
printf(" Picture::operator==(const Picture &)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy = block;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == block))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::operator=(const ::FLAC__StreamMetadata &)... +\n");
|
||||
printf(" Picture::operator==(const ::FLAC__StreamMetadata &)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy = picture_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == picture_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::operator=(const ::FLAC__StreamMetadata *)... +\n");
|
||||
printf(" Picture::operator==(const ::FLAC__StreamMetadata *)... ");
|
||||
{
|
||||
FLAC::Metadata::Picture blockcopy = &picture_;
|
||||
if(!blockcopy.is_valid())
|
||||
return die_("!blockcopy.is_valid()");
|
||||
if(!(blockcopy == picture_))
|
||||
return die_("copy is not identical to original");
|
||||
printf("OK\n");
|
||||
}
|
||||
|
||||
printf("testing Picture::get_type()... ");
|
||||
if(block.get_type() != ::FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER)
|
||||
return die_("value mismatch, expected ::FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::set_type()... +\n");
|
||||
printf(" Picture::get_type()... ");
|
||||
block.set_type(::FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA);
|
||||
if(block.get_type() != ::FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA)
|
||||
return die_("value mismatch, expected ::FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::set_mime_type()... ");
|
||||
if(!block.set_mime_type("qmage/jpeg"))
|
||||
return die_("returned false");
|
||||
printf("OK\n");
|
||||
picture_.data.picture.mime_type[0] = 'q';
|
||||
|
||||
printf("testing Picture::get_mime_type()... ");
|
||||
if(0 != strcmp(block.get_mime_type(), picture_.data.picture.mime_type))
|
||||
return die_("value mismatch");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::set_description()... ");
|
||||
if(!block.set_description((const FLAC__byte*)"qesc"))
|
||||
return die_("returned false");
|
||||
printf("OK\n");
|
||||
picture_.data.picture.description[0] = 'q';
|
||||
|
||||
printf("testing Picture::get_description()... ");
|
||||
if(0 != strcmp((const char *)block.get_description(), (const char *)picture_.data.picture.description))
|
||||
return die_("value mismatch");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::get_width()... ");
|
||||
if(block.get_width() != 0)
|
||||
return die_("value mismatch, expected 0");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::set_width()... +\n");
|
||||
printf(" Picture::get_width()... ");
|
||||
block.set_width(400);
|
||||
if(block.get_width() != 400)
|
||||
return die_("value mismatch, expected 400");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::get_height()... ");
|
||||
if(block.get_height() != 0)
|
||||
return die_("value mismatch, expected 0");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::set_height()... +\n");
|
||||
printf(" Picture::get_height()... ");
|
||||
block.set_height(200);
|
||||
if(block.get_height() != 200)
|
||||
return die_("value mismatch, expected 200");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::get_depth()... ");
|
||||
if(block.get_depth() != 0)
|
||||
return die_("value mismatch, expected 0");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::set_depth()... +\n");
|
||||
printf(" Picture::get_depth()... ");
|
||||
block.set_depth(16);
|
||||
if(block.get_depth() != 16)
|
||||
return die_("value mismatch, expected 16");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::get_data_length()... ");
|
||||
if(block.get_data_length() != 0)
|
||||
return die_("value mismatch, expected 0");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing Picture::set_data()... ");
|
||||
if(!block.set_data((const FLAC__byte*)"qOMEJPEGDATA", strlen("qOMEJPEGDATA")))
|
||||
return die_("returned false");
|
||||
printf("OK\n");
|
||||
picture_.data.picture.data[0] = 'q';
|
||||
|
||||
printf("testing Picture::get_data()... ");
|
||||
if(block.get_data_length() != picture_.data.picture.data_length)
|
||||
return die_("length mismatch");
|
||||
if(0 != memcmp(block.get_data(), picture_.data.picture.data, picture_.data.picture.data_length))
|
||||
return die_("value mismatch");
|
||||
printf("OK\n");
|
||||
|
||||
printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... ");
|
||||
FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block);
|
||||
if(0 == clone_)
|
||||
return die_("returned NULL");
|
||||
if(0 == dynamic_cast<FLAC::Metadata::Picture *>(clone_))
|
||||
return die_("downcast is NULL");
|
||||
if(*dynamic_cast<FLAC::Metadata::Picture *>(clone_) != block)
|
||||
return die_("clone is not identical");
|
||||
printf("OK\n");
|
||||
printf("testing Picture::~Picture()... ");
|
||||
delete clone_;
|
||||
printf("OK\n");
|
||||
|
||||
|
||||
printf("PASSED\n\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool test_metadata_object()
|
||||
{
|
||||
printf("\n+++ libFLAC++ unit test: metadata objects\n\n");
|
||||
@@ -1783,6 +2069,9 @@ bool test_metadata_object()
|
||||
if(!test_metadata_object_cuesheet())
|
||||
return false;
|
||||
|
||||
if(!test_metadata_object_picture())
|
||||
return false;
|
||||
|
||||
free_metadata_blocks_();
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user