mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-04-30 02:26:28 +00:00
[client] audio/pw: make use of the new ringbuffer consume/append funcs
This commit is contained in:
parent
d99ec3e9c0
commit
dd04a46403
@ -44,8 +44,7 @@ static void pipewire_on_process(void * userdata)
|
|||||||
{
|
{
|
||||||
struct pw_buffer * pbuf;
|
struct pw_buffer * pbuf;
|
||||||
|
|
||||||
const int avail = ringbuffer_getCount(pw.buffer);
|
if (!ringbuffer_getCount(pw.buffer))
|
||||||
if (!avail)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!(pbuf = pw_stream_dequeue_buffer(pw.stream))) {
|
if (!(pbuf = pw_stream_dequeue_buffer(pw.stream))) {
|
||||||
@ -60,14 +59,8 @@ static void pipewire_on_process(void * userdata)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
int frames = sbuf->datas[0].maxsize / pw.stride;
|
int frames = sbuf->datas[0].maxsize / pw.stride;
|
||||||
if (frames > avail)
|
void * values = ringbuffer_consume(pw.buffer, &frames);
|
||||||
frames = avail;
|
memcpy(dst, values, frames * pw.stride);
|
||||||
|
|
||||||
for(int i = 0; i < frames; ++i)
|
|
||||||
{
|
|
||||||
ringbuffer_shift(pw.buffer, dst);
|
|
||||||
dst += pw.stride;
|
|
||||||
}
|
|
||||||
|
|
||||||
sbuf->datas[0].chunk->offset = 0;
|
sbuf->datas[0].chunk->offset = 0;
|
||||||
sbuf->datas[0].chunk->stride = pw.stride;
|
sbuf->datas[0].chunk->stride = pw.stride;
|
||||||
@ -210,8 +203,7 @@ static void pipewire_play(uint8_t * data, int size)
|
|||||||
if (!pw.stream)
|
if (!pw.stream)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for(int i = 0; i < size; i += pw.stride)
|
ringbuffer_append(pw.buffer, data, size / pw.stride);
|
||||||
ringbuffer_push(pw.buffer, data + i);
|
|
||||||
|
|
||||||
if (!pw.active)
|
if (!pw.active)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user