[Bug 10495] Wine should support PulseAudio

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Jan 18 19:27:25 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=10495

--- Comment #312 from Raymond <superquad.vortex2 at gmail.com> 2011-01-18 19:27:17 CST ---
(In reply to comment #310)

> 
> > If pulseaudio take up the role of Kmixer in linux , winepulse should provide
> > hardware secondary buffers like the Kmixer in windows
> ...
> > why onboard HDA cannot use Full Acceleration (i.e. hardware secondary buffers)
> > with winepulse
> 
> winepulse CANNOT provide hardware acceleration in any way because pulse is a
> software-only mixer that locks out all applications from direct hardware access
> (as well as dmix).


DSCAPS_CONTINUOUSRATE   The device supports all sample rates between the
dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically,
this means that the actual output rate will be within +/- 10 hertz (Hz) of the
requested frequency.

DSCAPS_SECONDARY16BIT     The device supports hardware-mixed secondary sound
buffers with 16-bit samples.
DSCAPS_SECONDARY8BIT     The device supports hardware-mixed secondary buffers
with 8-bit samples.
DSCAPS_SECONDARYMONO     The device supports hardware-mixed monophonic
secondary buffers.
DSCAPS_SECONDARYSTEREO     The device supports hardware-mixed stereo secondary
buffers

this mean winealsa.drv is incorrect to use those flags when it disable the
alsa-lib resampling 

    *flags = DSCAPS_CERTIFIED | DSCAPS_CONTINUOUSRATE;
    *flags |= DSCAPS_SECONDARYMONO | DSCAPS_SECONDARYSTEREO;
    *flags |= DSCAPS_SECONDARY8BIT | DSCAPS_SECONDARY16BIT;

since only wineoss.drv with ossv4 have hardware mixing buffers which define
PCM_CAP_MULT  

#define DSP_CAP_MULTI        PCM_CAP_MULTI



#ifdef DSP_CAP_MULTI    /* not every oss has this */
        /* check for hardware secondary buffer support (multi open) */
        if ((arg & DSP_CAP_MULTI) &&
            (ossdev->out_caps.dwSupport & WAVECAPS_DIRECTSOUND)) {
            TRACE("hardware secondary buffer support available\n");

            ossdev->ds_caps.dwMaxHwMixingAllBuffers = 16;
            ossdev->ds_caps.dwMaxHwMixingStaticBuffers = 0;
            ossdev->ds_caps.dwMaxHwMixingStreamingBuffers = 16;

            ossdev->ds_caps.dwFreeHwMixingAllBuffers = 16;
            ossdev->ds_caps.dwFreeHwMixingStaticBuffers = 0;
            ossdev->ds_caps.dwFreeHwMixingStreamingBuffers = 16;
        }
#endif

This is equivalent to those 16 or more playback subdevices in alsa

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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.



More information about the wine-bugs mailing list