Skip to content

fix(audio): align QsoRecorder format ladder with ClientPuduMonitor (add 44.1 kHz Int16 step) #3385

Description

@NF0T

Background

PR #3378 added a 44.1 kHz Int16 fallback step to ClientPuduMonitor::startPlayback()'s format negotiation ladder, extending it from:

24 kHz Int16 → 48 kHz Int16 → preferredFormat

to:

24 kHz Int16 → 48 kHz Int16 → 44.1 kHz Int16 → preferredFormat

This matches the ladder already used by CwSidetoneQAudioSink and handles Windows HFP/SCO routes and certain USB DACs that reject 48 kHz Int16 outright but accept 44.1 kHz.

Problem

The same ladder extension was not applied to QsoRecorder::startPlayback(). On a device that rejects 48 kHz Int16, monitor playback now finds 44.1 kHz and works, while QSO recording playback skips straight to preferredFormat (or fails). The two code paths are inconsistent and the user experience differs on the same device.

Fix

Apply the same 44.1 kHz Int16 step to QsoRecorder::startPlayback() in parity with ClientPuduMonitor. The ladder and fallback log strings should match.

Scope

  • src/core/QsoRecorder.cppstartPlayback() format negotiation only
  • No behavior change for devices that already accept 48 kHz Int16

Metadata

Metadata

Assignees

No one assigned

    Labels

    WindowsWindows-specific issueaudioAudio engine and streamingbugSomething isn't workingmaintainer-reviewRequires maintainer review before any action is taken

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions