summaryrefslogtreecommitdiff
path: root/src/test_libFLAC++/encoders.cpp
diff options
context:
space:
mode:
authorJosh Coalson <jcoalson@users.sourceforce.net>2003-01-10 05:40:09 +0000
committerJosh Coalson <jcoalson@users.sourceforce.net>2003-01-10 05:40:09 +0000
commita52a5554bf012723756d51bdf4e9a4f17ec4d0e6 (patch)
tree932b184ec7d7b161743c34171165393457011601 /src/test_libFLAC++/encoders.cpp
parent26dff91df1e870ad7e944c68248dbc8b7f024c7d (diff)
downloadflac-a52a5554bf012723756d51bdf4e9a4f17ec4d0e6.tar.gz
move common stuff into metadata_utils
Diffstat (limited to 'src/test_libFLAC++/encoders.cpp')
-rw-r--r--src/test_libFLAC++/encoders.cpp88
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 {