fix no audio issue with sample rate >= 48000 and strange crash issue
(there is some overflow in unsafe code, will test again)
This commit is contained in:
parent
5b2c1eea75
commit
7630713534
@ -105,6 +105,9 @@ pub fn get_cursor_data(hcursor: u64) -> ResultType<CursorData> {
|
|||||||
bm_mask.bmHeight / 2
|
bm_mask.bmHeight / 2
|
||||||
};
|
};
|
||||||
let cbits_size = width * height * 4;
|
let cbits_size = width * height * 4;
|
||||||
|
if cbits_size < 16 {
|
||||||
|
bail!("Invalid icon: too small"); // solve some crash
|
||||||
|
}
|
||||||
let mut cbits: Vec<u8> = Vec::new();
|
let mut cbits: Vec<u8> = Vec::new();
|
||||||
cbits.resize(cbits_size as _, 0);
|
cbits.resize(cbits_size as _, 0);
|
||||||
let mut mbits: Vec<u8> = Vec::new();
|
let mut mbits: Vec<u8> = Vec::new();
|
||||||
|
@ -198,6 +198,7 @@ mod cpal_impl {
|
|||||||
log::error!("an error occurred on stream: {}", err);
|
log::error!("an error occurred on stream: {}", err);
|
||||||
};
|
};
|
||||||
// Sample rate must be one of 8000, 12000, 16000, 24000, or 48000.
|
// Sample rate must be one of 8000, 12000, 16000, 24000, or 48000.
|
||||||
|
// Note: somehow 48000 not work
|
||||||
let sample_rate_0 = config.sample_rate().0;
|
let sample_rate_0 = config.sample_rate().0;
|
||||||
let sample_rate = if sample_rate_0 < 12000 {
|
let sample_rate = if sample_rate_0 < 12000 {
|
||||||
8000
|
8000
|
||||||
@ -205,10 +206,8 @@ mod cpal_impl {
|
|||||||
12000
|
12000
|
||||||
} else if sample_rate_0 < 24000 {
|
} else if sample_rate_0 < 24000 {
|
||||||
16000
|
16000
|
||||||
} else if sample_rate_0 < 48000 {
|
|
||||||
24000
|
|
||||||
} else {
|
} else {
|
||||||
48000
|
24000
|
||||||
};
|
};
|
||||||
let mut encoder = Encoder::new(
|
let mut encoder = Encoder::new(
|
||||||
sample_rate,
|
sample_rate,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user