1 /* test_libOggFLAC - Unit tester for libOggFLAC
2 * Copyright (C) 2002,2003,2004 Josh Coalson
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 #include "file_utils.h"
21 #include "metadata_utils.h"
22 #include "FLAC/assert.h"
23 #include "OggFLAC/file_encoder.h"
24 #include "OggFLAC/seekable_stream_encoder.h"
25 #include "OggFLAC/stream_encoder.h"
26 #include "share/grabbag.h"
31 static FLAC__StreamMetadata streaminfo_, padding_, seektable_, application1_, application2_, vorbiscomment_, cuesheet_, unknown_;
32 static FLAC__StreamMetadata *metadata_sequence_[] = { &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_ };
33 static const unsigned num_metadata_ = sizeof(metadata_sequence_) / sizeof(metadata_sequence_[0]);
34 static const char *oggflacfilename_ = "metadata.ogg";
36 static FLAC__bool die_s_(const char *msg, const OggFLAC__StreamEncoder *encoder)
38 OggFLAC__StreamEncoderState state = OggFLAC__stream_encoder_get_state(encoder);
41 printf("FAILED, %s", msg);
45 printf(", state = %u (%s)\n", (unsigned)state, OggFLAC__StreamEncoderStateString[state]);
46 if(state == OggFLAC__STREAM_ENCODER_FLAC_STREAM_ENCODER_ERROR) {
47 FLAC__StreamEncoderState state_ = OggFLAC__stream_encoder_get_FLAC_stream_encoder_state(encoder);
48 printf(" FLAC stream encoder state = %u (%s)\n", (unsigned)state_, FLAC__StreamEncoderStateString[state_]);
49 if(state_ == FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR) {
50 FLAC__StreamDecoderState dstate = OggFLAC__stream_encoder_get_verify_decoder_state(encoder);
51 printf(" verify decoder state = %u (%s)\n", (unsigned)dstate, FLAC__StreamDecoderStateString[dstate]);
58 static FLAC__bool die_ss_(const char *msg, const OggFLAC__SeekableStreamEncoder *encoder)
60 OggFLAC__SeekableStreamEncoderState state = OggFLAC__seekable_stream_encoder_get_state(encoder);
63 printf("FAILED, %s", msg);
67 printf(", state = %u (%s)\n", (unsigned)state, OggFLAC__SeekableStreamEncoderStateString[state]);
68 if(state == OggFLAC__SEEKABLE_STREAM_ENCODER_FLAC_STREAM_ENCODER_ERROR) {
69 FLAC__StreamEncoderState state_ = OggFLAC__seekable_stream_encoder_get_FLAC_stream_encoder_state(encoder);
70 printf(" FLAC stream encoder state = %u (%s)\n", (unsigned)state_, FLAC__StreamEncoderStateString[state_]);
71 if(state_ == FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR) {
72 FLAC__StreamDecoderState dstate = OggFLAC__seekable_stream_encoder_get_verify_decoder_state(encoder);
73 printf(" verify decoder state = %u (%s)\n", (unsigned)dstate, FLAC__StreamDecoderStateString[dstate]);
80 static FLAC__bool die_f_(const char *msg, const OggFLAC__FileEncoder *encoder)
82 OggFLAC__FileEncoderState state = OggFLAC__file_encoder_get_state(encoder);
85 printf("FAILED, %s", msg);
89 printf(", state = %u (%s)\n", (unsigned)state, OggFLAC__SeekableStreamEncoderStateString[state]);
90 if(state == OggFLAC__FILE_ENCODER_SEEKABLE_STREAM_ENCODER_ERROR) {
91 OggFLAC__SeekableStreamEncoderState state_ = OggFLAC__file_encoder_get_seekable_stream_encoder_state(encoder);
92 printf(" seekable stream encoder state = %u (%s)\n", (unsigned)state_, OggFLAC__SeekableStreamEncoderStateString[state_]);
93 if(state_ == OggFLAC__SEEKABLE_STREAM_ENCODER_FLAC_STREAM_ENCODER_ERROR) {
94 FLAC__StreamEncoderState state__ = OggFLAC__file_encoder_get_FLAC_stream_encoder_state(encoder);
95 printf(" FLAC stream encoder state = %u (%s)\n", (unsigned)state__, FLAC__StreamEncoderStateString[state__]);
96 if(state__ == FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR) {
97 FLAC__StreamDecoderState dstate = OggFLAC__file_encoder_get_verify_decoder_state(encoder);
98 printf(" verify decoder state = %u (%s)\n", (unsigned)dstate, FLAC__StreamDecoderStateString[dstate]);
106 static void init_metadata_blocks_()
108 mutils__init_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_);
111 static void free_metadata_blocks_()
113 mutils__free_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &unknown_);
116 static FLAC__StreamEncoderWriteStatus stream_encoder_write_callback_(const OggFLAC__StreamEncoder *encoder, const FLAC__byte buffer[], unsigned bytes, unsigned samples, unsigned current_frame, void *client_data)
118 (void)encoder, (void)buffer, (void)bytes, (void)samples, (void)current_frame, (void)client_data;
119 return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
122 static void stream_encoder_metadata_callback_(const OggFLAC__StreamEncoder *encoder, const FLAC__StreamMetadata *metadata, void *client_data)
124 (void)encoder, (void)metadata, (void)client_data;
128 static FLAC__bool test_stream_encoder()
130 OggFLAC__StreamEncoder *encoder;
131 OggFLAC__StreamEncoderState state;
132 FLAC__StreamEncoderState fstate;
133 FLAC__StreamDecoderState dstate;
134 FLAC__int32 samples[1024];
135 FLAC__int32 *samples_array[1];
138 samples_array[0] = samples;
140 printf("\n+++ libOggFLAC unit test: OggFLAC__StreamEncoder\n\n");
142 printf("testing OggFLAC__stream_encoder_new()... ");
143 encoder = OggFLAC__stream_encoder_new();
145 printf("FAILED, returned NULL\n");
150 printf("testing OggFLAC__stream_encoder_set_serial_number()... ");
151 if(!OggFLAC__stream_encoder_set_serial_number(encoder, file_utils__serial_number))
152 return die_s_("returned false", encoder);
155 printf("testing OggFLAC__stream_encoder_set_verify()... ");
156 if(!OggFLAC__stream_encoder_set_verify(encoder, true))
157 return die_s_("returned false", encoder);
160 printf("testing OggFLAC__stream_encoder_set_streamable_subset()... ");
161 if(!OggFLAC__stream_encoder_set_streamable_subset(encoder, true))
162 return die_s_("returned false", encoder);
165 printf("testing OggFLAC__stream_encoder_set_do_mid_side_stereo()... ");
166 if(!OggFLAC__stream_encoder_set_do_mid_side_stereo(encoder, false))
167 return die_s_("returned false", encoder);
170 printf("testing OggFLAC__stream_encoder_set_loose_mid_side_stereo()... ");
171 if(!OggFLAC__stream_encoder_set_loose_mid_side_stereo(encoder, false))
172 return die_s_("returned false", encoder);
175 printf("testing OggFLAC__stream_encoder_set_channels()... ");
176 if(!OggFLAC__stream_encoder_set_channels(encoder, streaminfo_.data.stream_info.channels))
177 return die_s_("returned false", encoder);
180 printf("testing OggFLAC__stream_encoder_set_bits_per_sample()... ");
181 if(!OggFLAC__stream_encoder_set_bits_per_sample(encoder, streaminfo_.data.stream_info.bits_per_sample))
182 return die_s_("returned false", encoder);
185 printf("testing OggFLAC__stream_encoder_set_sample_rate()... ");
186 if(!OggFLAC__stream_encoder_set_sample_rate(encoder, streaminfo_.data.stream_info.sample_rate))
187 return die_s_("returned false", encoder);
190 printf("testing OggFLAC__stream_encoder_set_blocksize()... ");
191 if(!OggFLAC__stream_encoder_set_blocksize(encoder, streaminfo_.data.stream_info.min_blocksize))
192 return die_s_("returned false", encoder);
195 printf("testing OggFLAC__stream_encoder_set_max_lpc_order()... ");
196 if(!OggFLAC__stream_encoder_set_max_lpc_order(encoder, 0))
197 return die_s_("returned false", encoder);
200 printf("testing OggFLAC__stream_encoder_set_qlp_coeff_precision()... ");
201 if(!OggFLAC__stream_encoder_set_qlp_coeff_precision(encoder, 0))
202 return die_s_("returned false", encoder);
205 printf("testing OggFLAC__stream_encoder_set_do_qlp_coeff_prec_search()... ");
206 if(!OggFLAC__stream_encoder_set_do_qlp_coeff_prec_search(encoder, false))
207 return die_s_("returned false", encoder);
210 printf("testing OggFLAC__stream_encoder_set_do_escape_coding()... ");
211 if(!OggFLAC__stream_encoder_set_do_escape_coding(encoder, false))
212 return die_s_("returned false", encoder);
215 printf("testing OggFLAC__stream_encoder_set_do_exhaustive_model_search()... ");
216 if(!OggFLAC__stream_encoder_set_do_exhaustive_model_search(encoder, false))
217 return die_s_("returned false", encoder);
220 printf("testing OggFLAC__stream_encoder_set_min_residual_partition_order()... ");
221 if(!OggFLAC__stream_encoder_set_min_residual_partition_order(encoder, 0))
222 return die_s_("returned false", encoder);
225 printf("testing OggFLAC__stream_encoder_set_max_residual_partition_order()... ");
226 if(!OggFLAC__stream_encoder_set_max_residual_partition_order(encoder, 0))
227 return die_s_("returned false", encoder);
230 printf("testing OggFLAC__stream_encoder_set_rice_parameter_search_dist()... ");
231 if(!OggFLAC__stream_encoder_set_rice_parameter_search_dist(encoder, 0))
232 return die_s_("returned false", encoder);
235 printf("testing OggFLAC__stream_encoder_set_total_samples_estimate()... ");
236 if(!OggFLAC__stream_encoder_set_total_samples_estimate(encoder, streaminfo_.data.stream_info.total_samples))
237 return die_s_("returned false", encoder);
240 printf("testing OggFLAC__stream_encoder_set_metadata()... ");
241 if(!OggFLAC__stream_encoder_set_metadata(encoder, metadata_sequence_, num_metadata_))
242 return die_s_("returned false", encoder);
245 printf("testing OggFLAC__stream_encoder_set_write_callback()... ");
246 if(!OggFLAC__stream_encoder_set_write_callback(encoder, stream_encoder_write_callback_))
247 return die_s_("returned false", encoder);
250 printf("testing OggFLAC__stream_encoder_set_metadata_callback()... ");
251 if(!OggFLAC__stream_encoder_set_metadata_callback(encoder, stream_encoder_metadata_callback_))
252 return die_s_("returned false", encoder);
255 printf("testing OggFLAC__stream_encoder_set_client_data()... ");
256 if(!OggFLAC__stream_encoder_set_client_data(encoder, 0))
257 return die_s_("returned false", encoder);
260 printf("testing OggFLAC__stream_encoder_init()... ");
261 if(OggFLAC__stream_encoder_init(encoder) != FLAC__STREAM_ENCODER_OK)
262 return die_s_(0, encoder);
265 printf("testing OggFLAC__stream_encoder_get_state()... ");
266 state = OggFLAC__stream_encoder_get_state(encoder);
267 printf("returned state = %u (%s)... OK\n", (unsigned)state, OggFLAC__StreamEncoderStateString[state]);
269 printf("testing OggFLAC__stream_encoder_get_FLAC_stream_encoder_state()... ");
270 fstate = OggFLAC__stream_encoder_get_FLAC_stream_encoder_state(encoder);
271 printf("returned state = %u (%s)... OK\n", (unsigned)fstate, FLAC__StreamEncoderStateString[fstate]);
273 printf("testing OggFLAC__stream_encoder_get_verify_decoder_state()... ");
274 dstate = OggFLAC__stream_encoder_get_verify_decoder_state(encoder);
275 printf("returned state = %u (%s)... OK\n", (unsigned)dstate, FLAC__StreamDecoderStateString[dstate]);
278 FLAC__uint64 absolute_sample;
279 unsigned frame_number;
282 FLAC__int32 expected;
285 printf("testing OggFLAC__stream_encoder_get_verify_decoder_error_stats()... ");
286 OggFLAC__stream_encoder_get_verify_decoder_error_stats(encoder, &absolute_sample, &frame_number, &channel, &sample, &expected, &got);
290 printf("testing OggFLAC__stream_encoder_get_verify()... ");
291 if(OggFLAC__stream_encoder_get_verify(encoder) != true) {
292 printf("FAILED, expected true, got false\n");
297 printf("testing OggFLAC__stream_encoder_get_streamable_subset()... ");
298 if(OggFLAC__stream_encoder_get_streamable_subset(encoder) != true) {
299 printf("FAILED, expected true, got false\n");
304 printf("testing OggFLAC__stream_encoder_get_do_mid_side_stereo()... ");
305 if(OggFLAC__stream_encoder_get_do_mid_side_stereo(encoder) != false) {
306 printf("FAILED, expected false, got true\n");
311 printf("testing OggFLAC__stream_encoder_get_loose_mid_side_stereo()... ");
312 if(OggFLAC__stream_encoder_get_loose_mid_side_stereo(encoder) != false) {
313 printf("FAILED, expected false, got true\n");
318 printf("testing OggFLAC__stream_encoder_get_channels()... ");
319 if(OggFLAC__stream_encoder_get_channels(encoder) != streaminfo_.data.stream_info.channels) {
320 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.channels, OggFLAC__stream_encoder_get_channels(encoder));
325 printf("testing OggFLAC__stream_encoder_get_bits_per_sample()... ");
326 if(OggFLAC__stream_encoder_get_bits_per_sample(encoder) != streaminfo_.data.stream_info.bits_per_sample) {
327 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.bits_per_sample, OggFLAC__stream_encoder_get_bits_per_sample(encoder));
332 printf("testing OggFLAC__stream_encoder_get_sample_rate()... ");
333 if(OggFLAC__stream_encoder_get_sample_rate(encoder) != streaminfo_.data.stream_info.sample_rate) {
334 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.sample_rate, OggFLAC__stream_encoder_get_sample_rate(encoder));
339 printf("testing OggFLAC__stream_encoder_get_blocksize()... ");
340 if(OggFLAC__stream_encoder_get_blocksize(encoder) != streaminfo_.data.stream_info.min_blocksize) {
341 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.min_blocksize, OggFLAC__stream_encoder_get_blocksize(encoder));
346 printf("testing OggFLAC__stream_encoder_get_max_lpc_order()... ");
347 if(OggFLAC__stream_encoder_get_max_lpc_order(encoder) != 0) {
348 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__stream_encoder_get_max_lpc_order(encoder));
353 printf("testing OggFLAC__stream_encoder_get_qlp_coeff_precision()... ");
354 (void)OggFLAC__stream_encoder_get_qlp_coeff_precision(encoder);
355 /* we asked the encoder to auto select this so we accept anything */
358 printf("testing OggFLAC__stream_encoder_get_do_qlp_coeff_prec_search()... ");
359 if(OggFLAC__stream_encoder_get_do_qlp_coeff_prec_search(encoder) != false) {
360 printf("FAILED, expected false, got true\n");
365 printf("testing OggFLAC__stream_encoder_get_do_escape_coding()... ");
366 if(OggFLAC__stream_encoder_get_do_escape_coding(encoder) != false) {
367 printf("FAILED, expected false, got true\n");
372 printf("testing OggFLAC__stream_encoder_get_do_exhaustive_model_search()... ");
373 if(OggFLAC__stream_encoder_get_do_exhaustive_model_search(encoder) != false) {
374 printf("FAILED, expected false, got true\n");
379 printf("testing OggFLAC__stream_encoder_get_min_residual_partition_order()... ");
380 if(OggFLAC__stream_encoder_get_min_residual_partition_order(encoder) != 0) {
381 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__stream_encoder_get_min_residual_partition_order(encoder));
386 printf("testing OggFLAC__stream_encoder_get_max_residual_partition_order()... ");
387 if(OggFLAC__stream_encoder_get_max_residual_partition_order(encoder) != 0) {
388 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__stream_encoder_get_max_residual_partition_order(encoder));
393 printf("testing OggFLAC__stream_encoder_get_rice_parameter_search_dist()... ");
394 if(OggFLAC__stream_encoder_get_rice_parameter_search_dist(encoder) != 0) {
395 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__stream_encoder_get_rice_parameter_search_dist(encoder));
400 printf("testing OggFLAC__stream_encoder_get_total_samples_estimate()... ");
401 if(OggFLAC__stream_encoder_get_total_samples_estimate(encoder) != streaminfo_.data.stream_info.total_samples) {
402 printf("FAILED, expected %llu, got %llu\n", streaminfo_.data.stream_info.total_samples, OggFLAC__stream_encoder_get_total_samples_estimate(encoder));
407 /* init the dummy sample buffer */
408 for(i = 0; i < sizeof(samples) / sizeof(FLAC__int32); i++)
411 printf("testing OggFLAC__stream_encoder_process()... ");
412 if(!OggFLAC__stream_encoder_process(encoder, (const FLAC__int32 * const *)samples_array, sizeof(samples) / sizeof(FLAC__int32)))
413 return die_s_("returned false", encoder);
416 printf("testing OggFLAC__stream_encoder_process_interleaved()... ");
417 if(!OggFLAC__stream_encoder_process_interleaved(encoder, samples, sizeof(samples) / sizeof(FLAC__int32)))
418 return die_s_("returned false", encoder);
421 printf("testing OggFLAC__stream_encoder_finish()... ");
422 OggFLAC__stream_encoder_finish(encoder);
425 printf("testing OggFLAC__stream_encoder_delete()... ");
426 OggFLAC__stream_encoder_delete(encoder);
429 printf("\nPASSED!\n");
434 OggFLAC__SeekableStreamEncoderReadStatus seekable_stream_encoder_read_callback_(const OggFLAC__SeekableStreamEncoder *encoder, FLAC__byte buffer[], unsigned *bytes, void *client_data)
436 (void)encoder, (void)buffer, (void)bytes, (void)client_data;
437 return OggFLAC__SEEKABLE_STREAM_ENCODER_READ_STATUS_CONTINUE;
440 FLAC__SeekableStreamEncoderSeekStatus seekable_stream_encoder_seek_callback_(const OggFLAC__SeekableStreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data)
442 (void)encoder, (void)absolute_byte_offset, (void)client_data;
443 return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_OK;
446 FLAC__SeekableStreamEncoderTellStatus seekable_stream_encoder_tell_callback_(const OggFLAC__SeekableStreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
448 (void)encoder, (void)client_data;
449 *absolute_byte_offset = 0;
450 return FLAC__SEEKABLE_STREAM_ENCODER_TELL_STATUS_OK;
453 FLAC__StreamEncoderWriteStatus seekable_stream_encoder_write_callback_(const OggFLAC__SeekableStreamEncoder *encoder, const FLAC__byte buffer[], unsigned bytes, unsigned samples, unsigned current_frame, void *client_data)
455 (void)encoder, (void)buffer, (void)bytes, (void)samples, (void)current_frame, (void)client_data;
456 return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
459 static FLAC__bool test_seekable_stream_encoder()
461 OggFLAC__SeekableStreamEncoder *encoder;
462 OggFLAC__SeekableStreamEncoderState state;
463 FLAC__StreamEncoderState fstate;
464 FLAC__StreamDecoderState dstate;
465 FLAC__int32 samples[1024];
466 FLAC__int32 *samples_array[1];
469 samples_array[0] = samples;
471 printf("\n+++ libOggFLAC unit test: OggFLAC__SeekableStreamEncoder\n\n");
473 printf("testing OggFLAC__seekable_stream_encoder_new()... ");
474 encoder = OggFLAC__seekable_stream_encoder_new();
476 printf("FAILED, returned NULL\n");
481 printf("testing OggFLAC__seekable_stream_encoder_set_serial_number()... ");
482 if(!OggFLAC__seekable_stream_encoder_set_serial_number(encoder, file_utils__serial_number))
483 return die_ss_("returned false", encoder);
486 printf("testing OggFLAC__seekable_stream_encoder_set_verify()... ");
487 if(!OggFLAC__seekable_stream_encoder_set_verify(encoder, true))
488 return die_ss_("returned false", encoder);
491 printf("testing OggFLAC__seekable_stream_encoder_set_streamable_subset()... ");
492 if(!OggFLAC__seekable_stream_encoder_set_streamable_subset(encoder, true))
493 return die_ss_("returned false", encoder);
496 printf("testing OggFLAC__seekable_stream_encoder_set_do_mid_side_stereo()... ");
497 if(!OggFLAC__seekable_stream_encoder_set_do_mid_side_stereo(encoder, false))
498 return die_ss_("returned false", encoder);
501 printf("testing OggFLAC__seekable_stream_encoder_set_loose_mid_side_stereo()... ");
502 if(!OggFLAC__seekable_stream_encoder_set_loose_mid_side_stereo(encoder, false))
503 return die_ss_("returned false", encoder);
506 printf("testing OggFLAC__seekable_stream_encoder_set_channels()... ");
507 if(!OggFLAC__seekable_stream_encoder_set_channels(encoder, streaminfo_.data.stream_info.channels))
508 return die_ss_("returned false", encoder);
511 printf("testing OggFLAC__seekable_stream_encoder_set_bits_per_sample()... ");
512 if(!OggFLAC__seekable_stream_encoder_set_bits_per_sample(encoder, streaminfo_.data.stream_info.bits_per_sample))
513 return die_ss_("returned false", encoder);
516 printf("testing OggFLAC__seekable_stream_encoder_set_sample_rate()... ");
517 if(!OggFLAC__seekable_stream_encoder_set_sample_rate(encoder, streaminfo_.data.stream_info.sample_rate))
518 return die_ss_("returned false", encoder);
521 printf("testing OggFLAC__seekable_stream_encoder_set_blocksize()... ");
522 if(!OggFLAC__seekable_stream_encoder_set_blocksize(encoder, streaminfo_.data.stream_info.min_blocksize))
523 return die_ss_("returned false", encoder);
526 printf("testing OggFLAC__seekable_stream_encoder_set_max_lpc_order()... ");
527 if(!OggFLAC__seekable_stream_encoder_set_max_lpc_order(encoder, 0))
528 return die_ss_("returned false", encoder);
531 printf("testing OggFLAC__seekable_stream_encoder_set_qlp_coeff_precision()... ");
532 if(!OggFLAC__seekable_stream_encoder_set_qlp_coeff_precision(encoder, 0))
533 return die_ss_("returned false", encoder);
536 printf("testing OggFLAC__seekable_stream_encoder_set_do_qlp_coeff_prec_search()... ");
537 if(!OggFLAC__seekable_stream_encoder_set_do_qlp_coeff_prec_search(encoder, false))
538 return die_ss_("returned false", encoder);
541 printf("testing OggFLAC__seekable_stream_encoder_set_do_escape_coding()... ");
542 if(!OggFLAC__seekable_stream_encoder_set_do_escape_coding(encoder, false))
543 return die_ss_("returned false", encoder);
546 printf("testing OggFLAC__seekable_stream_encoder_set_do_exhaustive_model_search()... ");
547 if(!OggFLAC__seekable_stream_encoder_set_do_exhaustive_model_search(encoder, false))
548 return die_ss_("returned false", encoder);
551 printf("testing OggFLAC__seekable_stream_encoder_set_min_residual_partition_order()... ");
552 if(!OggFLAC__seekable_stream_encoder_set_min_residual_partition_order(encoder, 0))
553 return die_ss_("returned false", encoder);
556 printf("testing OggFLAC__seekable_stream_encoder_set_max_residual_partition_order()... ");
557 if(!OggFLAC__seekable_stream_encoder_set_max_residual_partition_order(encoder, 0))
558 return die_ss_("returned false", encoder);
561 printf("testing OggFLAC__seekable_stream_encoder_set_rice_parameter_search_dist()... ");
562 if(!OggFLAC__seekable_stream_encoder_set_rice_parameter_search_dist(encoder, 0))
563 return die_ss_("returned false", encoder);
566 printf("testing OggFLAC__seekable_stream_encoder_set_total_samples_estimate()... ");
567 if(!OggFLAC__seekable_stream_encoder_set_total_samples_estimate(encoder, streaminfo_.data.stream_info.total_samples))
568 return die_ss_("returned false", encoder);
571 printf("testing OggFLAC__seekable_stream_encoder_set_metadata()... ");
572 if(!OggFLAC__seekable_stream_encoder_set_metadata(encoder, metadata_sequence_, num_metadata_))
573 return die_ss_("returned false", encoder);
576 printf("testing OggFLAC__seekable_stream_encoder_set_read_callback()... ");
577 if(!OggFLAC__seekable_stream_encoder_set_read_callback(encoder, seekable_stream_encoder_read_callback_))
578 return die_ss_("returned false", encoder);
581 printf("testing OggFLAC__seekable_stream_encoder_set_seek_callback()... ");
582 if(!OggFLAC__seekable_stream_encoder_set_seek_callback(encoder, seekable_stream_encoder_seek_callback_))
583 return die_ss_("returned false", encoder);
586 printf("testing OggFLAC__seekable_stream_encoder_set_tell_callback()... ");
587 if(!OggFLAC__seekable_stream_encoder_set_tell_callback(encoder, seekable_stream_encoder_tell_callback_))
588 return die_ss_("returned false", encoder);
591 printf("testing OggFLAC__seekable_stream_encoder_set_write_callback()... ");
592 if(!OggFLAC__seekable_stream_encoder_set_write_callback(encoder, seekable_stream_encoder_write_callback_))
593 return die_ss_("returned false", encoder);
596 printf("testing OggFLAC__seekable_stream_encoder_set_client_data()... ");
597 if(!OggFLAC__seekable_stream_encoder_set_client_data(encoder, 0))
598 return die_ss_("returned false", encoder);
601 printf("testing OggFLAC__seekable_stream_encoder_init()... ");
602 if(OggFLAC__seekable_stream_encoder_init(encoder) != OggFLAC__SEEKABLE_STREAM_ENCODER_OK)
603 return die_ss_(0, encoder);
606 printf("testing OggFLAC__seekable_stream_encoder_get_state()... ");
607 state = OggFLAC__seekable_stream_encoder_get_state(encoder);
608 printf("returned state = %u (%s)... OK\n", (unsigned)state, OggFLAC__SeekableStreamEncoderStateString[state]);
610 printf("testing OggFLAC__seekable_stream_encoder_get_FLAC_stream_encoder_state()... ");
611 fstate = OggFLAC__seekable_stream_encoder_get_FLAC_stream_encoder_state(encoder);
612 printf("returned state = %u (%s)... OK\n", (unsigned)fstate, FLAC__StreamEncoderStateString[fstate]);
614 printf("testing OggFLAC__seekable_stream_encoder_get_verify_decoder_state()... ");
615 dstate = OggFLAC__seekable_stream_encoder_get_verify_decoder_state(encoder);
616 printf("returned state = %u (%s)... OK\n", (unsigned)dstate, FLAC__StreamDecoderStateString[dstate]);
619 FLAC__uint64 absolute_sample;
620 unsigned frame_number;
623 FLAC__int32 expected;
626 printf("testing OggFLAC__seekable_stream_encoder_get_verify_decoder_error_stats()... ");
627 OggFLAC__seekable_stream_encoder_get_verify_decoder_error_stats(encoder, &absolute_sample, &frame_number, &channel, &sample, &expected, &got);
631 printf("testing OggFLAC__seekable_stream_encoder_get_verify()... ");
632 if(OggFLAC__seekable_stream_encoder_get_verify(encoder) != true) {
633 printf("FAILED, expected true, got false\n");
638 printf("testing OggFLAC__seekable_stream_encoder_get_streamable_subset()... ");
639 if(OggFLAC__seekable_stream_encoder_get_streamable_subset(encoder) != true) {
640 printf("FAILED, expected true, got false\n");
645 printf("testing OggFLAC__seekable_stream_encoder_get_do_mid_side_stereo()... ");
646 if(OggFLAC__seekable_stream_encoder_get_do_mid_side_stereo(encoder) != false) {
647 printf("FAILED, expected false, got true\n");
652 printf("testing OggFLAC__seekable_stream_encoder_get_loose_mid_side_stereo()... ");
653 if(OggFLAC__seekable_stream_encoder_get_loose_mid_side_stereo(encoder) != false) {
654 printf("FAILED, expected false, got true\n");
659 printf("testing OggFLAC__seekable_stream_encoder_get_channels()... ");
660 if(OggFLAC__seekable_stream_encoder_get_channels(encoder) != streaminfo_.data.stream_info.channels) {
661 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.channels, OggFLAC__seekable_stream_encoder_get_channels(encoder));
666 printf("testing OggFLAC__seekable_stream_encoder_get_bits_per_sample()... ");
667 if(OggFLAC__seekable_stream_encoder_get_bits_per_sample(encoder) != streaminfo_.data.stream_info.bits_per_sample) {
668 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.bits_per_sample, OggFLAC__seekable_stream_encoder_get_bits_per_sample(encoder));
673 printf("testing OggFLAC__seekable_stream_encoder_get_sample_rate()... ");
674 if(OggFLAC__seekable_stream_encoder_get_sample_rate(encoder) != streaminfo_.data.stream_info.sample_rate) {
675 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.sample_rate, OggFLAC__seekable_stream_encoder_get_sample_rate(encoder));
680 printf("testing OggFLAC__seekable_stream_encoder_get_blocksize()... ");
681 if(OggFLAC__seekable_stream_encoder_get_blocksize(encoder) != streaminfo_.data.stream_info.min_blocksize) {
682 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.min_blocksize, OggFLAC__seekable_stream_encoder_get_blocksize(encoder));
687 printf("testing OggFLAC__seekable_stream_encoder_get_max_lpc_order()... ");
688 if(OggFLAC__seekable_stream_encoder_get_max_lpc_order(encoder) != 0) {
689 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__seekable_stream_encoder_get_max_lpc_order(encoder));
694 printf("testing OggFLAC__seekable_stream_encoder_get_qlp_coeff_precision()... ");
695 (void)OggFLAC__seekable_stream_encoder_get_qlp_coeff_precision(encoder);
696 /* we asked the encoder to auto select this so we accept anything */
699 printf("testing OggFLAC__seekable_stream_encoder_get_do_qlp_coeff_prec_search()... ");
700 if(OggFLAC__seekable_stream_encoder_get_do_qlp_coeff_prec_search(encoder) != false) {
701 printf("FAILED, expected false, got true\n");
706 printf("testing OggFLAC__seekable_stream_encoder_get_do_escape_coding()... ");
707 if(OggFLAC__seekable_stream_encoder_get_do_escape_coding(encoder) != false) {
708 printf("FAILED, expected false, got true\n");
713 printf("testing OggFLAC__seekable_stream_encoder_get_do_exhaustive_model_search()... ");
714 if(OggFLAC__seekable_stream_encoder_get_do_exhaustive_model_search(encoder) != false) {
715 printf("FAILED, expected false, got true\n");
720 printf("testing OggFLAC__seekable_stream_encoder_get_min_residual_partition_order()... ");
721 if(OggFLAC__seekable_stream_encoder_get_min_residual_partition_order(encoder) != 0) {
722 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__seekable_stream_encoder_get_min_residual_partition_order(encoder));
727 printf("testing OggFLAC__seekable_stream_encoder_get_max_residual_partition_order()... ");
728 if(OggFLAC__seekable_stream_encoder_get_max_residual_partition_order(encoder) != 0) {
729 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__seekable_stream_encoder_get_max_residual_partition_order(encoder));
734 printf("testing OggFLAC__seekable_stream_encoder_get_rice_parameter_search_dist()... ");
735 if(OggFLAC__seekable_stream_encoder_get_rice_parameter_search_dist(encoder) != 0) {
736 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__seekable_stream_encoder_get_rice_parameter_search_dist(encoder));
741 printf("testing OggFLAC__seekable_stream_encoder_get_total_samples_estimate()... ");
742 if(OggFLAC__seekable_stream_encoder_get_total_samples_estimate(encoder) != streaminfo_.data.stream_info.total_samples) {
743 printf("FAILED, expected %llu, got %llu\n", streaminfo_.data.stream_info.total_samples, OggFLAC__seekable_stream_encoder_get_total_samples_estimate(encoder));
748 /* init the dummy sample buffer */
749 for(i = 0; i < sizeof(samples) / sizeof(FLAC__int32); i++)
752 printf("testing OggFLAC__seekable_stream_encoder_process()... ");
753 if(!OggFLAC__seekable_stream_encoder_process(encoder, (const FLAC__int32 * const *)samples_array, sizeof(samples) / sizeof(FLAC__int32)))
754 return die_ss_("returned false", encoder);
757 printf("testing OggFLAC__seekable_stream_encoder_process_interleaved()... ");
758 if(!OggFLAC__seekable_stream_encoder_process_interleaved(encoder, samples, sizeof(samples) / sizeof(FLAC__int32)))
759 return die_ss_("returned false", encoder);
762 printf("testing OggFLAC__seekable_stream_encoder_finish()... ");
763 OggFLAC__seekable_stream_encoder_finish(encoder);
766 printf("testing OggFLAC__seekable_stream_encoder_delete()... ");
767 OggFLAC__seekable_stream_encoder_delete(encoder);
770 printf("\nPASSED!\n");
775 static void file_encoder_progress_callback_(const OggFLAC__FileEncoder *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate, void *client_data)
777 (void)encoder, (void)bytes_written, (void)samples_written, (void)frames_written, (void)total_frames_estimate, (void)client_data;
780 static FLAC__bool test_file_encoder()
782 OggFLAC__FileEncoder *encoder;
783 OggFLAC__FileEncoderState state;
784 OggFLAC__SeekableStreamEncoderState sstate;
785 FLAC__StreamEncoderState fstate;
786 FLAC__StreamDecoderState dstate;
787 FLAC__int32 samples[1024];
788 FLAC__int32 *samples_array[1];
791 samples_array[0] = samples;
793 printf("\n+++ libOggFLAC unit test: OggFLAC__FileEncoder\n\n");
795 printf("testing OggFLAC__file_encoder_new()... ");
796 encoder = OggFLAC__file_encoder_new();
798 printf("FAILED, returned NULL\n");
803 printf("testing OggFLAC__file_encoder_set_serial_number()... ");
804 if(!OggFLAC__file_encoder_set_serial_number(encoder, file_utils__serial_number))
805 return die_f_("returned false", encoder);
808 printf("testing OggFLAC__file_encoder_set_verify()... ");
809 if(!OggFLAC__file_encoder_set_verify(encoder, true))
810 return die_f_("returned false", encoder);
813 printf("testing OggFLAC__file_encoder_set_streamable_subset()... ");
814 if(!OggFLAC__file_encoder_set_streamable_subset(encoder, true))
815 return die_f_("returned false", encoder);
818 printf("testing OggFLAC__file_encoder_set_do_mid_side_stereo()... ");
819 if(!OggFLAC__file_encoder_set_do_mid_side_stereo(encoder, false))
820 return die_f_("returned false", encoder);
823 printf("testing OggFLAC__file_encoder_set_loose_mid_side_stereo()... ");
824 if(!OggFLAC__file_encoder_set_loose_mid_side_stereo(encoder, false))
825 return die_f_("returned false", encoder);
828 printf("testing OggFLAC__file_encoder_set_channels()... ");
829 if(!OggFLAC__file_encoder_set_channels(encoder, streaminfo_.data.stream_info.channels))
830 return die_f_("returned false", encoder);
833 printf("testing OggFLAC__file_encoder_set_bits_per_sample()... ");
834 if(!OggFLAC__file_encoder_set_bits_per_sample(encoder, streaminfo_.data.stream_info.bits_per_sample))
835 return die_f_("returned false", encoder);
838 printf("testing OggFLAC__file_encoder_set_sample_rate()... ");
839 if(!OggFLAC__file_encoder_set_sample_rate(encoder, streaminfo_.data.stream_info.sample_rate))
840 return die_f_("returned false", encoder);
843 printf("testing OggFLAC__file_encoder_set_blocksize()... ");
844 if(!OggFLAC__file_encoder_set_blocksize(encoder, streaminfo_.data.stream_info.min_blocksize))
845 return die_f_("returned false", encoder);
848 printf("testing OggFLAC__file_encoder_set_max_lpc_order()... ");
849 if(!OggFLAC__file_encoder_set_max_lpc_order(encoder, 0))
850 return die_f_("returned false", encoder);
853 printf("testing OggFLAC__file_encoder_set_qlp_coeff_precision()... ");
854 if(!OggFLAC__file_encoder_set_qlp_coeff_precision(encoder, 0))
855 return die_f_("returned false", encoder);
858 printf("testing OggFLAC__file_encoder_set_do_qlp_coeff_prec_search()... ");
859 if(!OggFLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder, false))
860 return die_f_("returned false", encoder);
863 printf("testing OggFLAC__file_encoder_set_do_escape_coding()... ");
864 if(!OggFLAC__file_encoder_set_do_escape_coding(encoder, false))
865 return die_f_("returned false", encoder);
868 printf("testing OggFLAC__file_encoder_set_do_exhaustive_model_search()... ");
869 if(!OggFLAC__file_encoder_set_do_exhaustive_model_search(encoder, false))
870 return die_f_("returned false", encoder);
873 printf("testing OggFLAC__file_encoder_set_min_residual_partition_order()... ");
874 if(!OggFLAC__file_encoder_set_min_residual_partition_order(encoder, 0))
875 return die_f_("returned false", encoder);
878 printf("testing OggFLAC__file_encoder_set_max_residual_partition_order()... ");
879 if(!OggFLAC__file_encoder_set_max_residual_partition_order(encoder, 0))
880 return die_f_("returned false", encoder);
883 printf("testing OggFLAC__file_encoder_set_rice_parameter_search_dist()... ");
884 if(!OggFLAC__file_encoder_set_rice_parameter_search_dist(encoder, 0))
885 return die_f_("returned false", encoder);
888 printf("testing OggFLAC__file_encoder_set_total_samples_estimate()... ");
889 if(!OggFLAC__file_encoder_set_total_samples_estimate(encoder, streaminfo_.data.stream_info.total_samples))
890 return die_f_("returned false", encoder);
893 printf("testing OggFLAC__file_encoder_set_metadata()... ");
894 if(!OggFLAC__file_encoder_set_metadata(encoder, metadata_sequence_, num_metadata_))
895 return die_f_("returned false", encoder);
898 printf("testing OggFLAC__file_encoder_set_filename()... ");
899 if(!OggFLAC__file_encoder_set_filename(encoder, oggflacfilename_))
900 return die_f_("returned false", encoder);
903 printf("testing OggFLAC__file_encoder_set_progress_callback()... ");
904 if(!OggFLAC__file_encoder_set_progress_callback(encoder, file_encoder_progress_callback_))
905 return die_f_("returned false", encoder);
908 printf("testing OggFLAC__file_encoder_set_client_data()... ");
909 if(!OggFLAC__file_encoder_set_client_data(encoder, 0))
910 return die_f_("returned false", encoder);
913 printf("testing OggFLAC__file_encoder_init()... ");
914 if(OggFLAC__file_encoder_init(encoder) != OggFLAC__FILE_ENCODER_OK)
915 return die_f_(0, encoder);
918 printf("testing OggFLAC__file_encoder_get_state()... ");
919 state = OggFLAC__file_encoder_get_state(encoder);
920 printf("returned state = %u (%s)... OK\n", (unsigned)state, OggFLAC__FileEncoderStateString[state]);
922 printf("testing OggFLAC__file_encoder_get_seekable_stream_encoder_state()... ");
923 sstate = OggFLAC__file_encoder_get_seekable_stream_encoder_state(encoder);
924 printf("returned state = %u (%s)... OK\n", (unsigned)sstate, OggFLAC__SeekableStreamEncoderStateString[sstate]);
926 printf("testing OggFLAC__file_encoder_get_FLAC_stream_encoder_state()... ");
927 fstate = OggFLAC__file_encoder_get_FLAC_stream_encoder_state(encoder);
928 printf("returned state = %u (%s)... OK\n", (unsigned)fstate, FLAC__StreamEncoderStateString[fstate]);
930 printf("testing OggFLAC__file_encoder_get_verify_decoder_state()... ");
931 dstate = OggFLAC__file_encoder_get_verify_decoder_state(encoder);
932 printf("returned state = %u (%s)... OK\n", (unsigned)dstate, FLAC__StreamDecoderStateString[dstate]);
935 FLAC__uint64 absolute_sample;
936 unsigned frame_number;
939 FLAC__int32 expected;
942 printf("testing OggFLAC__file_encoder_get_verify_decoder_error_stats()... ");
943 OggFLAC__file_encoder_get_verify_decoder_error_stats(encoder, &absolute_sample, &frame_number, &channel, &sample, &expected, &got);
947 printf("testing OggFLAC__file_encoder_get_verify()... ");
948 if(OggFLAC__file_encoder_get_verify(encoder) != true) {
949 printf("FAILED, expected true, got false\n");
954 printf("testing OggFLAC__file_encoder_get_streamable_subset()... ");
955 if(OggFLAC__file_encoder_get_streamable_subset(encoder) != true) {
956 printf("FAILED, expected true, got false\n");
961 printf("testing OggFLAC__file_encoder_get_do_mid_side_stereo()... ");
962 if(OggFLAC__file_encoder_get_do_mid_side_stereo(encoder) != false) {
963 printf("FAILED, expected false, got true\n");
968 printf("testing OggFLAC__file_encoder_get_loose_mid_side_stereo()... ");
969 if(OggFLAC__file_encoder_get_loose_mid_side_stereo(encoder) != false) {
970 printf("FAILED, expected false, got true\n");
975 printf("testing OggFLAC__file_encoder_get_channels()... ");
976 if(OggFLAC__file_encoder_get_channels(encoder) != streaminfo_.data.stream_info.channels) {
977 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.channels, OggFLAC__file_encoder_get_channels(encoder));
982 printf("testing OggFLAC__file_encoder_get_bits_per_sample()... ");
983 if(OggFLAC__file_encoder_get_bits_per_sample(encoder) != streaminfo_.data.stream_info.bits_per_sample) {
984 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.bits_per_sample, OggFLAC__file_encoder_get_bits_per_sample(encoder));
989 printf("testing OggFLAC__file_encoder_get_sample_rate()... ");
990 if(OggFLAC__file_encoder_get_sample_rate(encoder) != streaminfo_.data.stream_info.sample_rate) {
991 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.sample_rate, OggFLAC__file_encoder_get_sample_rate(encoder));
996 printf("testing OggFLAC__file_encoder_get_blocksize()... ");
997 if(OggFLAC__file_encoder_get_blocksize(encoder) != streaminfo_.data.stream_info.min_blocksize) {
998 printf("FAILED, expected %u, got %u\n", streaminfo_.data.stream_info.min_blocksize, OggFLAC__file_encoder_get_blocksize(encoder));
1003 printf("testing OggFLAC__file_encoder_get_max_lpc_order()... ");
1004 if(OggFLAC__file_encoder_get_max_lpc_order(encoder) != 0) {
1005 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__file_encoder_get_max_lpc_order(encoder));
1010 printf("testing OggFLAC__file_encoder_get_qlp_coeff_precision()... ");
1011 (void)OggFLAC__file_encoder_get_qlp_coeff_precision(encoder);
1012 /* we asked the encoder to auto select this so we accept anything */
1015 printf("testing OggFLAC__file_encoder_get_do_qlp_coeff_prec_search()... ");
1016 if(OggFLAC__file_encoder_get_do_qlp_coeff_prec_search(encoder) != false) {
1017 printf("FAILED, expected false, got true\n");
1022 printf("testing OggFLAC__file_encoder_get_do_escape_coding()... ");
1023 if(OggFLAC__file_encoder_get_do_escape_coding(encoder) != false) {
1024 printf("FAILED, expected false, got true\n");
1029 printf("testing OggFLAC__file_encoder_get_do_exhaustive_model_search()... ");
1030 if(OggFLAC__file_encoder_get_do_exhaustive_model_search(encoder) != false) {
1031 printf("FAILED, expected false, got true\n");
1036 printf("testing OggFLAC__file_encoder_get_min_residual_partition_order()... ");
1037 if(OggFLAC__file_encoder_get_min_residual_partition_order(encoder) != 0) {
1038 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__file_encoder_get_min_residual_partition_order(encoder));
1043 printf("testing OggFLAC__file_encoder_get_max_residual_partition_order()... ");
1044 if(OggFLAC__file_encoder_get_max_residual_partition_order(encoder) != 0) {
1045 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__file_encoder_get_max_residual_partition_order(encoder));
1050 printf("testing OggFLAC__file_encoder_get_rice_parameter_search_dist()... ");
1051 if(OggFLAC__file_encoder_get_rice_parameter_search_dist(encoder) != 0) {
1052 printf("FAILED, expected %u, got %u\n", 0, OggFLAC__file_encoder_get_rice_parameter_search_dist(encoder));
1057 printf("testing OggFLAC__file_encoder_get_total_samples_estimate()... ");
1058 if(OggFLAC__file_encoder_get_total_samples_estimate(encoder) != streaminfo_.data.stream_info.total_samples) {
1059 printf("FAILED, expected %llu, got %llu\n", streaminfo_.data.stream_info.total_samples, OggFLAC__file_encoder_get_total_samples_estimate(encoder));
1064 /* init the dummy sample buffer */
1065 for(i = 0; i < sizeof(samples) / sizeof(FLAC__int32); i++)
1068 printf("testing OggFLAC__file_encoder_process()... ");
1069 if(!OggFLAC__file_encoder_process(encoder, (const FLAC__int32 * const *)samples_array, sizeof(samples) / sizeof(FLAC__int32)))
1070 return die_f_("returned false", encoder);
1073 printf("testing OggFLAC__file_encoder_process_interleaved()... ");
1074 if(!OggFLAC__file_encoder_process_interleaved(encoder, samples, sizeof(samples) / sizeof(FLAC__int32)))
1075 return die_f_("returned false", encoder);
1078 printf("testing OggFLAC__file_encoder_finish()... ");
1079 OggFLAC__file_encoder_finish(encoder);
1082 printf("testing OggFLAC__file_encoder_delete()... ");
1083 OggFLAC__file_encoder_delete(encoder);
1086 printf("\nPASSED!\n");
1091 FLAC__bool test_encoders()
1093 init_metadata_blocks_();
1095 if(!test_stream_encoder())
1098 if(!test_seekable_stream_encoder())
1101 if(!test_file_encoder())
1104 (void) grabbag__file_remove_file(oggflacfilename_);
1105 free_metadata_blocks_();