* snd_pcm_poll_descriptors() error return @ 2018-10-01 21:23 Alan Horstmann 2018-10-01 23:32 ` Takashi Sakamoto 0 siblings, 1 reply; 4+ messages in thread From: Alan Horstmann @ 2018-10-01 21:23 UTC (permalink / raw) To: alsa-devel; +Cc: Takashi Iwai Hi, A user of the Portaudio library is reporting that from Alsa version 1.1.4 the function snd_pcm_poll_descriptors() can return -32 (Broken Pipe), and this fails an assert within Portaudio. Earlier 1.1.3 does not seem to show this issue. For more details, see https://app.assembla.com/spaces/portaudio/support/tickets/268. The Alsa docs don't mention any possible negative error code from this function - has the behaviour changed, or is it likely something else is triggering the difference? Regards Alan ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: snd_pcm_poll_descriptors() error return 2018-10-01 21:23 snd_pcm_poll_descriptors() error return Alan Horstmann @ 2018-10-01 23:32 ` Takashi Sakamoto 2018-10-02 15:38 ` Takashi Iwai 0 siblings, 1 reply; 4+ messages in thread From: Takashi Sakamoto @ 2018-10-01 23:32 UTC (permalink / raw) To: Alan Horstmann, alsa-devel; +Cc: Takashi Iwai Hi, On Oct 02 2018 06:23, Alan Horstmann wrote: > A user of the Portaudio library is reporting that from Alsa version 1.1.4 the > function snd_pcm_poll_descriptors() can return -32 (Broken Pipe), and this > fails an assert within Portaudio. Earlier 1.1.3 does not seem to show this > issue. For more details, see > https://app.assembla.com/spaces/portaudio/support/tickets/268. > > The Alsa docs don't mention any possible negative error code from this > function - has the behaviour changed, or is it likely something else is > triggering the difference? Return values from a call of 'snd_pcm_poll_descriptors()' varies depending on implementation of PCM plugins for used PCM node. Therefore it's impossible to cover all of the values in documentation. In a design of alsa-lib, 'snd_pcm_poll_descriptors()' is a thin wrapper of '.poll_descriptors' callback of internal/external structure of PCM plugins, therefore its behaviour is dynamically different depending on each implementation. For example, when using 'hw' PCM node directly, a call of this function can returns '-ENOMEM' or '2': http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_hw.c;h=59a242009e9f5f1098759305499eaa27bef6c1ab;hb=HEAD#l227 When using 'dmix' PCM node, '-EIO', '0', '-EPIPE' and '1': http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_direct.c;h=2b07eff90ff6e12200e27a0d40378f29a7bf0d24;hb=HEAD#l668 When using PCM node with external PCM plugins such as 'pulse', 'snd_pcm_ioplug_create()' is called to instantiate plugin structure, and a call of 'snd_pcm_poll_descriptors()' can return '-EIO', '0', '1', and value depending on plugin implementation. http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_ioplug.c;h=881a1a85adaf09b4732375e2161b0a1ebb53900f;hb=HEAD#l772 When having good discussion to investigate cause, discover solution for this kind of issues, you need to identify which PCM node triggers the issue, at least. Regards Takashi Sakamoto ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: snd_pcm_poll_descriptors() error return 2018-10-01 23:32 ` Takashi Sakamoto @ 2018-10-02 15:38 ` Takashi Iwai 2018-10-02 20:28 ` Alan Horstmann 0 siblings, 1 reply; 4+ messages in thread From: Takashi Iwai @ 2018-10-02 15:38 UTC (permalink / raw) To: Takashi Sakamoto; +Cc: alsa-devel On Tue, 02 Oct 2018 01:32:10 +0200, Takashi Sakamoto wrote: > > Hi, > > On Oct 02 2018 06:23, Alan Horstmann wrote: > > A user of the Portaudio library is reporting that from Alsa version 1.1.4 the > > function snd_pcm_poll_descriptors() can return -32 (Broken Pipe), and this > > fails an assert within Portaudio. Earlier 1.1.3 does not seem to show this > > issue. For more details, see > > https://app.assembla.com/spaces/portaudio/support/tickets/268. > > > > The Alsa docs don't mention any possible negative error code from this > > function - has the behaviour changed, or is it likely something else is > > triggering the difference? > > Return values from a call of 'snd_pcm_poll_descriptors()' varies > depending on implementation of PCM plugins for used PCM node. Therefore > it's impossible to cover all of the values in documentation. > > In a design of alsa-lib, 'snd_pcm_poll_descriptors()' is a thin wrapper > of '.poll_descriptors' callback of internal/external structure of PCM > plugins, therefore its behaviour is dynamically different depending on > each implementation. > > For example, when using 'hw' PCM node directly, a call of this function > can returns '-ENOMEM' or '2': > http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_hw.c;h=59a242009e9f5f1098759305499eaa27bef6c1ab;hb=HEAD#l227 > > When using 'dmix' PCM node, '-EIO', '0', '-EPIPE' and '1': > http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_direct.c;h=2b07eff90ff6e12200e27a0d40378f29a7bf0d24;hb=HEAD#l668 > > When using PCM node with external PCM plugins such as 'pulse', > 'snd_pcm_ioplug_create()' is called to instantiate plugin structure, > and a call of 'snd_pcm_poll_descriptors()' can return '-EIO', '0', '1', > and value depending on plugin implementation. > http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_ioplug.c;h=881a1a85adaf09b4732375e2161b0a1ebb53900f;hb=HEAD#l772 > > When having good discussion to investigate cause, discover solution for > this kind of issues, you need to identify which PCM node triggers the > issue, at least. Yes, this function may return an error code, and it's the defined behavior from the beginning. So, please fix the error handling in the application side. thanks, Takashi ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: snd_pcm_poll_descriptors() error return 2018-10-02 15:38 ` Takashi Iwai @ 2018-10-02 20:28 ` Alan Horstmann 0 siblings, 0 replies; 4+ messages in thread From: Alan Horstmann @ 2018-10-02 20:28 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On Tuesday 02 October 2018 16:38, Takashi Iwai wrote: > On Tue, 02 Oct 2018 01:32:10 +0200, > > Takashi Sakamoto wrote: > > Hi, > > > > On Oct 02 2018 06:23, Alan Horstmann wrote: > > > A user of the Portaudio library is reporting that from Alsa version > > > 1.1.4 the function snd_pcm_poll_descriptors() can return -32 (Broken > > > Pipe), and this fails an assert within Portaudio. Earlier 1.1.3 does > > > not seem to show this issue. For more details, see > > > https://app.assembla.com/spaces/portaudio/support/tickets/268. > > > > > > The Alsa docs don't mention any possible negative error code from this > > > function - has the behaviour changed, or is it likely something else is > > > triggering the difference? > > > > Return values from a call of 'snd_pcm_poll_descriptors()' varies > > depending on implementation of PCM plugins for used PCM node. Therefore > > it's impossible to cover all of the values in documentation. > > > > In a design of alsa-lib, 'snd_pcm_poll_descriptors()' is a thin wrapper > > of '.poll_descriptors' callback of internal/external structure of PCM > > plugins, therefore its behaviour is dynamically different depending on > > each implementation. > > > > For example, when using 'hw' PCM node directly, a call of this function > > can returns '-ENOMEM' or '2': > > http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_hw.c;h=5 > >9a242009e9f5f1098759305499eaa27bef6c1ab;hb=HEAD#l227 > > > > When using 'dmix' PCM node, '-EIO', '0', '-EPIPE' and '1': > > http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_direct.c > >;h=2b07eff90ff6e12200e27a0d40378f29a7bf0d24;hb=HEAD#l668 > > > > When using PCM node with external PCM plugins such as 'pulse', > > 'snd_pcm_ioplug_create()' is called to instantiate plugin structure, > > and a call of 'snd_pcm_poll_descriptors()' can return '-EIO', '0', '1', > > and value depending on plugin implementation. > > http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_ioplug.c > >;h=881a1a85adaf09b4732375e2161b0a1ebb53900f;hb=HEAD#l772 > > > > When having good discussion to investigate cause, discover solution for > > this kind of issues, you need to identify which PCM node triggers the > > issue, at least. > > Yes, this function may return an error code, and it's the defined > behavior from the beginning. So, please fix the error handling in the > application side. OK, thanks for that info - so we will have to check the function return more carefully than at present! I appreciate the input from both of you on this. Regards Alan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-10-02 20:27 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-10-01 21:23 snd_pcm_poll_descriptors() error return Alan Horstmann 2018-10-01 23:32 ` Takashi Sakamoto 2018-10-02 15:38 ` Takashi Iwai 2018-10-02 20:28 ` Alan Horstmann
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.