fix: properly support packed samples

This commit is contained in:
xd009642
2021-08-23 16:29:32 +02:00
committed by GitHub
parent dde04820fb
commit 80941b1b7e
+14 -2
View File
@@ -149,7 +149,13 @@ impl Audio {
panic!("unsupported type");
}
unsafe { slice::from_raw_parts((*self.as_ptr()).data[index] as *const T, self.samples()) }
let len = if self.is_packed() {
self.samples() * self.channels() as usize
}
else {
self.samples()
};
unsafe { slice::from_raw_parts((*self.as_ptr()).data[index] as *const T, len) }
}
#[inline]
@@ -162,7 +168,13 @@ impl Audio {
panic!("unsupported type");
}
unsafe { slice::from_raw_parts_mut((*self.as_mut_ptr()).data[index] as *mut T, self.samples()) }
let len = if self.is_packed() {
self.samples() * self.channels() as usize
}
else {
self.samples()
};
unsafe { slice::from_raw_parts_mut((*self.as_mut_ptr()).data[index] as *mut T, len) }
}
#[inline]