Le 8 oct. 08 à 22:21, Dev Mazumdar a écrit :

> Hannu Savolainen wrote:
>> Stéphane Letz wrote:
>>> Ok. Now testing with O_EXCL and SNDCTL_DSP_COOKEDMODE works, bit  
>>> I see
>>> some strange of the device. The overruns/underrun detection code  
>>> based
>>> on SNDCTL_DSP_GETERROR does not see underrun anymore although the
>>> sound get weird with high CPU load (Writing another buffer in the  
>>> out
>>> device solve the "weird sound" problem...). The same overruns/ 
>>> underrun
>>> detection code was working when opening the /dev/dsp0 device (that
>>> uses vmix AFAIK)
>>>
>>> This occurs on OpenSolaris with internal HDAudio using published OSS
>>> 4.0. Are tey know problems with this card with OSS 4.0 ?
>>>
>> I don't think this is caused by problems with any particular card.
>> Underruns/overruns will happen if the CPU load gets too high (more  
>> than
>> 80-90%). In this situation the application is not able to process  
>> audio
>> data as fast as it should. It's often possible to decrease the  
>> problem
>> by using higher priority (see man sched_setscheduler).
>>
>> It is just necessary to write enough silent data to the output device
>> before starting the read/write loop. It is normal that the other
>> processes running in the computer occasionally delay the audio  
>> process
>> by few milliseconds. If there is not enough data in the playback  
>> buffer
>> then this delay will cause an underrun. In addition recorded data  
>> will
>> get accumulated in the recording device during the delay. This will
>> sooner or later cause recording overruns if the application doesn't
>> handle this properly. Simple read/write loop (without any
>> usleep/whatever calls) will recover from this situation  
>> automatically.
>>
>> Best regards,
>>
>> Hannu
>> _______________________________________________
>> oss-devel mailing list
>> oss-devel@mailman.opensound.com
>> http://mailman.opensound.com/mailman/listinfo/oss-devel
>>
>
> Hi,
>
> Have you tried to use the fulldup.c test program to see if this works
> http://mercurial.opensound.com/?file/2fed97c765ec/tutorials/sndkit/ 
> samples/fulldup.c

I'll try.
>
>
> If fulldup.c shows problems then there are issues with vmix.
>
> Have you tried disabling vmix to see if the native device behaves
> differently than the vmix device?

Underruns/overruns works when used with vmix device (/dev/dsp0), bit  
not when opening othesr (non vmix devices like /dev/dsp1) in OX_ECL  
and using  SNDCTL_DSP_COOKEDMODE.

Regards

Stephane Letz
_______________________________________________
oss-devel mailing list
oss-devel@mailman.opensound.com
http://mailman.opensound.com/mailman/listinfo/oss-devel

Reply via email to