SupportedStreamConfig(Range) API inconsistencies - can we have a `SupportedStreamConfig.try_with_fixed_buffer_size`?
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- rust
- 领域
- api, audio-video-rtc
调研方向
Start by reading the definitions and conversion methods for SupportedStreamConfigRange, SupportedStreamConfig, and StreamConfig, then check issue #401 for context on the default buffer size behavior. The proposed starting point is a try_with_fixed_buffer_size method on SupportedStreamConfig; determine how it should interact with the existing buffer size range and configuration conversions. Done means the API lets callers narrow the buffer size and the documentation accurately describes the available methods.
由索引模型根据 Issue 内容生成。
描述
The SupportedStreamConfigRange, SuportedStreamConfig and StreamConfig types make configuring streams in cpal far more complicated and unpleasant than it would need to be.
SupportedStreamConfigRange- range of sampling rates and buffer sizesSupportedStreamConfig- fixed sampling rate, range of buffer sizesStreamConfig- fixed sampling rate, fixed or 'default' buffer size
I'm not sure why there's even a need for SupportedStreamConfig, but the main point why I opened this issue is that the naively expected chain of Iterator<SupportedStreamConfigRange> -> SupportedStreamConfigRange -> SupportedStreamConfig -> StreamConfig is incomplete.
- I get the iterator, and filter it to get one or more candidates.
- Then on those, I call
try_with_sample_rateto get aSupportedStreamConfig. This is where the first problem is: bad documentation:/// Retrieve a [SupportedStreamConfig] with the given sample rate and buffer size.The signature of the method is(self, sample_rate: SampleRate), no buffer size I could specify. - Getting a
SupportedStreamConfig, I'd then like to narrow down the buffer size, as at least on Linux, most devices return with a buffer size range of between 1 and MAXINT32 or so. However, there is no method for doing this. As mentioned in #401, theconfigmethod on this type just returns aStreamConfigwith aDefaultbuffersize setting.
So in the end, I'm still hand-assembling a StreamConfig.
I guess the first step would be to have a try_with_fixed_buffer_size method on SupportedStreamConfig. Then, if there's no good reason for it, it might be meaningful to roll SupportedStreamConfigRange and SupportedStreamConfig into a single type?
- 主要语言
- Rust
- 星标
- 4k
- 派生
- 554
- 平均合并
- 3 天 3 小时
- 30 天内合并 PR
- 4
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
RustAudio/cpal 的其他 Issue
-
aaudio: dynamic buffer tuning never grows the buffer (set_buffer_size_in_frames reports Err on success)可能已有人在做 @dannyward630 于 3 天前认领。 未关闭host - aaudio platform - android
难度 2/5 1-3 小时 新手友好度 79/100
维护者通常 1 天内回复
-
WebAudio wasm build fails with wasm-bindgen panic=unwind closures可能已有人在做 @bogusyogi 于 12 天前认领。 未关闭host - webaudio platform - web
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
code quality dependencies host - wasapi platform - windows
难度 5/5 一周以上 新手友好度 35/100
维护者通常 1 天内回复
-
host - pipewire platform - linux
难度 4/5 1-2 天 新手友好度 52/100
维护者通常 1 天内回复
-
WASAPI: default-device activation fails with RPC_E_CHANGED_MODE after endpoint-notification callbacks put thread-pool threads into an STA可能已有人在做 @dannyward630 于 4 天前认领。 未关闭correctness host - wasapi platform - windows
难度 4/5 3-5 天 新手友好度 20/100
维护者通常 1 天内回复
相似的 Issue
-
bug dependencies kind:fix priority: P3 ready-for-agent
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 2 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
swc-project/swc-next#1165 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 73/100
Alive24/shea-symphony#574 ·
-
难度 1/5 1 小时以内 新手友好度 84/100
维护者通常 1 天内回复