[Bug 60530] New: winmm: waveOutGetVolume fails with MMSYSERR_INVALHANDLE when given a device ID (MTGO plays no sound)
http://bugs.winehq.org/show_bug.cgi?id=60530 Bug ID: 60530 Summary: winmm: waveOutGetVolume fails with MMSYSERR_INVALHANDLE when given a device ID (MTGO plays no sound) Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: mfplat Assignee: wine-bugs@list.winehq.org Reporter: silinarii@gmail.com Target Milestone: --- Distribution: --- dlls/resampledmo/resampler.c implements IWMResamplerProps::SetHalfFilterLength as a stub that returns E_NOTIMPL. On Windows the call succeeds (it sets the resampling quality, 1-60). NAudio's MediaFoundationResampler, the standard way to convert audio formats in NAudio, the most widely used .NET audio library, calls SetHalfFilterLength right after SetInputType/SetOutputType when it creates the transform. .NET COM interop turns the E_NOTIMPL into a COMException on NAudio's playback thread, so no audio is ever passed through ProcessInput/ProcessOutput and that output stays silent. Impact: Magic: The Gathering Online converts every sound effect (16-bit stereo WAV to a 44.1 kHz float mono mixer) with MediaFoundationResampler, so it has no sound at all under Wine and Proton. This very likely affects every .NET application that resamples with NAudio, and any native application that treats the failure as fatal. Trace (WINEDEBUG=trace+dmo,fixme+dmo) for each sound: trace:dmo:transform_SetInputType ... trace:dmo:transform_SetOutputType ... trace:dmo:unknown_QueryInterface ... iid {e7e9984f-f09f-4da4-903f-6e2e0efe56b5} (IWMResamplerProps) fixme:dmo:resampler_props_SetHalfFilterLength iface ..., count 60 stub! followed by no ProcessInput/ProcessOutput calls on that transform. Expected: SetHalfFilterLength accepts the value (returning S_OK). The FFmpeg-based resampler can choose its own filter, so ignoring the hint is enough for these applications; with that change MTGO's sound works. IWMResamplerProps::SetUserChannelMtx is the same kind of stub and may cause similar failures. Note: this was found while debugging MTGO with the help of an AI assistant. No code is attached; the description above is the whole report. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60530 silinarii@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|winmm: waveOutGetVolume |resampledmo: |fails with |IWMResamplerProps::SetHalfF |MMSYSERR_INVALHANDLE when |ilterLength returns |given a device ID (MTGO |E_NOTIMPL, NAudio's |plays no sound) |MediaFoundationResampler | |throws and drops all audio | |(MTGO has no sound) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla