mirror of
https://github.com/iluvcapra/bwavfile.git
synced 2025-12-31 08:50:44 +00:00
First commit
This commit is contained in:
BIN
tests/.DS_Store
vendored
Normal file
BIN
tests/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
tests/arch_audacity_media.zip
Normal file
BIN
tests/arch_audacity_media.zip
Normal file
Binary file not shown.
BIN
tests/arch_pt_media.zip
Normal file
BIN
tests/arch_pt_media.zip
Normal file
Binary file not shown.
48
tests/create_test_media.sh
Normal file
48
tests/create_test_media.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/bin/zsh
|
||||
|
||||
mkdir -p media
|
||||
cd media
|
||||
|
||||
# create a silent bext wave file with fixture metadata and a time refernce starting at
|
||||
# one minute
|
||||
#
|
||||
# Keywords for bext metadata are here...
|
||||
# https://github.com/FFmpeg/FFmpeg/blob/17a0dfebf55f67653c29a607545a799f12bc0c01/libavformat/wavenc.c#L110
|
||||
#
|
||||
ffmpeg -y -f lavfi -i "aevalsrc=0|0:c=stereo" -to 0.1 -ar 48000 -c:a pcm_s24le -write_bext 1 \
|
||||
-metadata "description=FFMPEG-generated stereo WAV file with bext metadata" \
|
||||
-metadata "originator=ffmpeg" \
|
||||
-metadata "originator_reference=STEREO_WAVE_TEST" \
|
||||
-metadata "time_reference=2880000" \
|
||||
-metadata "origination_date=2020-11-18" \
|
||||
-metadata "origination_time=12:00:00" \
|
||||
-metadata "umid=0xFF00FF00FF00FF00FF00FF00FF00FF00" \
|
||||
-metadata "coding_history=A:PCM,48K" ff_bwav_stereo.wav
|
||||
|
||||
ffmpeg -y -f lavfi -i "aevalsrc=0|0|0|0|0|0:c=5.1" -to 0.1 -ar 48000 -c:a pcm_s24le -write_bext 1 \
|
||||
-metadata "description=FFMPEG-generated 5.1 WAV file with bext metadata" \
|
||||
-metadata "originator=ffmpeg" \
|
||||
-metadata "originator_reference=5_1_WAVE_TEST" \
|
||||
-metadata "time_reference=0" \
|
||||
-metadata "origination_date=2020-11-18" \
|
||||
-metadata "origination_time=13:00:00" \
|
||||
-metadata "umid=0xFF00FF00FF00FF00FF00FF00FF00FF01" \
|
||||
-metadata "coding_history=A:PCM,48K" ff_bwav_51.wav
|
||||
|
||||
ffmpeg -y -f lavfi -i "aevalsrc=0" -to 1 -ar 44100 ff_silence.wav
|
||||
|
||||
ffmpeg -y -f lavfi -i "aevalsrc=0" -to 1 -ar 44100 -fflags bitexact ff_minimal.wav
|
||||
|
||||
# ffmpeg -y -f lavfi -i "aevalsrc=0|0|0|0|0|0:c=5.1" -to 0:45:00 -ar 96000 -c:a pcm_s24le -rf64 1 \
|
||||
# -write_bext 1 \
|
||||
# -metadata "description=rf64 test file" ff_longfile.wav
|
||||
|
||||
ffmpeg -y -f lavfi -i "anoisesrc=r=48000:a=0.5:c=pink:s=41879" -to 0.1 -ar 48000 -c:a pcm_f32le \
|
||||
-write_bext 1 \
|
||||
-metadata "description=float test file" ff_float.wav
|
||||
|
||||
touch error.wav
|
||||
|
||||
unzip ../arch_pt_media.zip
|
||||
unzip ../arch_audacity_media.zip
|
||||
rm -rf __MACOSX
|
||||
77
tests/integration_test.rs
Normal file
77
tests/integration_test.rs
Normal file
@@ -0,0 +1,77 @@
|
||||
extern crate wavfile;
|
||||
|
||||
use wavfile::WaveReader;
|
||||
use wavfile::Error;
|
||||
|
||||
#[test]
|
||||
fn test_open() {
|
||||
let path = "tests/media/ff_silence.wav";
|
||||
|
||||
match WaveReader::open(path) {
|
||||
Ok(_) => {
|
||||
()
|
||||
},
|
||||
Err(x) => {
|
||||
assert!(false, "Opened error.wav with unexpected error {:?}", x)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_format_silence() -> Result<(),Error> {
|
||||
let path = "tests/media/ff_silence.wav";
|
||||
|
||||
let mut w = WaveReader::open(path)?;
|
||||
|
||||
let format = w.format()?;
|
||||
|
||||
assert_eq!(format.sample_rate, 44100);
|
||||
assert_eq!(format.channel_count, 1);
|
||||
assert_eq!(format.tag, 1);
|
||||
Ok( () )
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_format_error() {
|
||||
let path = "tests/media/error.wav";
|
||||
|
||||
if let Ok(_) = WaveReader::open(path) {
|
||||
assert!(false);
|
||||
} else {
|
||||
assert!(true);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_frame_count() -> Result<(),Error> {
|
||||
let path = "tests/media/ff_silence.wav";
|
||||
|
||||
let mut w = WaveReader::open(path)?;
|
||||
let l = w.frame_length()?;
|
||||
assert_eq!(l, 44100);
|
||||
|
||||
Ok( () )
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_minimal_wave() {
|
||||
let path = "tests/media/ff_silence.wav";
|
||||
|
||||
let mut w = WaveReader::open(path).expect("Failure opening file");
|
||||
|
||||
if let Err(Error::NotMinimalWaveFile) = w.validate_minimal() {
|
||||
assert!(true);
|
||||
} else {
|
||||
assert!(false);
|
||||
}
|
||||
|
||||
let min_path = "tests/media/ff_minimal.wav";
|
||||
|
||||
let mut w = WaveReader::open(min_path).expect("Failure opening file");
|
||||
|
||||
if let Err(Error::NotMinimalWaveFile) = w.validate_minimal() {
|
||||
assert!(false);
|
||||
} else {
|
||||
assert!(true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user