Skip to content

Commit ec02a6f

Browse files
committed
Fix: support fish return wav data (data size is 0)
1 parent 679266c commit ec02a6f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/util.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ pub fn get_samples_f32(reader: &mut wav_io::reader::Reader) -> Result<Vec<f32>,
7676
let size = reader.read_u32().unwrap_or(0) as u64;
7777
// todo: check tag
7878
// println!("[info] tag={:?}::{}", chunk_tag, size);
79-
if size == 0 {
79+
if size == 0 && chunk_tag != "data" {
8080
continue;
8181
}
8282
// data?
@@ -87,7 +87,7 @@ pub fn get_samples_f32(reader: &mut wav_io::reader::Reader) -> Result<Vec<f32>,
8787
// read wav data
8888
let h = &reader.header.clone().unwrap();
8989

90-
let bytes_to_read = if size == 0xFFFFFFFF {
90+
let bytes_to_read = if size == 0xFFFFFFFF || size == 0 {
9191
let current_pos = reader.cur.position();
9292
let file_len = reader.cur.get_ref().len() as u64;
9393
file_len.saturating_sub(current_pos)
@@ -184,7 +184,7 @@ pub fn get_samples_i16(reader: &mut wav_io::reader::Reader) -> Result<Vec<i16>,
184184
let size = reader.read_u32().unwrap_or(0) as u64;
185185
// todo: check tag
186186
// println!("[info] tag={:?}::{}", chunk_tag, size);
187-
if size == 0 {
187+
if size == 0 && chunk_tag != "data" {
188188
continue;
189189
}
190190
// data?
@@ -195,7 +195,7 @@ pub fn get_samples_i16(reader: &mut wav_io::reader::Reader) -> Result<Vec<i16>,
195195
// read wav data
196196
let h = &reader.header.clone().unwrap();
197197

198-
let bytes_to_read = if size == 0xFFFFFFFF {
198+
let bytes_to_read = if size == 0xFFFFFFFF || size == 0 {
199199
let current_pos = reader.cur.position();
200200
let file_len = reader.cur.get_ref().len() as u64;
201201
file_len.saturating_sub(current_pos)

0 commit comments

Comments
 (0)