Since this DLL is far away from my comprehension I'm first sending this to wine-devel.
Current code [1] suggest that only WAVE_FORMAT_PCM is supported so do not allow the function to succeed if the destination format is not PCM.
Fixes bug https://bugs.winehq.org/show_bug.cgi?id=14193
[1] 858 if (!(adfs->fdwSuggest & ACM_FORMATSUGGESTF_WFORMATTAG)) { 859 if (adfs->pwfxSrc->wFormatTag != WAVE_FORMAT_PCM) { 860 WARN("not possible\n"); 861 return ACMERR_NOTPOSSIBLE; 862 } 863 adfs->pwfxDst->wFormatTag = adfs->pwfxSrc->wFormatTag; 864 }
On Mon, Sep 07, 2015 at 11:33:09AM +0800, Bruno Jesus wrote:
Since this DLL is far away from my comprehension I'm first sending this to wine-devel.
Seems reasonable to me. I would accept this patch, but tests wouldn't hurt.
A related but different issue, there's another way to describe a PCM format, using WAVE_FORMAT_EXTENSIBLE and SubFormat == KDATAFORMAT_SUBTYPE_PCM. This is synonymous with WAVE_FORMAT_PCM. I don't know whether msacm allows for this synonym, or if any application uses it.
I wouldn't block your patch based on this, but if you're writing tests anyway, it's another thing you could test for and improve.
Andrew