Seeking SamplesBuffer to position 0 panics
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 74/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 冷清
- 技术栈
- rust
调研方向
panic 位于 src/buffer.rs 第 116 行附近,在 SamplesBuffer 的 seek 路径中,当目标位置为 0 时 new_pos - curr_channel 会发生下溢。请先阅读 try_seek 如何计算 new_pos 和 curr_channel,然后使用 issue 中的代码片段复现问题。完成的标准是:seek 到 Duration::from_secs(0) 不再 panic,并定位到正确声道的第一个采样,同时添加一个覆盖该情况的测试。
由索引模型根据 Issue 内容生成。
描述
When seeking rodio::buffer::SamplesBuffer to Duration::from_secs(0), a panic occurs:
use rodio::nz;
use rodio::buffer::SamplesBuffer;
use std::time::Duration;
let mut buffer = SamplesBuffer::new(nz!(2), nz!(44100), vec![0.0, 0.0, 0.0, 0.0, 0.0, 0.0]);
buffer.next();
buffer.try_seek(Duration::from_secs(0));
Error message:
[windows] thread 'main' (23364) panicked at C:\Users\User\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\rodio-0.22.2\src\buffer.rs:116:23:
[windows] attempt to subtract with overflow
The line where it happens:
// make sure the next sample is for the right channel
let new_pos = new_pos.next_multiple_of(self.channels().get() as usize);
let new_pos = new_pos - curr_channel;
It looks like curr_channel is being subtracted from new_pos, which in this case is equal to 0, causing an underflow.
- 主要语言
- Rust
- 星标
- 2.5k
- 派生
- 338
- 平均合并
- 1 天 3 小时
- 30 天内合并 PR
- 1
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
RustAudio/rodio 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 73/100
-
难度 3/5 1-2 天 新手友好度 62/100
-
WavDecoder::size_hint underflows (u32 wrap, ~4.29e9) after EOF, causes multi-GB Vec::collect() allocation可能已有人在做 @marin-m 于 5 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 72/100
-
难度 4/5 3-5 天 新手友好度 45/100
-
难度 4/5 3-5 天 新手友好度 35/100
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
dekobon/big-code-analysis#1729 ·
维护者通常 1 天内回复
-
bug help wanted
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
akitaonrails/ai-memory#1888 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
peteonrails/voxtype#941 ·
维护者通常 4 天内回复
-
bug priority:medium triage:maintainable
难度 2/5 1-3 小时 新手友好度 82/100
ccusage/ccusage#2000 · 3 条评论 ·
维护者通常 1 天内回复