Summary: | [NEED]Try recover from snd_pcm_avail() -EPIPE | ||
---|---|---|---|
Product: | PulseAudio | Reporter: | IvanXie <cunshangzhishu> |
Component: | alsa | Assignee: | pulseaudio-bugs |
Status: | RESOLVED MOVED | QA Contact: | pulseaudio-bugs |
Severity: | normal | ||
Priority: | medium | CC: | lennart |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
IvanXie
2016-06-04 02:49:30 UTC
there are drivers which use compressed format which does not support rewind for those driver which have large FIFO, you may need to adjust pulseaudio rewind safeguard http://www.google.com/patents/US20100131783 Whenever the amount of stream data in the FIFO is less than 128 bytes (i.e., the threshold), the HDAC 15 will issue a bus mater cycle. As each frame is transported in an interval time of 20.83 micro second (μs) (=1/(48×103)), which is regarded as a “time unit of transportation,” the 128 bytes therefore can keep 32 frames (=128/4) of data for about 666 micro second (=32×20.83) without under run. https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa?id=4df443bbe682055a41e7c2248877dcc7682a69b8 #define DEFAULT_REWIND_SAFEGUARD_BYTES (256) /* 1.33ms @48kHz, should work for most hardware */ + http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_hw.c;hb=HEAD seem most EPIPE related to xrun Yes. Right. Most EPIPE related to xrun. That's why I want to add try_recover for this case. So, what is the conclusion of this issue? Is that proper to add try_recover? which alsa driver are you using ? you need to call pa_alsa_dump((PA_LOG_INFO, u->pcm_handle); when EPIPE to find out whether appl_ptr is behind hw_ptr do aplay also xrun when use hw device , pulseaudio period size and buffer size ? (In reply to IvanXie from comment #4) > Yes. Right. > Most EPIPE related to xrun. > That's why I want to add try_recover for this case. > So, what is the conclusion of this issue? > Is that proper to add try_recover? in theory , as pulseaudio set stop_threshold to boundary, pcm state won't change to xrun even when appl_ptr is behind hw_ptr -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/271. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.