diff --git a/sflphone-common/src/audio/pulseaudio/audiostream.cpp b/sflphone-common/src/audio/pulseaudio/audiostream.cpp index 87bc28a4572e1f85c8d4824190d26fd5e1079da6..f3a1f3bb0e20c8c3abcef3007d039a7b9e09712a 100644 --- a/sflphone-common/src/audio/pulseaudio/audiostream.cpp +++ b/sflphone-common/src/audio/pulseaudio/audiostream.cpp @@ -184,28 +184,37 @@ AudioStream::createStream (pa_context* c) // parameters are defined as number of bytes // 2048 bytes (1024 int16) is 20 ms at 44100 Hz if (_streamType == PLAYBACK_STREAM) { + /* + attributes->maxlength = (uint32_t) -1; + attributes->tlength = 1024; + attributes->prebuf = (uint32_t) -1; + attributes->minreq = (uint32_t) -1; + attributes->fragsize = (uint32_t) -1; + */ + attributes->maxlength = 88200; - attributes->tlength = 22050; - attributes->prebuf = 0; // Pulseaudio will not start if prebuffering is not reached - attributes->minreq = 0; // The server side playback framesize - attributes->fragsize = 11025; // Fragment size at wich we receive an interupt + attributes->tlength = 44100; + attributes->prebuf = 4096; + attributes->minreq = 2048; + attributes->fragsize = 4096; + // pa_stream_connect_playback( s , NULL , attributes, PA_STREAM_NOFLAGS, &_volume, NULL); // pa_stream_connect_playback (s , NULL , attributes, PA_STREAM_START_CORKED, &_volume, NULL); - pa_stream_connect_playback( s , NULL , attributes, PA_STREAM_INTERPOLATE_TIMING, &_volume, NULL); + pa_stream_connect_playback( s , NULL , attributes, PA_STREAM_ADJUST_LATENCY, &_volume, NULL); } else if (_streamType == CAPTURE_STREAM) { // attributes->maxlength = 66500; // attributes->fragsize = (uint32_t)-1; - attributes->maxlength = 88200; - attributes->tlength = 22050; - attributes->prebuf = 0; - attributes->minreq = 0; - attributes->fragsize = 11025; + attributes->maxlength = (uint32_t) -1; + attributes->tlength = (uint32_t) -1; + attributes->prebuf = (uint32_t) -1; + attributes->minreq = (uint32_t) -1; + attributes->fragsize = 1024; // pa_stream_connect_record (s , NULL , attributes , PA_STREAM_START_CORKED); // pa_stream_connect_record( s , NULL , attributes , PA_STREAM_INTERPOLATE_TIMING ); - pa_stream_connect_record( s, NULL, attributes, PA_STREAM_INTERPOLATE_TIMING); + pa_stream_connect_record( s, NULL, attributes, PA_STREAM_ADJUST_LATENCY); } else if (_streamType == UPLOAD_STREAM) { pa_stream_connect_upload (s , 1024); } else {