pulse-server: use at least MIN_SAMPLES of samples per buffer

This commit is contained in:
Wim Taymans 2020-10-08 17:48:36 +02:00
parent d01586bfa5
commit fde36ac6c2
2 changed files with 5 additions and 0 deletions

View file

@ -42,6 +42,8 @@
#define MIN_BUFFERS 8u #define MIN_BUFFERS 8u
#define MAX_BUFFERS 64u #define MAX_BUFFERS 64u
#define MIN_SAMPLES 24u
#define MAXLENGTH (4*1024*1024) /* 4MB */ #define MAXLENGTH (4*1024*1024) /* 4MB */
#define DEFAULT_TLENGTH_MSEC 2000 /* 2s */ #define DEFAULT_TLENGTH_MSEC 2000 /* 2s */
#define DEFAULT_PROCESS_MSEC 20 /* 20ms */ #define DEFAULT_PROCESS_MSEC 20 /* 20ms */

View file

@ -905,6 +905,7 @@ static void fix_playback_buffer_attr(struct stream *s, struct buffer_attr *attr)
m -= m % frame_size; m -= m % frame_size;
attr->minreq = SPA_MIN(process, m); attr->minreq = SPA_MIN(process, m);
} }
attr->minreq = SPA_MAX(attr->minreq, MIN_SAMPLES * frame_size);
if (attr->tlength < attr->minreq+frame_size) if (attr->tlength < attr->minreq+frame_size)
attr->tlength = attr->minreq + frame_size; attr->tlength = attr->minreq + frame_size;
@ -1146,6 +1147,8 @@ static void fix_record_buffer_attr(struct stream *s, struct buffer_attr *attr)
attr->fragsize = usec_to_bytes_round_up(DEFAULT_FRAGSIZE_MSEC*1000, &s->ss); attr->fragsize = usec_to_bytes_round_up(DEFAULT_FRAGSIZE_MSEC*1000, &s->ss);
attr->fragsize -= attr->fragsize % frame_size; attr->fragsize -= attr->fragsize % frame_size;
attr->fragsize = SPA_MAX(attr->fragsize, frame_size); attr->fragsize = SPA_MAX(attr->fragsize, frame_size);
attr->fragsize = SPA_MAX(attr->fragsize, MIN_SAMPLES * frame_size);
if (attr->fragsize > attr->maxlength) if (attr->fragsize > attr->maxlength)
attr->fragsize = attr->maxlength; attr->fragsize = attr->maxlength;