26
if [ x = x"$1" ] ; then
26
dddie="die ERROR: creating files with dd"
28
if [ x = x"$1" ] ; then
32
LD_LIBRARY_PATH=../src/libFLAC/.libs:$LD_LIBRARY_PATH
33
LD_LIBRARY_PATH=../src/libOggFLAC/.libs:$LD_LIBRARY_PATH
34
LD_LIBRARY_PATH=../src/share/grabbag/.libs:$LD_LIBRARY_PATH
35
LD_LIBRARY_PATH=../src/share/getopt/.libs:$LD_LIBRARY_PATH
36
LD_LIBRARY_PATH=../src/share/replaygain_analysis/.libs:$LD_LIBRARY_PATH
37
LD_LIBRARY_PATH=../src/share/replaygain_synthesis/.libs:$LD_LIBRARY_PATH
38
LD_LIBRARY_PATH=../src/share/utf8/.libs:$LD_LIBRARY_PATH
39
LD_LIBRARY_PATH=../obj/$BUILD/lib:$LD_LIBRARY_PATH
34
# change to 'false' to show flac output (useful for debugging)
37
TOTALLY_SILENT='--totally-silent'
43
LD_LIBRARY_PATH=`pwd`/../src/libFLAC/.libs:$LD_LIBRARY_PATH
44
LD_LIBRARY_PATH=`pwd`/../src/share/grabbag/.libs:$LD_LIBRARY_PATH
45
LD_LIBRARY_PATH=`pwd`/../src/share/getopt/.libs:$LD_LIBRARY_PATH
46
LD_LIBRARY_PATH=`pwd`/../src/share/replaygain_analysis/.libs:$LD_LIBRARY_PATH
47
LD_LIBRARY_PATH=`pwd`/../src/share/replaygain_synthesis/.libs:$LD_LIBRARY_PATH
48
LD_LIBRARY_PATH=`pwd`/../src/share/utf8/.libs:$LD_LIBRARY_PATH
49
LD_LIBRARY_PATH=`pwd`/../obj/$BUILD/lib:$LD_LIBRARY_PATH
40
50
export LD_LIBRARY_PATH
41
PATH=../src/flac:$PATH
42
PATH=../src/metaflac:$PATH
43
PATH=../src/test_streams:$PATH
44
PATH=../obj/$BUILD/bin:$PATH
51
PATH=`pwd`/../src/flac:$PATH
52
PATH=`pwd`/../src/metaflac:$PATH
53
PATH=`pwd`/../src/test_streams:$PATH
54
PATH=`pwd`/../obj/$BUILD/bin:$PATH
46
56
flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
50
if [ x"$FLAC__VALGRIND" = xyes ] ; then
60
if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
61
echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=100 flac $*" >>test_flac.valgrind.log
51
62
valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --logfile-fd=4 flac $* 4>>test_flac.valgrind.log
121
139
rm -f exist.wav exist.flac
123
141
############################################################################
142
# test fractional block sizes
143
############################################################################
149
dd if=noise.raw ibs=4 count=$samples of=pbs.raw 2>/dev/null || $dddie
150
echo -n "fractional block size test (blocksize=$blocksize samples=$samples) encode... "
151
run_flac $SILENT --force --verify --force-raw-format --endian=little --sign=signed --sample-rate=44100 --bps=16 --channels=2 --blocksize=$blocksize --no-padding --lax -o pbs.flac pbs.raw || die "ERROR"
153
run_flac $SILENT --force --decode --force-raw-format --endian=little --sign=signed -o pbs.cmp pbs.flac || die "ERROR"
154
echo -n "compare... "
155
cmp pbs.raw pbs.cmp || die "ERROR: file mismatch"
157
rm -f pbs.raw pbs.flac pbs.cmp
160
# The special significance of 2048 is it's the # of samples that flac calls
161
# FLAC__stream_encoder_process() on.
163
# We're trying to make sure the 1-sample overread logic in the stream encoder
164
# (used for last-block checking) works; these values probe around common
165
# multiples of the flac sample chunk size (2048) and the blocksize.
166
for samples in 31 32 33 34 35 2046 2047 2048 2049 2050 ; do
167
test_fractional 33 $samples
169
for samples in 254 255 256 257 258 510 511 512 513 514 1022 1023 1024 1025 1026 2046 2047 2048 2049 2050 4094 4095 4096 4097 4098 ; do
170
test_fractional 256 $samples
172
for samples in 1022 1023 1024 1025 1026 2046 2047 2048 2049 2050 4094 4095 4096 4097 4098 ; do
173
test_fractional 2048 $samples
175
for samples in 1022 1023 1024 1025 1026 2046 2047 2048 2049 2050 4094 4095 4096 4097 4098 4606 4607 4608 4609 4610 8190 8191 8192 8193 8194 16382 16383 16384 16385 16386 ; do
176
test_fractional 4608 $samples
179
############################################################################
124
180
# basic 'round-trip' tests of various kinds of streams
125
181
############################################################################
202
296
dd if=master.raw ibs=1 skip=20 count=10 of=50c.skip20.until30.raw 2>/dev/null || $dddie
203
297
dd if=master.raw ibs=1 skip=20 count=20 of=50c.skip20.until40.raw 2>/dev/null || $dddie
205
wav_eopt="--silent --force --verify --lax"
206
wav_dopt="--silent --force --decode"
299
wav_eopt="$SILENT --force --verify --no-padding --lax"
300
wav_dopt="$SILENT --force --decode"
208
302
raw_eopt="$wav_eopt --force-raw-format --endian=big --sign=signed --sample-rate=10 --bps=8 --channels=1"
209
303
raw_dopt="$wav_dopt --force-raw-format --endian=big --sign=signed"
212
# convert them to WAVE and AIFF files
306
# convert them to WAVE/AIFF/Ogg FLAC files
214
308
convert_to_wav ()
216
run_flac $raw_eopt $1.raw || die "ERROR converting $1.raw to WAVE"
217
run_flac $wav_dopt $1.flac || die "ERROR converting $1.raw to WAVE"
310
run_flac "$2" $1.raw || die "ERROR converting $1.raw to WAVE"
311
run_flac "$3" $1.flac || die "ERROR converting $1.raw to WAVE"
220
convert_to_wav 50c.skip10
221
convert_to_wav 50c.skip11
222
convert_to_wav 50c.skip20
223
convert_to_wav 50c.skip30
224
convert_to_wav 50c.skip40
225
convert_to_wav 50c.until10
226
convert_to_wav 50c.until20
227
convert_to_wav 50c.until30
228
convert_to_wav 50c.until39
229
convert_to_wav 50c.until40
230
convert_to_wav 50c.skip10.until30
231
convert_to_wav 50c.skip10.until39
232
convert_to_wav 50c.skip10.until40
233
convert_to_wav 50c.skip20.until30
234
convert_to_wav 50c.skip20.until40
313
convert_to_wav 50c "$raw_eopt" "$wav_dopt"
314
convert_to_wav 50c.skip10 "$raw_eopt" "$wav_dopt"
315
convert_to_wav 50c.skip11 "$raw_eopt" "$wav_dopt"
316
convert_to_wav 50c.skip20 "$raw_eopt" "$wav_dopt"
317
convert_to_wav 50c.skip30 "$raw_eopt" "$wav_dopt"
318
convert_to_wav 50c.skip40 "$raw_eopt" "$wav_dopt"
319
convert_to_wav 50c.until10 "$raw_eopt" "$wav_dopt"
320
convert_to_wav 50c.until20 "$raw_eopt" "$wav_dopt"
321
convert_to_wav 50c.until30 "$raw_eopt" "$wav_dopt"
322
convert_to_wav 50c.until39 "$raw_eopt" "$wav_dopt"
323
convert_to_wav 50c.until40 "$raw_eopt" "$wav_dopt"
324
convert_to_wav 50c.skip10.until30 "$raw_eopt" "$wav_dopt"
325
convert_to_wav 50c.skip10.until39 "$raw_eopt" "$wav_dopt"
326
convert_to_wav 50c.skip10.until40 "$raw_eopt" "$wav_dopt"
327
convert_to_wav 50c.skip20.until30 "$raw_eopt" "$wav_dopt"
328
convert_to_wav 50c.skip20.until40 "$raw_eopt" "$wav_dopt"
236
330
convert_to_aiff ()
238
run_flac $raw_eopt $1.raw || die "ERROR converting $1.raw to AIFF"
239
run_flac $wav_dopt $1.flac -o $1.aiff || die "ERROR converting $1.raw to AIFF"
242
convert_to_aiff 50c.skip10
243
convert_to_aiff 50c.skip11
244
convert_to_aiff 50c.skip20
245
convert_to_aiff 50c.skip30
246
convert_to_aiff 50c.skip40
247
convert_to_aiff 50c.until10
248
convert_to_aiff 50c.until20
249
convert_to_aiff 50c.until30
250
convert_to_aiff 50c.until39
251
convert_to_aiff 50c.until40
252
convert_to_aiff 50c.skip10.until30
253
convert_to_aiff 50c.skip10.until39
254
convert_to_aiff 50c.skip10.until40
255
convert_to_aiff 50c.skip20.until30
256
convert_to_aiff 50c.skip20.until40
332
run_flac "$2" $1.raw || die "ERROR converting $1.raw to AIFF"
333
run_flac "$3" $1.flac -o $1.aiff || die "ERROR converting $1.raw to AIFF"
335
convert_to_aiff 50c "$raw_eopt" "$wav_dopt"
336
convert_to_aiff 50c.skip10 "$raw_eopt" "$wav_dopt"
337
convert_to_aiff 50c.skip11 "$raw_eopt" "$wav_dopt"
338
convert_to_aiff 50c.skip20 "$raw_eopt" "$wav_dopt"
339
convert_to_aiff 50c.skip30 "$raw_eopt" "$wav_dopt"
340
convert_to_aiff 50c.skip40 "$raw_eopt" "$wav_dopt"
341
convert_to_aiff 50c.until10 "$raw_eopt" "$wav_dopt"
342
convert_to_aiff 50c.until20 "$raw_eopt" "$wav_dopt"
343
convert_to_aiff 50c.until30 "$raw_eopt" "$wav_dopt"
344
convert_to_aiff 50c.until39 "$raw_eopt" "$wav_dopt"
345
convert_to_aiff 50c.until40 "$raw_eopt" "$wav_dopt"
346
convert_to_aiff 50c.skip10.until30 "$raw_eopt" "$wav_dopt"
347
convert_to_aiff 50c.skip10.until39 "$raw_eopt" "$wav_dopt"
348
convert_to_aiff 50c.skip10.until40 "$raw_eopt" "$wav_dopt"
349
convert_to_aiff 50c.skip20.until30 "$raw_eopt" "$wav_dopt"
350
convert_to_aiff 50c.skip20.until40 "$raw_eopt" "$wav_dopt"
354
run_flac "$wav_eopt" --ogg $1.wav || die "ERROR converting $1.raw to Ogg FLAC"
356
if [ $has_ogg = yes ] ; then
358
convert_to_ogg 50c.skip10
359
convert_to_ogg 50c.skip11
360
convert_to_ogg 50c.skip20
361
convert_to_ogg 50c.skip30
362
convert_to_ogg 50c.skip40
363
convert_to_ogg 50c.until10
364
convert_to_ogg 50c.until20
365
convert_to_ogg 50c.until30
366
convert_to_ogg 50c.until39
367
convert_to_ogg 50c.until40
368
convert_to_ogg 50c.skip10.until30
369
convert_to_ogg 50c.skip10.until39
370
convert_to_ogg 50c.skip10.until40
371
convert_to_ogg 50c.skip20.until30
372
convert_to_ogg 50c.skip20.until40
258
375
test_skip_until ()
263
[ "$in_fmt" = wav ] || [ "$in_fmt" = aiff ] || [ "$in_fmt" = raw ] || die "ERROR: internal error, bad 'in' format '$in_fmt'"
380
[ "$in_fmt" = wav ] || [ "$in_fmt" = aiff ] || [ "$in_fmt" = raw ] || [ "$in_fmt" = flac ] || [ "$in_fmt" = ogg ] || die "ERROR: internal error, bad 'in' format '$in_fmt'"
265
382
[ "$out_fmt" = flac ] || [ "$out_fmt" = ogg ] || die "ERROR: internal error, bad 'out' format '$out_fmt'"
285
408
echo -n "testing --skip=# (encode) $desc... "
286
409
run_flac $eopt --skip=10 -o z50c.skip10.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
287
run_flac $dopt -o z50c.skip10.$in_fmt z50c.skip10.$out_fmt || die "ERROR decoding FLAC file $desc"
288
cmp 50c.skip10.$in_fmt z50c.skip10.$in_fmt || die "ERROR: file mismatch for --skip=10 (encode) $desc"
410
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.$in_fmt z50c.skip10.$out_fmt || die "ERROR decoding FLAC file $desc"
411
$CMP 50c.skip10.$in_fmt z50c.skip10.$in_fmt || die "ERROR: file mismatch for --skip=10 (encode) $desc"
289
412
rm -f z50c.skip10.$out_fmt z50c.skip10.$in_fmt
292
415
echo -n "testing --skip=mm:ss (encode) $desc... "
293
416
run_flac $eopt --skip=0:01 -o z50c.skip0:01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
294
run_flac $dopt -o z50c.skip0:01.$in_fmt z50c.skip0:01.$out_fmt || die "ERROR decoding FLAC file $desc"
295
cmp 50c.skip10.$in_fmt z50c.skip0:01.$in_fmt || die "ERROR: file mismatch for --skip=0:01 (encode) $desc"
417
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip0:01.$in_fmt z50c.skip0:01.$out_fmt || die "ERROR decoding FLAC file $desc"
418
$CMP 50c.skip10.$in_fmt z50c.skip0:01.$in_fmt || die "ERROR: file mismatch for --skip=0:01 (encode) $desc"
296
419
rm -f z50c.skip0:01.$out_fmt z50c.skip0:01.$in_fmt
299
422
echo -n "testing --skip=mm:ss.sss (encode) $desc... "
300
423
run_flac $eopt --skip=0:01.1001 -o z50c.skip0:01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
301
run_flac $dopt -o z50c.skip0:01.1001.$in_fmt z50c.skip0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc"
302
cmp 50c.skip11.$in_fmt z50c.skip0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=0:01.1001 (encode) $desc"
424
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip0:01.1001.$in_fmt z50c.skip0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc"
425
$CMP 50c.skip11.$in_fmt z50c.skip0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=0:01.1001 (encode) $desc"
303
426
rm -f z50c.skip0:01.1001.$out_fmt z50c.skip0:01.1001.$in_fmt
335
459
echo -n "testing --until=# (encode) $desc... "
336
460
run_flac $eopt --until=40 -o z50c.until40.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
337
run_flac $dopt -o z50c.until40.$in_fmt z50c.until40.$out_fmt || die "ERROR decoding FLAC file $desc"
338
cmp 50c.until40.$in_fmt z50c.until40.$in_fmt || die "ERROR: file mismatch for --until=40 (encode) $desc"
461
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until40.$in_fmt z50c.until40.$out_fmt || die "ERROR decoding FLAC file $desc"
462
$CMP 50c.until40.$in_fmt z50c.until40.$in_fmt || die "ERROR: file mismatch for --until=40 (encode) $desc"
339
463
rm -f z50c.until40.$out_fmt z50c.until40.$in_fmt
342
466
echo -n "testing --until=mm:ss (encode) $desc... "
343
467
run_flac $eopt --until=0:04 -o z50c.until0:04.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
344
run_flac $dopt -o z50c.until0:04.$in_fmt z50c.until0:04.$out_fmt || die "ERROR decoding FLAC file $desc"
345
cmp 50c.until40.$in_fmt z50c.until0:04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (encode) $desc"
468
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until0:04.$in_fmt z50c.until0:04.$out_fmt || die "ERROR decoding FLAC file $desc"
469
$CMP 50c.until40.$in_fmt z50c.until0:04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (encode) $desc"
346
470
rm -f z50c.until0:04.$out_fmt z50c.until0:04.$in_fmt
349
473
echo -n "testing --until=mm:ss.sss (encode) $desc... "
350
474
run_flac $eopt --until=0:03.9001 -o z50c.until0:03.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
351
run_flac $dopt -o z50c.until0:03.9001.$in_fmt z50c.until0:03.9001.$out_fmt || die "ERROR decoding FLAC file $desc"
352
cmp 50c.until39.$in_fmt z50c.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (encode) $desc"
475
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until0:03.9001.$in_fmt z50c.until0:03.9001.$out_fmt || die "ERROR decoding FLAC file $desc"
476
$CMP 50c.until39.$in_fmt z50c.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (encode) $desc"
353
477
rm -f z50c.until0:03.9001.$out_fmt z50c.until0:03.9001.$in_fmt
356
480
echo -n "testing --until=-# (encode) $desc... "
357
481
run_flac $eopt --until=-10 -o z50c.until-10.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
358
run_flac $dopt -o z50c.until-10.$in_fmt z50c.until-10.$out_fmt || die "ERROR decoding FLAC file $desc"
359
cmp 50c.until40.$in_fmt z50c.until-10.$in_fmt || die "ERROR: file mismatch for --until=-10 (encode) $desc"
482
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until-10.$in_fmt z50c.until-10.$out_fmt || die "ERROR decoding FLAC file $desc"
483
$CMP 50c.until40.$in_fmt z50c.until-10.$in_fmt || die "ERROR: file mismatch for --until=-10 (encode) $desc"
360
484
rm -f z50c.until-10.$out_fmt z50c.until-10.$in_fmt
363
487
echo -n "testing --until=-mm:ss (encode) $desc... "
364
488
run_flac $eopt --until=-0:01 -o z50c.until-0:01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
365
run_flac $dopt -o z50c.until-0:01.$in_fmt z50c.until-0:01.$out_fmt || die "ERROR decoding FLAC file $desc"
366
cmp 50c.until40.$in_fmt z50c.until-0:01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (encode) $desc"
489
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until-0:01.$in_fmt z50c.until-0:01.$out_fmt || die "ERROR decoding FLAC file $desc"
490
$CMP 50c.until40.$in_fmt z50c.until-0:01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (encode) $desc"
367
491
rm -f z50c.until-0:01.$out_fmt z50c.until-0:01.$in_fmt
370
494
echo -n "testing --until=-mm:ss.sss (encode) $desc... "
371
495
run_flac $eopt --until=-0:01.1001 -o z50c.until-0:01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
372
run_flac $dopt -o z50c.until-0:01.1001.$in_fmt z50c.until-0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc"
373
cmp 50c.until39.$in_fmt z50c.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (encode) $desc"
496
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until-0:01.1001.$in_fmt z50c.until-0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc"
497
$CMP 50c.until39.$in_fmt z50c.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (encode) $desc"
374
498
rm -f z50c.until-0:01.1001.$out_fmt z50c.until-0:01.1001.$in_fmt
378
502
# test --until when decoding
381
run_flac $eopt -o z50c.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
505
if [ $in_fmt != $out_fmt ] ; then run_flac $eopt -o z50c.$out_fmt 50c.$in_fmt ; else cp -f 50c.$in_fmt z50c.$out_fmt ; fi || die "ERROR generating FLAC file $desc"
383
507
echo -n "testing --until=# (decode) $desc... "
384
508
run_flac $dopt --until=40 -o z50c.until40.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
385
cmp 50c.until40.$in_fmt z50c.until40.$in_fmt || die "ERROR: file mismatch for --until=40 (decode) $desc"
509
$CMP 50c.until40.$in_fmt z50c.until40.$in_fmt || die "ERROR: file mismatch for --until=40 (decode) $desc"
386
510
rm -f z50c.until40.$in_fmt
389
513
echo -n "testing --until=mm:ss (decode) $desc... "
390
514
run_flac $dopt --until=0:04 -o z50c.until0:04.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
391
cmp 50c.until40.$in_fmt z50c.until0:04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (decode) $desc"
515
$CMP 50c.until40.$in_fmt z50c.until0:04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (decode) $desc"
392
516
rm -f z50c.until0:04.$in_fmt
395
519
echo -n "testing --until=mm:ss.sss (decode) $desc... "
396
520
run_flac $dopt --until=0:03.9001 -o z50c.until0:03.9001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
397
cmp 50c.until39.$in_fmt z50c.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (decode) $desc"
521
$CMP 50c.until39.$in_fmt z50c.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (decode) $desc"
398
522
rm -f z50c.until0:03.9001.$in_fmt
401
525
echo -n "testing --until=-# (decode) $desc... "
402
526
run_flac $dopt --until=-10 -o z50c.until-10.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
403
cmp 50c.until40.$in_fmt z50c.until-10.$in_fmt || die "ERROR: file mismatch for --until=-10 (decode) $desc"
527
$CMP 50c.until40.$in_fmt z50c.until-10.$in_fmt || die "ERROR: file mismatch for --until=-10 (decode) $desc"
404
528
rm -f z50c.until-10.$in_fmt
407
531
echo -n "testing --until=-mm:ss (decode) $desc... "
408
532
run_flac $dopt --until=-0:01 -o z50c.until-0:01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
409
cmp 50c.until40.$in_fmt z50c.until-0:01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (decode) $desc"
533
$CMP 50c.until40.$in_fmt z50c.until-0:01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (decode) $desc"
410
534
rm -f z50c.until-0:01.$in_fmt
413
537
echo -n "testing --until=-mm:ss.sss (decode) $desc... "
414
538
run_flac $dopt --until=-0:01.1001 -o z50c.until-0:01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
415
cmp 50c.until39.$in_fmt z50c.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (decode) $desc"
539
$CMP 50c.until39.$in_fmt z50c.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (decode) $desc"
416
540
rm -f z50c.until-0:01.1001.$in_fmt
425
549
echo -n "testing --skip=10 --until=# (encode) $desc... "
426
550
run_flac $eopt --skip=10 --until=40 -o z50c.skip10.until40.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
427
run_flac $dopt -o z50c.skip10.until40.$in_fmt z50c.skip10.until40.$out_fmt || die "ERROR decoding FLAC file $desc"
428
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until40.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=40 (encode) $desc"
551
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until40.$in_fmt z50c.skip10.until40.$out_fmt || die "ERROR decoding FLAC file $desc"
552
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until40.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=40 (encode) $desc"
429
553
rm -f z50c.skip10.until40.$out_fmt z50c.skip10.until40.$in_fmt
432
556
echo -n "testing --skip=10 --until=mm:ss (encode) $desc... "
433
557
run_flac $eopt --skip=10 --until=0:04 -o z50c.skip10.until0:04.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
434
run_flac $dopt -o z50c.skip10.until0:04.$in_fmt z50c.skip10.until0:04.$out_fmt || die "ERROR decoding FLAC file $desc"
435
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until0:04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (encode) $desc"
558
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until0:04.$in_fmt z50c.skip10.until0:04.$out_fmt || die "ERROR decoding FLAC file $desc"
559
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until0:04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (encode) $desc"
436
560
rm -f z50c.skip10.until0:04.$out_fmt z50c.skip10.until0:04.$in_fmt
439
563
echo -n "testing --skip=10 --until=mm:ss.sss (encode) $desc... "
440
564
run_flac $eopt --skip=10 --until=0:03.9001 -o z50c.skip10.until0:03.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
441
run_flac $dopt -o z50c.skip10.until0:03.9001.$in_fmt z50c.skip10.until0:03.9001.$out_fmt || die "ERROR decoding FLAC file $desc"
442
cmp 50c.skip10.until39.$in_fmt z50c.skip10.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (encode) $desc"
565
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until0:03.9001.$in_fmt z50c.skip10.until0:03.9001.$out_fmt || die "ERROR decoding FLAC file $desc"
566
$CMP 50c.skip10.until39.$in_fmt z50c.skip10.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (encode) $desc"
443
567
rm -f z50c.skip10.until0:03.9001.$out_fmt z50c.skip10.until0:03.9001.$in_fmt
446
570
echo -n "testing --skip=10 --until=+# (encode) $desc... "
447
571
run_flac $eopt --skip=10 --until=+30 -o z50c.skip10.until+30.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
448
run_flac $dopt -o z50c.skip10.until+30.$in_fmt z50c.skip10.until+30.$out_fmt || die "ERROR decoding FLAC file $desc"
449
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until+30.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+30 (encode) $desc"
572
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until+30.$in_fmt z50c.skip10.until+30.$out_fmt || die "ERROR decoding FLAC file $desc"
573
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until+30.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+30 (encode) $desc"
450
574
rm -f z50c.skip10.until+30.$out_fmt z50c.skip10.until+30.$in_fmt
453
577
echo -n "testing --skip=10 --until=+mm:ss (encode) $desc... "
454
578
run_flac $eopt --skip=10 --until=+0:03 -o z50c.skip10.until+0:03.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
455
run_flac $dopt -o z50c.skip10.until+0:03.$in_fmt z50c.skip10.until+0:03.$out_fmt || die "ERROR decoding FLAC file $desc"
456
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until+0:03.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:03 (encode) $desc"
579
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until+0:03.$in_fmt z50c.skip10.until+0:03.$out_fmt || die "ERROR decoding FLAC file $desc"
580
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until+0:03.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:03 (encode) $desc"
457
581
rm -f z50c.skip10.until+0:03.$out_fmt z50c.skip10.until+0:03.$in_fmt
460
584
echo -n "testing --skip=10 --until=+mm:ss.sss (encode) $desc... "
461
585
run_flac $eopt --skip=10 --until=+0:02.9001 -o z50c.skip10.until+0:02.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
462
run_flac $dopt -o z50c.skip10.until+0:02.9001.$in_fmt z50c.skip10.until+0:02.9001.$out_fmt || die "ERROR decoding FLAC file $desc"
463
cmp 50c.skip10.until39.$in_fmt z50c.skip10.until+0:02.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:02.9001 (encode) $desc"
586
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until+0:02.9001.$in_fmt z50c.skip10.until+0:02.9001.$out_fmt || die "ERROR decoding FLAC file $desc"
587
$CMP 50c.skip10.until39.$in_fmt z50c.skip10.until+0:02.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:02.9001 (encode) $desc"
464
588
rm -f z50c.skip10.until+0:02.9001.$out_fmt z50c.skip10.until+0:02.9001.$in_fmt
467
591
echo -n "testing --skip=10 --until=-# (encode) $desc... "
468
592
run_flac $eopt --skip=10 --until=-10 -o z50c.skip10.until-10.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
469
run_flac $dopt -o z50c.skip10.until-10.$in_fmt z50c.skip10.until-10.$out_fmt || die "ERROR decoding FLAC file $desc"
470
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until-10.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-10 (encode) $desc"
593
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until-10.$in_fmt z50c.skip10.until-10.$out_fmt || die "ERROR decoding FLAC file $desc"
594
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-10.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-10 (encode) $desc"
471
595
rm -f z50c.skip10.until-10.$out_fmt z50c.skip10.until-10.$in_fmt
474
598
echo -n "testing --skip=10 --until=-mm:ss (encode) $desc... "
475
599
run_flac $eopt --skip=10 --until=-0:01 -o z50c.skip10.until-0:01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
476
run_flac $dopt -o z50c.skip10.until-0:01.$in_fmt z50c.skip10.until-0:01.$out_fmt || die "ERROR decoding FLAC file $desc"
477
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until-0:01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (encode) $desc"
600
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until-0:01.$in_fmt z50c.skip10.until-0:01.$out_fmt || die "ERROR decoding FLAC file $desc"
601
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-0:01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (encode) $desc"
478
602
rm -f z50c.skip10.until-0:01.$out_fmt z50c.skip10.until-0:01.$in_fmt
481
605
echo -n "testing --skip=10 --until=-mm:ss.sss (encode) $desc... "
482
606
run_flac $eopt --skip=10 --until=-0:01.1001 -o z50c.skip10.until-0:01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
483
run_flac $dopt -o z50c.skip10.until-0:01.1001.$in_fmt z50c.skip10.until-0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc"
484
cmp 50c.skip10.until39.$in_fmt z50c.skip10.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (encode) $desc"
607
[ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until-0:01.1001.$in_fmt z50c.skip10.until-0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc"
608
$CMP 50c.skip10.until39.$in_fmt z50c.skip10.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (encode) $desc"
485
609
rm -f z50c.skip10.until-0:01.1001.$out_fmt z50c.skip10.until-0:01.1001.$in_fmt
489
613
# test --skip and --until when decoding
492
run_flac $eopt -o z50c.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc"
616
if [ $in_fmt != $out_fmt ] ; then run_flac $eopt -o z50c.$out_fmt 50c.$in_fmt ; else cp -f 50c.$in_fmt z50c.$out_fmt ; fi || die "ERROR generating FLAC file $desc"
494
619
echo -n "testing --skip=10 --until=# (decode) $desc... "
495
620
run_flac $dopt --skip=10 --until=40 -o z50c.skip10.until40.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
496
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until40.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=40 (decode) $desc"
621
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until40.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=40 (decode) $desc"
497
622
rm -f z50c.skip10.until40.$in_fmt
500
625
echo -n "testing --skip=10 --until=mm:ss (decode) $desc... "
501
626
run_flac $dopt --skip=10 --until=0:04 -o z50c.skip10.until0:04.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
502
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until0:04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (decode) $desc"
627
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until0:04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (decode) $desc"
503
628
rm -f z50c.skip10.until0:04.$in_fmt
506
631
echo -n "testing --skip=10 --until=mm:ss.sss (decode) $desc... "
507
632
run_flac $dopt --skip=10 --until=0:03.9001 -o z50c.skip10.until0:03.9001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
508
cmp 50c.skip10.until39.$in_fmt z50c.skip10.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (decode) $desc"
633
$CMP 50c.skip10.until39.$in_fmt z50c.skip10.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (decode) $desc"
509
634
rm -f z50c.skip10.until0:03.9001.$in_fmt
512
637
echo -n "testing --skip=10 --until=-# (decode) $desc... "
513
638
run_flac $dopt --skip=10 --until=-10 -o z50c.skip10.until-10.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
514
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until-10.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-10 (decode) $desc"
639
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-10.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-10 (decode) $desc"
515
640
rm -f z50c.skip10.until-10.$in_fmt
518
643
echo -n "testing --skip=10 --until=-mm:ss (decode) $desc... "
519
644
run_flac $dopt --skip=10 --until=-0:01 -o z50c.skip10.until-0:01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
520
cmp 50c.skip10.until40.$in_fmt z50c.skip10.until-0:01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (decode) $desc"
645
$CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-0:01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (decode) $desc"
521
646
rm -f z50c.skip10.until-0:01.$in_fmt
524
649
echo -n "testing --skip=10 --until=-mm:ss.sss (decode) $desc... "
525
650
run_flac $dopt --skip=10 --until=-0:01.1001 -o z50c.skip10.until-0:01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc"
526
cmp 50c.skip10.until39.$in_fmt z50c.skip10.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (decode) $desc"
651
$CMP 50c.skip10.until39.$in_fmt z50c.skip10.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (decode) $desc"
527
652
rm -f z50c.skip10.until-0:01.1001.$in_fmt
646
781
# TRACK 04, INDEX 01 : 0:04.00 -> sample 40
648
783
echo -n "testing --cue=- $desc... "
649
run_flac $dopt -o z50c.cue.$in_fmt --cue=- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
650
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=- $desc"
651
rm -f z50c.cue.$in_fmt
784
run_flac $dopt -o z50c.cued.$in_fmt --cue=- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
785
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=- $desc"
786
rm -f z50c.cued.$in_fmt
654
789
echo -n "testing --cue=1.0 $desc... "
655
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
656
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.0 $desc"
657
rm -f z50c.cue.$in_fmt
790
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
791
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.0 $desc"
792
rm -f z50c.cued.$in_fmt
660
795
echo -n "testing --cue=1.0- $desc... "
661
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.0- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
662
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.0- $desc"
663
rm -f z50c.cue.$in_fmt
796
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.0- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
797
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.0- $desc"
798
rm -f z50c.cued.$in_fmt
666
801
echo -n "testing --cue=1.1 $desc... "
667
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
668
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.1 $desc"
669
rm -f z50c.cue.$in_fmt
802
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
803
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.1 $desc"
804
rm -f z50c.cued.$in_fmt
672
807
echo -n "testing --cue=1.1- $desc... "
673
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.1- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
674
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.1- $desc"
675
rm -f z50c.cue.$in_fmt
808
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.1- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
809
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.1- $desc"
810
rm -f z50c.cued.$in_fmt
678
813
echo -n "testing --cue=1.2 $desc... "
679
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.2 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
680
cmp 50c.skip10.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.2 $desc"
681
rm -f z50c.cue.$in_fmt
814
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.2 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
815
$CMP 50c.skip10.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.2 $desc"
816
rm -f z50c.cued.$in_fmt
684
819
echo -n "testing --cue=1.2- $desc... "
685
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.2- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
686
cmp 50c.skip10.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.2- $desc"
687
rm -f z50c.cue.$in_fmt
820
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.2- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
821
$CMP 50c.skip10.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.2- $desc"
822
rm -f z50c.cued.$in_fmt
690
825
echo -n "testing --cue=1.4 $desc... "
691
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.4 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
692
cmp 50c.skip20.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.4 $desc"
693
rm -f z50c.cue.$in_fmt
826
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.4 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
827
$CMP 50c.skip20.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.4 $desc"
828
rm -f z50c.cued.$in_fmt
696
831
echo -n "testing --cue=1.4- $desc... "
697
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.4- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
698
cmp 50c.skip20.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.4- $desc"
699
rm -f z50c.cue.$in_fmt
832
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.4- z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
833
$CMP 50c.skip20.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.4- $desc"
834
rm -f z50c.cued.$in_fmt
702
837
echo -n "testing --cue=-5.0 $desc... "
703
run_flac $dopt -o z50c.cue.$in_fmt --cue=-5.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
704
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=-5.0 $desc"
705
rm -f z50c.cue.$in_fmt
838
run_flac $dopt -o z50c.cued.$in_fmt --cue=-5.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
839
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=-5.0 $desc"
840
rm -f z50c.cued.$in_fmt
708
843
echo -n "testing --cue=-4.1 $desc... "
709
run_flac $dopt -o z50c.cue.$in_fmt --cue=-4.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
710
cmp 50c.until40.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=-4.1 $desc"
711
rm -f z50c.cue.$in_fmt
844
run_flac $dopt -o z50c.cued.$in_fmt --cue=-4.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
845
$CMP 50c.until40.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=-4.1 $desc"
846
rm -f z50c.cued.$in_fmt
714
849
echo -n "testing --cue=-3.1 $desc... "
715
run_flac $dopt -o z50c.cue.$in_fmt --cue=-3.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
716
cmp 50c.until40.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=-3.1 $desc"
717
rm -f z50c.cue.$in_fmt
850
run_flac $dopt -o z50c.cued.$in_fmt --cue=-3.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
851
$CMP 50c.until40.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=-3.1 $desc"
852
rm -f z50c.cued.$in_fmt
720
855
echo -n "testing --cue=-1.4 $desc... "
721
run_flac $dopt -o z50c.cue.$in_fmt --cue=-1.4 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
722
cmp 50c.until30.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=-1.4 $desc"
723
rm -f z50c.cue.$in_fmt
856
run_flac $dopt -o z50c.cued.$in_fmt --cue=-1.4 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
857
$CMP 50c.until30.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=-1.4 $desc"
858
rm -f z50c.cued.$in_fmt
726
861
echo -n "testing --cue=1.0-5.0 $desc... "
727
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.0-5.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
728
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.0-5.0 $desc"
729
rm -f z50c.cue.$in_fmt
862
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.0-5.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
863
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.0-5.0 $desc"
864
rm -f z50c.cued.$in_fmt
732
867
echo -n "testing --cue=1.1-5.0 $desc... "
733
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.1-5.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
734
cmp 50c.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.1-5.0 $desc"
735
rm -f z50c.cue.$in_fmt
868
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.1-5.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
869
$CMP 50c.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.1-5.0 $desc"
870
rm -f z50c.cued.$in_fmt
738
873
echo -n "testing --cue=1.2-4.1 $desc... "
739
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.2-4.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
740
cmp 50c.skip10.until40.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.2-4.1 $desc"
741
rm -f z50c.cue.$in_fmt
874
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.2-4.1 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
875
$CMP 50c.skip10.until40.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.2-4.1 $desc"
876
rm -f z50c.cued.$in_fmt
744
879
echo -n "testing --cue=1.4-2.0 $desc... "
745
run_flac $dopt -o z50c.cue.$in_fmt --cue=1.4-2.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
746
cmp 50c.skip20.until30.$in_fmt z50c.cue.$in_fmt || die "ERROR: file mismatch for --cue=1.4-2.0 $desc"
747
rm -f z50c.cue.$in_fmt
880
run_flac $dopt -o z50c.cued.$in_fmt --cue=1.4-2.0 z50c.cue.$out_fmt || die "ERROR decoding FLAC file $desc"
881
$CMP 50c.skip20.until30.$in_fmt z50c.cued.$in_fmt || die "ERROR: file mismatch for --cue=1.4-2.0 $desc"
882
rm -f z50c.cued.$in_fmt
750
885
rm -f z50c.cue.$out_fmt
822
965
############################################################################
824
967
echo "Generating multiple input files from noise..."
825
run_flac --verify --force --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=16 --channels=2 noise.raw || die "ERROR generating FLAC file"
826
run_flac --decode --force --silent noise.flac || die "ERROR generating WAVE file"
828
mv noise.wav file0.wav
829
cp file0.wav file1.wav
830
cp file1.wav file2.wav
968
multifile_format_decode="--endian=big --sign=signed"
969
multifile_format_encode="$multifile_format_decode --sample-rate=44100 --bps=16 --channels=2 --no-padding"
970
short_noise_cdda_samples=`expr $total_noise_cdda_samples / 8`
971
run_flac --verify --force $SILENT --force-raw-format $multifile_format_encode --until=$short_noise_cdda_samples -o shortnoise.flac noise.raw || die "ERROR generating FLAC file"
972
run_flac --decode --force $SILENT shortnoise.flac -o shortnoise.raw --force-raw-format $multifile_format_decode || die "ERROR generating RAW file"
973
run_flac --decode --force $SILENT shortnoise.flac || die "ERROR generating WAVE file"
974
run_flac --decode --force $SILENT shortnoise.flac -o shortnoise.aiff || die "ERROR generating AIFF file"
975
cp shortnoise.flac file0.flac
976
cp shortnoise.flac file1.flac
977
cp shortnoise.flac file2.flac
978
rm -f shortnoise.flac
979
cp shortnoise.wav file0.wav
980
cp shortnoise.wav file1.wav
981
cp shortnoise.wav file2.wav
983
cp shortnoise.aiff file0.aiff
984
cp shortnoise.aiff file1.aiff
985
cp shortnoise.aiff file2.aiff
986
rm -f shortnoise.aiff
987
cp shortnoise.raw file0.raw
988
cp shortnoise.raw file1.raw
989
cp shortnoise.raw file2.raw
991
# create authoritative sector-aligned files for comparison
992
file0_samples=`expr \( $short_noise_cdda_samples / 588 \) \* 588`
993
file0_remainder=`expr $short_noise_cdda_samples - $file0_samples`
994
file1_samples=`expr \( \( $file0_remainder + $short_noise_cdda_samples \) / 588 \) \* 588`
995
file1_remainder=`expr $file0_remainder + $short_noise_cdda_samples - $file1_samples`
996
file1_samples=`expr $file1_samples - $file0_remainder`
997
file2_samples=`expr \( \( $file1_remainder + $short_noise_cdda_samples \) / 588 \) \* 588`
998
file2_remainder=`expr $file1_remainder + $short_noise_cdda_samples - $file2_samples`
999
file2_samples=`expr $file2_samples - $file1_remainder`
1000
if [ $file2_remainder != '0' ] ; then
1001
file2_samples=`expr $file2_samples + $file2_remainder`
1002
file2_remainder=`expr 588 - $file2_remainder`
1005
dd if=file0.raw ibs=4 count=$file0_samples of=file0s.raw 2>/dev/null || $dddie
1006
dd if=file0.raw ibs=4 count=$file0_remainder of=file1s.raw skip=$file0_samples 2>/dev/null || $dddie
1007
dd if=file1.raw ibs=4 count=$file1_samples of=z.raw 2>/dev/null || $dddie
1008
cat z.raw >> file1s.raw || die "ERROR: cat-ing sector-aligned files"
1009
dd if=file1.raw ibs=4 count=$file1_remainder of=file2s.raw skip=$file1_samples 2>/dev/null || $dddie
1010
dd if=file2.raw ibs=4 count=$file2_samples of=z.raw 2>/dev/null || $dddie
1011
cat z.raw >> file2s.raw || die "ERROR: cat-ing sector-aligned files"
1012
dd if=/dev/zero ibs=4 count=$file2_remainder of=z.raw 2>/dev/null || $dddie
1013
cat z.raw >> file2s.raw || die "ERROR: cat-ing sector-aligned files"
1016
convert_to_wav file0s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
1017
convert_to_wav file1s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
1018
convert_to_wav file2s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
1020
convert_to_aiff file0s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
1021
convert_to_aiff file1s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
1022
convert_to_aiff file2s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
832
1024
test_multifile ()
1031
extra_encode_options=""
1032
extra_decode_options=""
1033
if [ $input_type = "raw" ] ; then
1034
extra_encode_options="--force-raw-format $multifile_format_encode"
1035
extra_decode_options="--force-raw-format $multifile_format_decode"
1037
if [ $input_type = "aiff" ] ; then
1038
extra_decode_options="--force-aiff-format"
838
1042
if [ $streamtype = ogg ] ; then
846
1050
encode_options="$encode_options --sector-align"
849
run_flac --force $encode_options file0.wav file1.wav file2.wav || die "ERROR"
1053
if [ $input_type = flac ] || [ $input_type = ogg ] ; then
850
1059
for n in 0 1 2 ; do
851
mv file$n.$suffix file${n}x.$suffix
1060
cp file$n.$input_type file${n}x.$input_type
853
run_flac --force --decode file0x.$suffix file1x.$suffix file2x.$suffix || die "ERROR"
1062
run_flac --force $encode_options $extra_encode_options file0x.$input_type file1x.$input_type file2x.$input_type || die "ERROR"
1063
run_flac --force --decode $extra_decode_options file0x.$suffix file1x.$suffix file2x.$suffix || die "ERROR"
854
1064
if [ $sector_align != sector_align ] ; then
855
1065
for n in 0 1 2 ; do
856
cmp file$n.wav file${n}x.wav || die "ERROR: file mismatch on file #$n"
1066
$CMP file$n.$input_type file${n}x.$input_type || die "ERROR: file mismatch on file #$n"
1070
$CMP file${n}s.$input_type file${n}x.$input_type || die "ERROR: file mismatch on file #$n"
859
1073
for n in 0 1 2 ; do
860
rm -f file${n}x.$suffix file${n}x.wav
1074
rm -f file${n}x.$suffix file${n}x.$input_type
864
echo "Testing multiple files without verify..."
865
test_multifile flac no_sector_align ""
867
echo "Testing multiple files with verify..."
868
test_multifile flac no_sector_align "--verify"
870
echo "Testing multiple files with --sector-align, without verify..."
871
test_multifile flac sector_align ""
873
echo "Testing multiple files with --sector-align, with verify..."
874
test_multifile flac sector_align "--verify"
876
if [ $has_ogg = "yes" ] ; then
877
echo "Testing multiple files with --ogg, without verify..."
878
test_multifile ogg no_sector_align ""
880
echo "Testing multiple files with --ogg, with verify..."
881
test_multifile ogg no_sector_align "--verify"
883
echo "Testing multiple files with --ogg and --sector-align, without verify..."
884
test_multifile ogg sector_align ""
886
echo "Testing multiple files with --ogg and --sector-align, with verify..."
887
test_multifile sector_align ogg "--verify"
889
echo "Testing multiple files with --ogg and --serial-number, with verify..."
890
test_multifile ogg no_sector_align "--serial-number=321 --verify"
1078
input_types="raw wav aiff flac"
1079
#@@@ doesn't work yet because md5cmp doesn't work because metaflac doesn't work on ogg flac yet
1080
#@@@if [ $has_ogg = yes ] ; then
1081
#@@@ input_types="$input_types ogg"
1083
for input_type in $input_types ; do
1084
echo "Testing multiple $input_type files without verify..."
1085
test_multifile $input_type flac no_sector_align ""
1087
echo "Testing multiple $input_type files with verify..."
1088
test_multifile $input_type flac no_sector_align "--verify"
1090
if [ $input_type != flac ] && [ $input_type != ogg ] ; then # --sector-align not supported for FLAC input
1091
echo "Testing multiple $input_type files with --sector-align, without verify..."
1092
test_multifile $input_type flac sector_align ""
1094
echo "Testing multiple $input_type files with --sector-align, with verify..."
1095
test_multifile $input_type flac sector_align "--verify"
1098
if [ $has_ogg = yes ] ; then
1099
echo "Testing multiple $input_type files with --ogg, without verify..."
1100
test_multifile $input_type ogg no_sector_align ""
1102
echo "Testing multiple $input_type files with --ogg, with verify..."
1103
test_multifile $input_type ogg no_sector_align "--verify"
1105
if [ $input_type != flac ] ; then # --sector-align not supported for FLAC input
1106
echo "Testing multiple $input_type files with --ogg and --sector-align, without verify..."
1107
test_multifile $input_type ogg sector_align ""
1109
echo "Testing multiple $input_type files with --ogg and --sector-align, with verify..."
1110
test_multifile $input_type ogg sector_align "--verify"
1113
echo "Testing multiple $input_type files with --ogg and --serial-number, with verify..."
1114
test_multifile $input_type ogg no_sector_align "--serial-number=321 --verify"
1119
############################################################################
1120
# test the metadata-handling properties of flac-to-flac encoding
1121
############################################################################
1123
echo "Testing the metadata-handling properties of flac-to-flac encoding..."
1125
testdir="flac-to-flac-metadata-test-files"
1128
# minor danger, changing vendor strings might change the length of the
1129
# VORBIS_COMMENT block, but if we add "^ length: " to the patterns,
1130
# we lose info about PADDING size that we need
1131
grep -Ev '^ vendor string: |^ m..imum .....size: ' | sed -e 's/, stream_offset.*//'
1138
expect="$case-expect.meta"
1140
run_flac $SILENT -f -o out.flac $args $file || die "ERROR encoding FLAC file"
1141
run_metaflac --list out.flac | filter > out.meta || die "ERROR listing metadata of output FLAC file"
1142
diff -q -w $expect out.meta 2>/dev/null || die "ERROR: metadata does not match expected $expect"
1146
#filter=', stream_offset.*|^ vendor string: |^ length: |^ m..imum .....size: '
1147
cd $testdir || die "ERROR changing to directory $testdir"
1149
# case 00a: no alterations on a file with all metadata types, keep all metadata, in same order
1150
flac2flac input-SCVAUP.flac case00a ""
1151
# case 01a: on file with multiple PADDING blocks, they should be aggregated into one at the end
1152
flac2flac input-SCVPAP.flac case01a ""
1153
# case 01b: on file with multiple PADDING blocks and --no-padding specified, they should all be deleted
1154
flac2flac input-SCVPAP.flac case01b "--no-padding"
1155
# case 01c: on file with multiple PADDING blocks and -P specified, they should all be overwritten with -P value
1156
flac2flac input-SCVPAP.flac case01c "-P 1234"
1157
# case 01d: on file with no PADDING blocks, use -P setting
1158
flac2flac input-SCVA.flac case01d "-P 1234"
1159
# case 01e: on file with no PADDING blocks and no -P given, use default padding
1160
flac2flac input-SCVA.flac case01e ""
1161
# case 02a: on file with no VORBIS_COMMENT block, add new VORBIS_COMMENT
1162
flac2flac input-SCPAP.flac case02a ""
1163
# case 02b: on file with no VORBIS_COMMENT block and --tag, add new VORBIS_COMMENT with tags
1164
flac2flac input-SCPAP.flac case02b "--tag=artist=0"
1165
# case 02c: on file with VORBIS_COMMENT block and --tag, replace existing VORBIS_COMMENT with new tags
1166
flac2flac input-SCVAUP.flac case02c "$TOTALLY_SILENT --tag=artist=0"
1167
# case 03a: on file with no CUESHEET block and --cuesheet specified, add it
1168
flac2flac input-SVAUP.flac case03a "--cuesheet=input0.cue"
1169
# case 03b: on file with CUESHEET block and --cuesheet specified, overwrite existing CUESHEET
1170
flac2flac input-SCVAUP.flac case03b "$TOTALLY_SILENT --cuesheet=input0.cue"
1171
# case 03c: on file with CUESHEET block and size-changing option specified, drop existing CUESHEET
1172
flac2flac input-SCVAUP.flac case03c "$TOTALLY_SILENT --skip=1"
1173
# case 04a: on file with no SEEKTABLE block and --no-seektable specified, no SEEKTABLE
1174
flac2flac input-VA.flac case04a "--no-padding --no-seektable"
1175
# case 04b: on file with no SEEKTABLE block and -S specified, new SEEKTABLE
1176
flac2flac input-VA.flac case04b "--no-padding -S 5x"
1177
# case 04c: on file with no SEEKTABLE block and no seektable options specified, new SEEKTABLE with default points
1178
flac2flac input-VA.flac case04c "--no-padding"
1179
# case 04d: on file with SEEKTABLE block and --no-seektable specified, drop existing SEEKTABLE
1180
flac2flac input-SCVA.flac case04d "--no-padding --no-seektable"
1181
# case 04e: on file with SEEKTABLE block and -S specified, overwrite existing SEEKTABLE
1182
flac2flac input-SCVA.flac case04e "$TOTALLY_SILENT --no-padding -S 5x"
1183
# case 04f: on file with SEEKTABLE block and size-changing option specified, drop existing SEEKTABLE, new SEEKTABLE with default points
1184
#(already covered by case03c)
1186
rm -f out.flac out.meta
1188
#@@@ when metaflac handles ogg flac, duplicate flac2flac tests here