<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - The client has not a chance to provide data, when absolute offset is used in a stream without prebuffering and underrun happend for long time"
href="https://bugs.freedesktop.org/show_bug.cgi?id=103103#c5">Comment # 5</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - The client has not a chance to provide data, when absolute offset is used in a stream without prebuffering and underrun happend for long time"
href="https://bugs.freedesktop.org/show_bug.cgi?id=103103">bug 103103</a>
from <span class="vcard"><a class="email" href="mailto:mkid.dev@gmail.com" title="mkid.dev@gmail.com">mkid.dev@gmail.com</a>
</span></b>
<pre>Scenario for the problem based on attached images:
a. when after 3 seconds of playback, the application stops provide data,
writable_size increased due to request send by PA server,
b. when after 30 seconds, when the application wants to start provide data the
pa_stream_writable_size() returns 2639040 bytes,
c. the application writes 2639040 bytes in less than 5 ms without
pa_stream_write() error,
d. after 3 ms from last write, "overflow" notification callback is called for
almost all earlier invocation of pa_stream_write (on my machine data for only
1.5 s is preserved, it is also effect that some of data are written to late),
e. due to "overflow" most of data are dropped, but due to already increased
write_index, PA server will play silence and the application will be blocked
due to no space left, till read index does not catch write index.
IMHO pa_stream_writable_size() does not return valid information in this case
and is a source of later problems.
Configuration of buffer: pa_buffer_attr bufattr = {.maxlength = 122880,
.tlength = 38400, .prebuf = 0, .minreq = 1920, .fragsize = 0}, mirrors
configuration of GStreamer's pulseaudio element.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>