mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-09-20 00:11:31 +00:00
pulse-server: handle prebuf state better
When we have a prebuf value, we start in the prebuf state. We go back to prebuf when we have a prebuf value and an empty ringbuffer.
This commit is contained in:
parent
16665d74d2
commit
a8139b7acf
|
@ -490,6 +490,9 @@ static int reply_create_playback_stream(struct stream *stream, struct pw_manager
|
||||||
items[4] = SPA_DICT_ITEM_INIT("pulse.attr.minreq", attr_minreq);
|
items[4] = SPA_DICT_ITEM_INIT("pulse.attr.minreq", attr_minreq);
|
||||||
pw_stream_update_properties(stream->stream, &SPA_DICT_INIT(items, 5));
|
pw_stream_update_properties(stream->stream, &SPA_DICT_INIT(items, 5));
|
||||||
|
|
||||||
|
if (stream->attr.prebuf > 0)
|
||||||
|
stream->in_prebuf = true;
|
||||||
|
|
||||||
missing = stream_pop_missing(stream);
|
missing = stream_pop_missing(stream);
|
||||||
|
|
||||||
pw_log_info("[%s] reply CREATE_PLAYBACK_STREAM tag:%u missing:%u latency:%s",
|
pw_log_info("[%s] reply CREATE_PLAYBACK_STREAM tag:%u missing:%u latency:%s",
|
||||||
|
|
|
@ -117,7 +117,7 @@ static bool stream_prebuf_active(struct stream *stream)
|
||||||
if (stream->in_prebuf)
|
if (stream->in_prebuf)
|
||||||
return avail < (int32_t) stream->attr.prebuf;
|
return avail < (int32_t) stream->attr.prebuf;
|
||||||
else
|
else
|
||||||
return stream->attr.prebuf > 0 && avail >= 0;
|
return stream->attr.prebuf > 0 && avail <= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t stream_pop_missing(struct stream *stream)
|
uint32_t stream_pop_missing(struct stream *stream)
|
||||||
|
|
Loading…
Reference in a new issue