Skip to content
Snippets Groups Projects
Commit 846f3814 authored by Alexandre Savard's avatar Alexandre Savard
Browse files

[#2333] Update playback audiostream parameters

parent 3d2a5409
No related branches found
No related tags found
No related merge requests found
......@@ -184,11 +184,11 @@ 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 = 32000;
attributes->tlength = 16000;
attributes->prebuf = 1024;
attributes->minreq = 512;
attributes->fragsize = (uint32_t) -1;
attributes->maxlength = 64000;
attributes->tlength = 32000;
attributes->prebuf = 4096; // Pulseaudio will not start if prebuffering is not reached
attributes->minreq = 2048; // The server side playback framesize
attributes->fragsize = 8192; // Fragment size at wich we receive an interupt
pa_stream_connect_playback( s , NULL , attributes, PA_STREAM_INTERPOLATE_TIMING, &_volume, NULL);
// pa_stream_connect_playback (s , NULL , attributes, PA_STREAM_START_CORKED, &_volume, NULL);
} else if (_streamType == CAPTURE_STREAM) {
......@@ -197,13 +197,14 @@ AudioStream::createStream (pa_context* c)
// attributes->fragsize = (uint32_t)-1;
attributes->maxlength = 32000;
attributes->tlength = 16000;
attributes->prebuf = 1024;
attributes->minreq = 512;
attributes->tlength = (uint32_t)-1;
attributes->prebuf = (uint32_t)-1;
attributes->minreq = (uint32_t)-1;
attributes->fragsize = (uint32_t)-1;
// 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, NULL, PA_STREAM_INTERPOLATE_TIMING );
} else if (_streamType == UPLOAD_STREAM) {
pa_stream_connect_upload (s , 1024);
} else {
......
......@@ -58,10 +58,11 @@ static void playback_underflow_callback (pa_stream* s, void* userdata UNUSED)
{
_debug ("PulseLayer::Buffer Underflow\n");
SFLDataFormat* out = (SFLDataFormat*) pa_xmalloc (framesPerBuffer*sizeof(SFLDataFormat));
bzero (out, framesPerBuffer*sizeof(SFLDataFormat));
// fill in audio buffer twice the prebuffering value to restart playback
SFLDataFormat* out = (SFLDataFormat*) pa_xmalloc (framesPerBuffer*sizeof(SFLDataFormat)*2);
bzero (out, framesPerBuffer*sizeof(SFLDataFormat)*2);
pa_stream_write (s, out, framesPerBuffer*sizeof(SFLDataFormat), NULL, 0, PA_SEEK_RELATIVE);
pa_stream_write (s, out, framesPerBuffer*sizeof(SFLDataFormat)*2, NULL, 0, PA_SEEK_RELATIVE);
pa_stream_trigger (s, NULL, NULL);
pa_xfree (out);
......@@ -561,6 +562,7 @@ void PulseLayer::writeToSpeaker (void)
}
}
_urgentRingBuffer.Discard(toGet);
pa_xfree (out);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment