pulse-server: allows allocate MAXLENGTH for the ringbuffer

See #2069
This commit is contained in:
Wim Taymans 2022-01-28 16:21:03 +01:00
parent 5ead4507cc
commit 1ac1f914e3
3 changed files with 16 additions and 16 deletions

View file

@ -52,7 +52,7 @@
#define MIN_BUFFERS 1u #define MIN_BUFFERS 1u
#define MAX_BUFFERS 4u #define MAX_BUFFERS 4u
#define MAXLENGTH (4*1024*1024) /* 4MB */ #define MAXLENGTH (4u*1024*1024) /* 4MB */
#define SCACHE_ENTRY_SIZE_MAX (1024*1024*16) #define SCACHE_ENTRY_SIZE_MAX (1024*1024*16)

View file

@ -463,7 +463,7 @@ static int reply_create_playback_stream(struct stream *stream, struct pw_manager
lat.denom = stream->ss.rate; lat.denom = stream->ss.rate;
lat.num = fix_playback_buffer_attr(stream, &stream->attr); lat.num = fix_playback_buffer_attr(stream, &stream->attr);
stream->buffer = calloc(1, stream->attr.maxlength); stream->buffer = calloc(1, MAXLENGTH);
if (stream->buffer == NULL) if (stream->buffer == NULL)
return -errno; return -errno;
@ -601,7 +601,7 @@ static int reply_create_record_stream(struct stream *stream, struct pw_manager_o
lat.denom = stream->ss.rate; lat.denom = stream->ss.rate;
lat.num = fix_record_buffer_attr(stream, &stream->attr); lat.num = fix_record_buffer_attr(stream, &stream->attr);
stream->buffer = calloc(1, stream->attr.maxlength); stream->buffer = calloc(1, MAXLENGTH);
if (stream->buffer == NULL) if (stream->buffer == NULL)
return -errno; return -errno;
@ -1186,8 +1186,8 @@ do_process_done(struct spa_loop *loop,
return -errno; return -errno;
spa_ringbuffer_read_data(&stream->ring, spa_ringbuffer_read_data(&stream->ring,
stream->buffer, stream->attr.maxlength, stream->buffer, MAXLENGTH,
index % stream->attr.maxlength, index % MAXLENGTH,
msg->data, towrite); msg->data, towrite);
client_queue_message(client, msg); client_queue_message(client, msg);
@ -1255,8 +1255,8 @@ static void stream_process(void *data)
if ((stream->attr.prebuf == 0 || do_flush) && !stream->corked) { if ((stream->attr.prebuf == 0 || do_flush) && !stream->corked) {
if (avail > 0) { if (avail > 0) {
spa_ringbuffer_read_data(&stream->ring, spa_ringbuffer_read_data(&stream->ring,
stream->buffer, stream->attr.maxlength, stream->buffer, MAXLENGTH,
index % stream->attr.maxlength, index % MAXLENGTH,
p, avail); p, avail);
} }
pd.playing_for = size; pd.playing_for = size;
@ -1282,8 +1282,8 @@ static void stream_process(void *data)
size = SPA_MIN(size, minreq); size = SPA_MIN(size, minreq);
spa_ringbuffer_read_data(&stream->ring, spa_ringbuffer_read_data(&stream->ring,
stream->buffer, stream->attr.maxlength, stream->buffer, MAXLENGTH,
index % stream->attr.maxlength, index % MAXLENGTH,
p, size); p, size);
index += size; index += size;
@ -1315,10 +1315,10 @@ static void stream_process(void *data)
} }
spa_ringbuffer_write_data(&stream->ring, spa_ringbuffer_write_data(&stream->ring,
stream->buffer, stream->attr.maxlength, stream->buffer, MAXLENGTH,
index % stream->attr.maxlength, index % MAXLENGTH,
SPA_PTROFF(p, buf->datas[0].chunk->offset, void), SPA_PTROFF(p, buf->datas[0].chunk->offset, void),
SPA_MIN(size, stream->attr.maxlength)); SPA_MIN(size, MAXLENGTH));
index += size; index += size;
pd.write_inc = size; pd.write_inc = size;
@ -2080,7 +2080,7 @@ static int do_create_upload_stream(struct client *client, uint32_t command, uint
stream->props = props; stream->props = props;
stream->buffer = calloc(1, stream->attr.maxlength); stream->buffer = calloc(1, MAXLENGTH);
if (stream->buffer == NULL) if (stream->buffer == NULL)
goto error_errno; goto error_errno;

View file

@ -178,10 +178,10 @@ static int handle_memblock(struct client *client, struct message *msg)
/* always write data to ringbuffer, we expect the other side /* always write data to ringbuffer, we expect the other side
* to recover */ * to recover */
spa_ringbuffer_write_data(&stream->ring, spa_ringbuffer_write_data(&stream->ring,
stream->buffer, stream->attr.maxlength, stream->buffer, MAXLENGTH,
index % stream->attr.maxlength, index % MAXLENGTH,
msg->data, msg->data,
SPA_MIN(msg->length, stream->attr.maxlength)); SPA_MIN(msg->length, MAXLENGTH));
index += msg->length; index += msg->length;
stream->write_index += msg->length; stream->write_index += msg->length;
spa_ringbuffer_write_update(&stream->ring, index); spa_ringbuffer_write_update(&stream->ring, index);