[Bug 29585] wineoss.drv audio renderer not on par with others

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Feb 2 13:55:09 CST 2012


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

--- Comment #16 from Andrew Eikum <aeikum at codeweavers.com> 2012-02-02 13:55:09 CST ---
Well, after spending the better part of a day on this, I'm no further to
understanding why that call breaks the OSS device.

While it seems like this ought to be a read-only call (i.e. no modifications to
the device), diving into the OSS source reveals that it isn't:

static int
get_ospace (adev_p adev, dmap_p dmap, ioctl_arg arg)
{
...
  if (!(dmap->flags & DMAP_PREPARED))
    {
      setup_fragments (adev, dmap, OPEN_WRITE);
      prepare_output (adev, dmap);
    }
...

Notice setup_fragments() and prepare_output(), both of which make changes to
dmap's and adev's members.

I was also wrong in the last comment. The call order is: (open, engineinfo,
setfmt, channels, speed, [getospace,] getodelay, getospace, write), the one in
brackets is our problematic call. Looking through the source for GETODELAY, I
see no modifications to the device (there is a driver call in there that I
didn't investigate).

Going to see if I can figure out how to build OSS and get it to output stuff.

-- 
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