diff options
author | Josh Coalson <jcoalson@users.sourceforce.net> | 2003-01-10 05:40:09 +0000 |
---|---|---|
committer | Josh Coalson <jcoalson@users.sourceforce.net> | 2003-01-10 05:40:09 +0000 |
commit | a52a5554bf012723756d51bdf4e9a4f17ec4d0e6 (patch) | |
tree | 932b184ec7d7b161743c34171165393457011601 /src/test_libFLAC++/encoders.cpp | |
parent | 26dff91df1e870ad7e944c68248dbc8b7f024c7d (diff) | |
download | flac-a52a5554bf012723756d51bdf4e9a4f17ec4d0e6.tar.gz |
move common stuff into metadata_utils
Diffstat (limited to 'src/test_libFLAC++/encoders.cpp')
-rw-r--r-- | src/test_libFLAC++/encoders.cpp | 88 |
1 files changed, 6 insertions, 82 deletions
diff --git a/src/test_libFLAC++/encoders.cpp b/src/test_libFLAC++/encoders.cpp index 9805523e..a66a2337 100644 --- a/src/test_libFLAC++/encoders.cpp +++ b/src/test_libFLAC++/encoders.cpp @@ -19,6 +19,7 @@ #include "encoders.h" extern "C" { #include "file_utils.h" +#include "metadata_utils.h" } #include "FLAC/assert.h" #include "FLAC++/encoder.h" @@ -26,96 +27,19 @@ extern "C" { #include <stdlib.h> #include <string.h> -static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application1_, application2_, vorbiscomment_; -static ::FLAC__StreamMetadata *metadata_sequence_[] = { &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_ }; -static const unsigned num_metadata_ = 5; +static ::FLAC__StreamMetadata streaminfo_, padding_, seektable_, application1_, application2_, vorbiscomment_, cuesheet_; +static ::FLAC__StreamMetadata *metadata_sequence_[] = { &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_ }; +static const unsigned num_metadata_ = sizeof(metadata_sequence_) / sizeof(metadata_sequence_[0]); static const char *flacfilename_ = "metadata.flac"; -static void *malloc_or_die_(size_t size) -{ - void *x = malloc(size); - if(0 == x) { - fprintf(stderr, "ERROR: out of memory allocating %u bytes\n", (unsigned)size); - exit(1); - } - return x; -} - static void init_metadata_blocks_() { - /* - most of the actual numbers and data in the blocks don't matter, - we just want to make sure the encoder encodes them correctly - - remember, the metadata interface gets tested after the encoders, - so we do all the metadata manipulation here without it. - */ - - /* 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; - memset(streaminfo_.data.stream_info.md5sum, 0, 16); - - padding_.is_last = false; - padding_.type = ::FLAC__METADATA_TYPE_PADDING; - padding_.length = 1234; - - 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_.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; - seektable_.data.seek_table.points[0].frame_samples = streaminfo_.data.stream_info.min_blocksize; - seektable_.data.seek_table.points[1].sample_number = ::FLAC__STREAM_METADATA_SEEKPOINT_PLACEHOLDER; - 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; - 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; - 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_.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); - vorbiscomment_.data.vorbis_comment.num_comments = 2; - vorbiscomment_.data.vorbis_comment.comments = (::FLAC__StreamMetadata_VorbisComment_Entry*)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 = (FLAC__byte*)malloc_or_die_(5); - memcpy(vorbiscomment_.data.vorbis_comment.comments[0].entry, "ab=cd", 5); - vorbiscomment_.data.vorbis_comment.comments[1].length = 0; - vorbiscomment_.data.vorbis_comment.comments[1].entry = 0; + mutils__init_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_); } static void free_metadata_blocks_() { - free(seektable_.data.seek_table.points); - free(application1_.data.application.data); - free(vorbiscomment_.data.vorbis_comment.vendor_string.entry); - free(vorbiscomment_.data.vorbis_comment.comments[0].entry); - free(vorbiscomment_.data.vorbis_comment.comments); + mutils__free_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_); } class StreamEncoder : public FLAC::Encoder::Stream { |