projects
/
nihav.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core/soundcvt: fix some cases where resampler skipped its work
[nihav.git]
/
nihav-core
/
src
/
soundcvt
/
resample.rs
diff --git
a/nihav-core/src/soundcvt/resample.rs
b/nihav-core/src/soundcvt/resample.rs
index 9c612f9d6cd4b11fb4d1049fd2f6e4fae7cd517a..dc2f1789e5f16ee4fcdae6ce795883672ae5971a 100644
(file)
--- a/
nihav-core/src/soundcvt/resample.rs
+++ b/
nihav-core/src/soundcvt/resample.rs
@@
-262,9
+262,14
@@
impl NAResample {
let src_fmt = src_info.get_format();
let dst_fmt = self.dst_info.get_format();
let src_fmt = src_info.get_format();
let dst_fmt = self.dst_info.get_format();
- let no_conversion = src_fmt == dst_fmt;
+ let
mut
no_conversion = src_fmt == dst_fmt;
- if no_conversion && no_channel_needs {
+ // packed PCM needs to be processed
+ if no_conversion && matches!(src, NABufferType::AudioPacked(_)) && !src_fmt.is_packed() && ((src_fmt.bits % 8) == 0) {
+ no_conversion = false;
+ }
+
+ if no_conversion && no_channel_needs && !needs_resample {
return Ok(src.clone());
}
return Ok(src.clone());
}