Handling xruns in OSS (was re:whatever)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Takashi Iwai kirjoitti:
At Mon, 25 Jun 2007 10:06:18 +0100,
Alan Cox wrote:
If it is native ALSA driver then it will restart after each underrun
and overrun. It is the applications job to do this, alsa-lib provides
all support for this. I have no idea of OSS and OSS emulation in ALSA.
OSS should autorestart on underrun and just moan about overruns and drop
bits. So if it's not following that behaviour he is IMHO correct for the
OSS emulation case.

I think he is right in the case of read (although I don't remember his
post as my buffer overran).  The playback is automaically reset and
restarted at underrun.

But, the patch there is wrong.  It should handle -EPIPE, which means
XRUN, while -ESTRPIPE means the suspend state.
To be exact the OSS should not even stop the device when a xrun occurs. Instead it should keep playing silence until the application writes more output data and to discard the oldest recorded data when an overrun occurs. This is more effective than stopping and restarting the device.

Best regards,

Hannu
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux