feat: add Opus 32k/48k/64k studio quality tiers
Adds three new codec IDs (Opus32k=6, Opus48k=7, Opus64k=8) and corresponding STUDIO_32K, STUDIO_48K, STUDIO_64K quality profiles. All use 20ms frames with minimal FEC (10%) for maximum quality on good networks. Updated across: wire protocol (codec_id.rs), encoder/decoder (opus_enc/dec.rs), adaptive codec switch (call.rs), CLI (--profile studio-64k), desktop engine + UI slider (8 quality levels from Studio 64k green to Codec2 1.2k red). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,9 @@ fn resolve_quality(quality: &str) -> Option<QualityProfile> {
|
||||
frame_duration_ms: 20,
|
||||
frames_per_block: 5,
|
||||
}),
|
||||
"studio-32k" => Some(QualityProfile::STUDIO_32K),
|
||||
"studio-48k" => Some(QualityProfile::STUDIO_48K),
|
||||
"studio-64k" => Some(QualityProfile::STUDIO_64K),
|
||||
_ => None, // "auto" or unknown
|
||||
}
|
||||
}
|
||||
@@ -279,6 +282,9 @@ impl CallEngine {
|
||||
let new_profile = match pkt.header.codec_id {
|
||||
CodecId::Opus24k => QualityProfile::GOOD,
|
||||
CodecId::Opus6k => QualityProfile::DEGRADED,
|
||||
CodecId::Opus32k => QualityProfile::STUDIO_32K,
|
||||
CodecId::Opus48k => QualityProfile::STUDIO_48K,
|
||||
CodecId::Opus64k => QualityProfile::STUDIO_64K,
|
||||
CodecId::Codec2_1200 => QualityProfile::CATASTROPHIC,
|
||||
CodecId::Codec2_3200 => QualityProfile {
|
||||
codec: CodecId::Codec2_3200,
|
||||
|
||||
Reference in New Issue
Block a user