* Re: [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
[not found] ` <20070816.094636.-753684517.anders@netinsight.se>
@ 2007-09-11 16:08 ` Elimar Riesebieter
2007-09-17 15:20 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Elimar Riesebieter @ 2007-09-11 16:08 UTC (permalink / raw)
Cc: alsa-devel, Anders Boström, 438118
[-- Attachment #1.1: Type: text/plain, Size: 2811 bytes --]
forwarded 438118 alsa-devel@alsa-project.org
stop
Hi all,
can one please have a lokk at this? aplay -N isn't working for the
OP.
On Thu, 16 Aug 2007 the mental interface of
Anders Boström told:
> >>>>> "ER" == Elimar Riesebieter <riesebie@lxtec.de> writes:
>
> >> strace aplay -N :
> >>
> >> ...
> >> open("/usr/lib/alsa-lib/libasound_module_rate_speexrate.so", O_RDONLY) = -1 ENOENT (No such file or directory)
>
> ER> This file is provided by
> ER> libasound2-plugins: /usr/lib/alsa-lib/libasound_module_rate_speexrate.so
>
> ER> Please install libasound2-plugins and try again.
>
> Thanks for the suggestion.
>
> Unfortunately, it didn't solve my problem, no sound when non-blocking
> mode is used. New strace:
>
> strace aplay -N :
> ...
> open("/usr/lib/alsa-lib/libasound_module_rate_speexrate.so", O_RDONLY) = 5
> read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\22\0"..., 832) = 832
> fstat(5, {st_mode=S_IFREG|0644, st_size=20848, ...}) = 0
> mmap(NULL, 2116136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x2b9f792fe000
> mprotect(0x2b9f79302000, 2097152, PROT_NONE) = 0
> mmap(0x2b9f79502000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x4000) = 0x2b9f79502000
> close(5) = 0
> ioctl(4, 0xc2604110, 0x7fff3269dec0) = 0
> ioctl(4, 0xc2604110, 0x7fff3269dec0) = 0
> ioctl(4, 0xc2604110, 0x7fff3269de00) = 0
> ioctl(4, 0xc2604110, 0x7fff3269de00) = 0
> ioctl(4, 0xc2604110, 0x7fff3269ddd0) = 0
> ioctl(4, 0xc2604110, 0x7fff3269ddc0) = 0
> ioctl(4, 0xc2604111, 0x7fff3269ddc0) = 0
> ioctl(4, 0xc0884113, 0x7fff3269dd10) = 0
> ioctl(4, 0x80184132, 0x7fff3269dc70) = 0
> mmap(NULL, 49152, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x2b9f79503000
> ioctl(4, 0xc0884113, 0x624e88) = 0
> ioctl(4, 0x4140, 0) = 0
> ioctl(4, 0xc0884113, 0x624e88) = 0
> read(3, "\377eO\333\337\370\344}\335_\377\330^l\356\361`j\336_l"..., 1001) = 1001
> read(3, "n{u^\342zl~e~_[\365_y\362_\363\350\337n[\347nmi`\367y\344"..., 604) = 604
> ioctl(4, 0x4144, 0x2b9f785d8000) = -1 EAGAIN (Resource temporarily unavailable)
> close(3) = 0
> ioctl(4, 0x4143, 0x3) = 0
> munmap(0x2b9f79503000, 49152) = 0
> ioctl(4, 0x4112, 0) = 0
> close(4) = 0
> munmap(0x2b9f785d7000, 4096) = 0
> munmap(0x2b9f785d8000, 4096) = 0
> munmap(0x2b9f792fe000, 2116136) = 0
> exit_group(0) = ?
I have no idea, so forwarded to alsa-dev then.
THX in advance
Elimar
--
Experience is something you don't get until
just after you need it!
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-09-11 16:08 ` [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working Elimar Riesebieter
@ 2007-09-17 15:20 ` Takashi Iwai
2007-09-18 7:41 ` Bug#438118: [alsa-devel] " Anders Boström
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2007-09-17 15:20 UTC (permalink / raw)
To: Elimar Riesebieter; +Cc: alsa-devel, Anders Boström, 438118
At Tue, 11 Sep 2007 18:08:11 +0200,
Elimar Riesebieter wrote:
>
> forwarded 438118 alsa-devel@alsa-project.org
>
> stop
>
> Hi all,
>
> can one please have a lokk at this? aplay -N isn't working for the
> OP.
Cannot reproduce here. Could you _post_ more details?
thanks,
Takashi
> On Thu, 16 Aug 2007 the mental interface of
> Anders Boström told:
>
> > >>>>> "ER" == Elimar Riesebieter <riesebie@lxtec.de> writes:
> >
> > >> strace aplay -N :
> > >>
> > >> ...
> > >> open("/usr/lib/alsa-lib/libasound_module_rate_speexrate.so", O_RDONLY) = -1 ENOENT (No such file or directory)
> >
> > ER> This file is provided by
> > ER> libasound2-plugins: /usr/lib/alsa-lib/libasound_module_rate_speexrate.so
> >
> > ER> Please install libasound2-plugins and try again.
> >
> > Thanks for the suggestion.
> >
> > Unfortunately, it didn't solve my problem, no sound when non-blocking
> > mode is used. New strace:
> >
> > strace aplay -N :
> > ...
> > open("/usr/lib/alsa-lib/libasound_module_rate_speexrate.so", O_RDONLY) = 5
> > read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\22\0"..., 832) = 832
> > fstat(5, {st_mode=S_IFREG|0644, st_size=20848, ...}) = 0
> > mmap(NULL, 2116136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x2b9f792fe000
> > mprotect(0x2b9f79302000, 2097152, PROT_NONE) = 0
> > mmap(0x2b9f79502000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x4000) = 0x2b9f79502000
> > close(5) = 0
> > ioctl(4, 0xc2604110, 0x7fff3269dec0) = 0
> > ioctl(4, 0xc2604110, 0x7fff3269dec0) = 0
> > ioctl(4, 0xc2604110, 0x7fff3269de00) = 0
> > ioctl(4, 0xc2604110, 0x7fff3269de00) = 0
> > ioctl(4, 0xc2604110, 0x7fff3269ddd0) = 0
> > ioctl(4, 0xc2604110, 0x7fff3269ddc0) = 0
> > ioctl(4, 0xc2604111, 0x7fff3269ddc0) = 0
> > ioctl(4, 0xc0884113, 0x7fff3269dd10) = 0
> > ioctl(4, 0x80184132, 0x7fff3269dc70) = 0
> > mmap(NULL, 49152, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x2b9f79503000
> > ioctl(4, 0xc0884113, 0x624e88) = 0
> > ioctl(4, 0x4140, 0) = 0
> > ioctl(4, 0xc0884113, 0x624e88) = 0
> > read(3, "\377eO\333\337\370\344}\335_\377\330^l\356\361`j\336_l"..., 1001) = 1001
> > read(3, "n{u^\342zl~e~_[\365_y\362_\363\350\337n[\347nmi`\367y\344"..., 604) = 604
> > ioctl(4, 0x4144, 0x2b9f785d8000) = -1 EAGAIN (Resource temporarily unavailable)
> > close(3) = 0
> > ioctl(4, 0x4143, 0x3) = 0
> > munmap(0x2b9f79503000, 49152) = 0
> > ioctl(4, 0x4112, 0) = 0
> > close(4) = 0
> > munmap(0x2b9f785d7000, 4096) = 0
> > munmap(0x2b9f785d8000, 4096) = 0
> > munmap(0x2b9f792fe000, 2116136) = 0
> > exit_group(0) = ?
>
> I have no idea, so forwarded to alsa-dev then.
>
> THX in advance
>
> Elimar
>
>
> --
> Experience is something you don't get until
> just after you need it!
^ permalink raw reply [flat|nested] 9+ messages in thread
* Bug#438118: [alsa-devel] [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-09-17 15:20 ` Takashi Iwai
@ 2007-09-18 7:41 ` Anders Boström
2007-09-18 15:45 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Anders Boström @ 2007-09-18 7:41 UTC (permalink / raw)
To: tiwai; +Cc: riesebie, alsa-devel, 438118
[-- Attachment #1: Type: Text/Plain, Size: 3988 bytes --]
>>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
Hi!
>> Hi all,
>>
>> can one please have a lokk at this? aplay -N isn't working for the
>> OP.
TI> Cannot reproduce here. Could you _post_ more details?
OK, I've tested more, and discovered that the problem seems to be that
the end of the sound is cut in non-blocking mode. And if I play a very
short sound-file, I can't hear anything. Blocking mode works fine.
When using non-blocking mode, an strace contains "ioctl(4, 0x4144,
0x2b9f785d8000) = -1 EAGAIN (Resource temporarily
unavailable)". Blocking mode never contains the EAGAIN response.
I attach two files. When playing halt.au, I can only hear the start,
about as much as "ha". When playing metal.au, I can't hear anything.
System info:
ASUS A8V Deluxe motherboard with Athlon 64 3500+ CPU
VIA 8237 with ALC850 sound
Linux 2.6.22.2 kernel for amd64
Debian testing amd64 with:
alsa-utils 1.0.14-1
libasound2 1.0.14a-2
libc6 2.6.1-1
I hope this helps. Please ask if you need more info.
/ Anders
>> On Thu, 16 Aug 2007 the mental interface of
>> Anders Boström told:
>>
>> > >>>>> "ER" == Elimar Riesebieter <riesebie@lxtec.de> writes:
>> >
>> > >> strace aplay -N :
>> > >>
>> > >> ...
>> > >> open("/usr/lib/alsa-lib/libasound_module_rate_speexrate.so", O_RDONLY) = -1 ENOENT (No such file or directory)
>> >
>> > ER> This file is provided by
>> > ER> libasound2-plugins: /usr/lib/alsa-lib/libasound_module_rate_speexrate.so
>> >
>> > ER> Please install libasound2-plugins and try again.
>> >
>> > Thanks for the suggestion.
>> >
>> > Unfortunately, it didn't solve my problem, no sound when non-blocking
>> > mode is used. New strace:
>> >
>> > strace aplay -N :
>> > ...
>> > open("/usr/lib/alsa-lib/libasound_module_rate_speexrate.so", O_RDONLY) = 5
>> > read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\22\0"..., 832) = 832
>> > fstat(5, {st_mode=S_IFREG|0644, st_size=20848, ...}) = 0
>> > mmap(NULL, 2116136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x2b9f792fe000
>> > mprotect(0x2b9f79302000, 2097152, PROT_NONE) = 0
>> > mmap(0x2b9f79502000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x4000) = 0x2b9f79502000
>> > close(5) = 0
>> > ioctl(4, 0xc2604110, 0x7fff3269dec0) = 0
>> > ioctl(4, 0xc2604110, 0x7fff3269dec0) = 0
>> > ioctl(4, 0xc2604110, 0x7fff3269de00) = 0
>> > ioctl(4, 0xc2604110, 0x7fff3269de00) = 0
>> > ioctl(4, 0xc2604110, 0x7fff3269ddd0) = 0
>> > ioctl(4, 0xc2604110, 0x7fff3269ddc0) = 0
>> > ioctl(4, 0xc2604111, 0x7fff3269ddc0) = 0
>> > ioctl(4, 0xc0884113, 0x7fff3269dd10) = 0
>> > ioctl(4, 0x80184132, 0x7fff3269dc70) = 0
>> > mmap(NULL, 49152, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x2b9f79503000
>> > ioctl(4, 0xc0884113, 0x624e88) = 0
>> > ioctl(4, 0x4140, 0) = 0
>> > ioctl(4, 0xc0884113, 0x624e88) = 0
>> > read(3, "\377eO\333\337\370\344}\335_\377\330^l\356\361`j\336_l"..., 1001) = 1001
>> > read(3, "n{u^\342zl~e~_[\365_y\362_\363\350\337n[\347nmi`\367y\344"..., 604) = 604
>> > ioctl(4, 0x4144, 0x2b9f785d8000) = -1 EAGAIN (Resource temporarily unavailable)
>> > close(3) = 0
>> > ioctl(4, 0x4143, 0x3) = 0
>> > munmap(0x2b9f79503000, 49152) = 0
>> > ioctl(4, 0x4112, 0) = 0
>> > close(4) = 0
>> > munmap(0x2b9f785d7000, 4096) = 0
>> > munmap(0x2b9f785d8000, 4096) = 0
>> > munmap(0x2b9f792fe000, 2116136) = 0
>> > exit_group(0) = ?
>>
>> I have no idea, so forwarded to alsa-dev then.
>>
>> THX in advance
>>
>> Elimar
>>
>>
>> --
>> Experience is something you don't get until
>> just after you need it!
[-- Attachment #2: halt.au --]
[-- Type: Audio/Basic, Size: 4698 bytes --]
[-- Attachment #3: metal.au --]
[-- Type: Audio/Basic, Size: 1638 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-09-18 7:41 ` Bug#438118: [alsa-devel] " Anders Boström
@ 2007-09-18 15:45 ` Takashi Iwai
2007-09-27 12:16 ` Bug#438118: [alsa-devel] " Anders Boström
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2007-09-18 15:45 UTC (permalink / raw)
To: Anders Boström; +Cc: alsa-devel, 438118
At Tue, 18 Sep 2007 09:41:48 +0200 (CEST),
Anders Boström wrote:
>
> >>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
>
> Hi!
>
> >> Hi all,
> >>
> >> can one please have a lokk at this? aplay -N isn't working for the
> >> OP.
>
> TI> Cannot reproduce here. Could you _post_ more details?
>
> OK, I've tested more, and discovered that the problem seems to be that
> the end of the sound is cut in non-blocking mode. And if I play a very
> short sound-file, I can't hear anything. Blocking mode works fine.
>
> When using non-blocking mode, an strace contains "ioctl(4, 0x4144,
> 0x2b9f785d8000) = -1 EAGAIN (Resource temporarily
> unavailable)". Blocking mode never contains the EAGAIN response.
>
> I attach two files. When playing halt.au, I can only hear the start,
> about as much as "ha". When playing metal.au, I can't hear anything.
OK, thanks, I see the problem now.
I don't remember whether it's a feature or a bug. The drain ioctl
rejects the non-block mode.
Anyway, a simple patch is below. Let me know if it works.
Takashi
diff -r 0028e39ead78 core/pcm_native.c
--- a/core/pcm_native.c Tue Sep 18 00:52:38 2007 +0200
+++ b/core/pcm_native.c Tue Sep 18 17:44:31 2007 +0200
@@ -1368,8 +1368,6 @@ static int snd_pcm_prepare(struct snd_pc
static int snd_pcm_pre_drain_init(struct snd_pcm_substream *substream, int state)
{
- if (substream->f_flags & O_NONBLOCK)
- return -EAGAIN;
substream->runtime->trigger_master = substream;
return 0;
}
^ permalink raw reply [flat|nested] 9+ messages in thread
* Bug#438118: [alsa-devel] [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-09-18 15:45 ` Takashi Iwai
@ 2007-09-27 12:16 ` Anders Boström
2007-10-09 10:38 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Anders Boström @ 2007-09-27 12:16 UTC (permalink / raw)
To: tiwai; +Cc: riesebie, alsa-devel, 438118
>>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
TI> At Tue, 18 Sep 2007 09:41:48 +0200 (CEST),
TI> Anders Boström wrote:
>>
>> >>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
>>
>> >> can one please have a lokk at this? aplay -N isn't working for the
>> >> OP.
>>
TI> Cannot reproduce here. Could you _post_ more details?
>>
>> OK, I've tested more, and discovered that the problem seems to be that
>> the end of the sound is cut in non-blocking mode. And if I play a very
>> short sound-file, I can't hear anything. Blocking mode works fine.
>>
>> When using non-blocking mode, an strace contains "ioctl(4, 0x4144,
>> 0x2b9f785d8000) = -1 EAGAIN (Resource temporarily
>> unavailable)". Blocking mode never contains the EAGAIN response.
>>
>> I attach two files. When playing halt.au, I can only hear the start,
>> about as much as "ha". When playing metal.au, I can't hear anything.
TI> OK, thanks, I see the problem now.
TI> I don't remember whether it's a feature or a bug. The drain ioctl
TI> rejects the non-block mode.
I can understand the idea here, that in non-blocking mode, no call
should block, ever. But on the other hand, if you call the drain
ioctl, you probably expect it to work, even in non-blocking mode. Why
would you otherwise call it?
TI> Anyway, a simple patch is below. Let me know if it works.
It works fine! Thanks!
/ Anders
TI> diff -r 0028e39ead78 core/pcm_native.c
TI> --- a/core/pcm_native.c Tue Sep 18 00:52:38 2007 +0200
TI> +++ b/core/pcm_native.c Tue Sep 18 17:44:31 2007 +0200
TI> @@ -1368,8 +1368,6 @@ static int snd_pcm_prepare(struct snd_pc
TI> static int snd_pcm_pre_drain_init(struct snd_pcm_substream *substream, int state)
TI> {
TI> - if (substream->f_flags & O_NONBLOCK)
TI> - return -EAGAIN;
substream-> runtime->trigger_master = substream;
TI> return 0;
TI> }
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-09-27 12:16 ` Bug#438118: [alsa-devel] " Anders Boström
@ 2007-10-09 10:38 ` Takashi Iwai
2007-12-14 10:37 ` Anders Boström
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2007-10-09 10:38 UTC (permalink / raw)
To: Anders Boström; +Cc: alsa-devel, 438118
At Thu, 27 Sep 2007 14:16:29 +0200 (CEST),
Anders Boström wrote:
>
> >>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
>
> TI> At Tue, 18 Sep 2007 09:41:48 +0200 (CEST),
> TI> Anders Boström wrote:
> >>
> >> >>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
> >>
> >> >> can one please have a lokk at this? aplay -N isn't working for the
> >> >> OP.
> >>
> TI> Cannot reproduce here. Could you _post_ more details?
> >>
> >> OK, I've tested more, and discovered that the problem seems to be that
> >> the end of the sound is cut in non-blocking mode. And if I play a very
> >> short sound-file, I can't hear anything. Blocking mode works fine.
> >>
> >> When using non-blocking mode, an strace contains "ioctl(4, 0x4144,
> >> 0x2b9f785d8000) = -1 EAGAIN (Resource temporarily
> >> unavailable)". Blocking mode never contains the EAGAIN response.
> >>
> >> I attach two files. When playing halt.au, I can only hear the start,
> >> about as much as "ha". When playing metal.au, I can't hear anything.
>
> TI> OK, thanks, I see the problem now.
>
> TI> I don't remember whether it's a feature or a bug. The drain ioctl
> TI> rejects the non-block mode.
>
> I can understand the idea here, that in non-blocking mode, no call
> should block, ever. But on the other hand, if you call the drain
> ioctl, you probably expect it to work, even in non-blocking mode. Why
> would you otherwise call it?
Yes, that's my opinion, too. This particular ioctl is to block the
operation, so it should be allowed as long as it's called.
But I vaguely remember that we discussed about it, and the current
form is the result of that. Namely, we can call
snd_pcm_nonblock(FALSE) explicitly before calling snd_pcm_drain().
Though, I prefer fixing the behavior in the core side to allow the
blocking with this call... Any reasonable objections in mind?
Takashi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-10-09 10:38 ` Takashi Iwai
@ 2007-12-14 10:37 ` Anders Boström
2007-12-14 10:53 ` Jaroslav Kysela
0 siblings, 1 reply; 9+ messages in thread
From: Anders Boström @ 2007-12-14 10:37 UTC (permalink / raw)
To: tiwai; +Cc: alsa-devel, 438118
>>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
TI> OK, thanks, I see the problem now.
>>
TI> I don't remember whether it's a feature or a bug. The drain ioctl
TI> rejects the non-block mode.
>>
>> I can understand the idea here, that in non-blocking mode, no call
>> should block, ever. But on the other hand, if you call the drain
>> ioctl, you probably expect it to work, even in non-blocking mode. Why
>> would you otherwise call it?
TI> Yes, that's my opinion, too. This particular ioctl is to block the
TI> operation, so it should be allowed as long as it's called.
TI> But I vaguely remember that we discussed about it, and the current
TI> form is the result of that. Namely, we can call
TI> snd_pcm_nonblock(FALSE) explicitly before calling snd_pcm_drain().
TI> Though, I prefer fixing the behavior in the core side to allow the
TI> blocking with this call... Any reasonable objections in mind?
Any progress in including a solotion to this bug in mainstream
alsa & linux kernel? Has anything been done? The patch works fine for
me...
/ Anders
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-12-14 10:37 ` Anders Boström
@ 2007-12-14 10:53 ` Jaroslav Kysela
2007-12-14 12:41 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Jaroslav Kysela @ 2007-12-14 10:53 UTC (permalink / raw)
To: Anders Boström; +Cc: Takashi Iwai, ALSA development, 438118
[-- Attachment #1: Type: TEXT/PLAIN, Size: 1577 bytes --]
On Fri, 14 Dec 2007, Anders Boström wrote:
> >>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
>
> TI> OK, thanks, I see the problem now.
> >>
> TI> I don't remember whether it's a feature or a bug. The drain ioctl
> TI> rejects the non-block mode.
> >>
> >> I can understand the idea here, that in non-blocking mode, no call
> >> should block, ever. But on the other hand, if you call the drain
> >> ioctl, you probably expect it to work, even in non-blocking mode. Why
> >> would you otherwise call it?
>
> TI> Yes, that's my opinion, too. This particular ioctl is to block the
> TI> operation, so it should be allowed as long as it's called.
>
> TI> But I vaguely remember that we discussed about it, and the current
> TI> form is the result of that. Namely, we can call
> TI> snd_pcm_nonblock(FALSE) explicitly before calling snd_pcm_drain().
>
> TI> Though, I prefer fixing the behavior in the core side to allow the
> TI> blocking with this call... Any reasonable objections in mind?
>
> Any progress in including a solotion to this bug in mainstream
> alsa & linux kernel? Has anything been done? The patch works fine for
> me...
I think that this proposal breaks basic posix rules. Application should
change blocking state itself. And non-blocking snd_pcm_drain() still makes
sense - it will return state of stream (-EAGAIN - unfinished) or reset PCM
state to SETUP in case when all data are played.
Jaroslav
-----
Jaroslav Kysela <perex@perex.cz>
Linux Kernel Sound Maintainer
ALSA Project
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working
2007-12-14 10:53 ` Jaroslav Kysela
@ 2007-12-14 12:41 ` Takashi Iwai
0 siblings, 0 replies; 9+ messages in thread
From: Takashi Iwai @ 2007-12-14 12:41 UTC (permalink / raw)
To: Jaroslav Kysela; +Cc: Anders Boström, ALSA development, 438118
At Fri, 14 Dec 2007 11:53:11 +0100 (CET),
Jaroslav Kysela wrote:
>
> On Fri, 14 Dec 2007, Anders Boström wrote:
>
> > >>>>> "TI" == Takashi Iwai <tiwai@suse.de> writes:
> >
> > TI> OK, thanks, I see the problem now.
> > >>
> > TI> I don't remember whether it's a feature or a bug. The drain ioctl
> > TI> rejects the non-block mode.
> > >>
> > >> I can understand the idea here, that in non-blocking mode, no call
> > >> should block, ever. But on the other hand, if you call the drain
> > >> ioctl, you probably expect it to work, even in non-blocking mode. Why
> > >> would you otherwise call it?
> >
> > TI> Yes, that's my opinion, too. This particular ioctl is to block the
> > TI> operation, so it should be allowed as long as it's called.
> >
> > TI> But I vaguely remember that we discussed about it, and the current
> > TI> form is the result of that. Namely, we can call
> > TI> snd_pcm_nonblock(FALSE) explicitly before calling snd_pcm_drain().
> >
> > TI> Though, I prefer fixing the behavior in the core side to allow the
> > TI> blocking with this call... Any reasonable objections in mind?
> >
> > Any progress in including a solotion to this bug in mainstream
> > alsa & linux kernel? Has anything been done? The patch works fine for
> > me...
>
> I think that this proposal breaks basic posix rules.
AFAIK, O_NONBLOCK doesn't define the behavior of each ioctl on POSIX
at all. Some standard POSIX-defined ioctls block even with O_NONBLOCK
indeed.
> Application should
> change blocking state itself. And non-blocking snd_pcm_drain() still makes
> sense - it will return state of stream (-EAGAIN - unfinished) or reset PCM
> state to SETUP in case when all data are played.
Well, this can be kept as is, but it's a bit weird (and silly)
behavior. Anyway, we'll need fix this bug in our own codes in
alsa-utils first :)
Takashi
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-12-14 13:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20070815.153103.-1470506910.anders@netinsight.se>
[not found] ` <20070815172821.GB7381@frodo.home.lxtec.de>
[not found] ` <20070816.094636.-753684517.anders@netinsight.se>
2007-09-11 16:08 ` [Pkg-alsa-devel] Bug#438118: alsa-utils: aplay non-blocking mode isn't working Elimar Riesebieter
2007-09-17 15:20 ` Takashi Iwai
2007-09-18 7:41 ` Bug#438118: [alsa-devel] " Anders Boström
2007-09-18 15:45 ` Takashi Iwai
2007-09-27 12:16 ` Bug#438118: [alsa-devel] " Anders Boström
2007-10-09 10:38 ` Takashi Iwai
2007-12-14 10:37 ` Anders Boström
2007-12-14 10:53 ` Jaroslav Kysela
2007-12-14 12:41 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox