Provide a small workarround to fix a bug in the pcm driver. The driver seems
need at least two write() calls for sound to be actually played. I have notified Cameron Grant <cg@FreeBSD.org> about the issue.
This commit is contained in:
parent
63caeafa47
commit
40e295b0f7
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=28724
44
audio/wsoundserver/files/patch-ae
Normal file
44
audio/wsoundserver/files/patch-ae
Normal file
@ -0,0 +1,44 @@
|
||||
--- wslib/audio_voxware.c.orig Fri Mar 31 23:14:40 2000
|
||||
+++ wslib/audio_voxware.c Wed May 24 11:08:24 2000
|
||||
@@ -403,6 +403,7 @@
|
||||
long blkFrames; /* number of frames in current audio block */
|
||||
int blockSize = 8192; /* Size of an audio block buffer in frames */
|
||||
int i;
|
||||
+ u_int8_t fakebuffer[2] = {0, 0};
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, " >> writing data\n");
|
||||
@@ -413,7 +414,11 @@
|
||||
SErrorCode = SERR_NOMEMORY;
|
||||
return -1;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ /* Following line is a simple workarround for buggy pcm driver, which seens need at least to write()
|
||||
+ calls for sound to be actually played */
|
||||
+ write(audiofd, fakebuffer, 2);
|
||||
+
|
||||
curFrame = 0;
|
||||
while (curFrame < afInfo->FrameCount) {
|
||||
if ((blkFrames = (afInfo->FrameCount - curFrame)) > blockSize) {
|
||||
@@ -503,6 +508,7 @@
|
||||
long blkFrames; /* number of frames in current audio block */
|
||||
int blockSize = 4096; /* Size of an audio block buffer in frames */
|
||||
int i;
|
||||
+ u_int16_t fakebuffer[2] = {0, 0};
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, " >> writing data\n");
|
||||
@@ -513,7 +519,11 @@
|
||||
SErrorCode = SERR_NOMEMORY;
|
||||
return -1;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ /* Following line is a simple workarround for buggy pcm driver, which seens need at least to write()
|
||||
+ calls for sound to be actually played */
|
||||
+ write(audiofd, fakebuffer, 4);
|
||||
+
|
||||
curFrame = 0;
|
||||
while (curFrame < afInfo->FrameCount) {
|
||||
if ((blkFrames = (afInfo->FrameCount - curFrame)) > blockSize) {
|
Loading…
Reference in New Issue
Block a user