<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hiya,<div><br></div><div>I've been playing with modern releases of pulseaudio. </div><div><br></div><div>In release 0.9.12 on an arm embedded system, the cpu load went from around 12-16% to under 4%. </div><div><br></div><div>AWESOME!</div><div><br></div><div>But something seems broken with module-null-sink. </div><div><br></div><div>I looked at git and Lennert had a comment about teaching module-null-sink about rewinds.</div><div><br></div><div>Debugging is always easier on x86 so I tried a simple null sink there. </div><div><br></div><div>Logs of output are below.</div><div><br></div><div>Where should I start looking to address this? </div><div><br></div><div>Any clues or breadcrumbs gratefully received :)</div><div><br></div><div>Thanks</div><div><br></div><div>Nick</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>I checked out the "master" branch from git, built it and got the following message:</div><div><br></div><div><blockquote type="cite" class="">
<!--StartFragment--><font face="Verdana, Helvetica, Arial"><span style="font-size:12.0px">nick@nick-desktop:~$ paplay --device=test_null_sink ~/Sony\ CD-ROM\ Test\ Disk\ Type\ 3.0/Cantibile-Op-17.wav <br>
Connection failure: Connection terminated <br>
Stream errror: Connection terminated</span></font></blockquote><br></div><div>Looking at the output of pulseaudio's log I see the following...</div><div><br></div><div><blockquote type="cite" class="">
<!--StartFragment--><font face="Verdana, Helvetica, Arial"><span style="font-size:12.0px">D: module-suspend-on-idle.c: Sink test_null_sink becomes busy. <br>
D: memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0 <br>
D: memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0 <br>
I: sink-input.c: Created input 0 "/home/nick/Sony CD-ROM Test Disk Type 3.0/Cantibile-Op-17.wav" on test_null_sink with sample spec s16le 2ch 44100Hz and channel map front-left,front-right<br>
<br>
I: protocol-native.c: Requested tlength=250.00 ms, minreq=20.00 ms <br>
D: protocol-native.c: Traditional mode enabled, modifying sink usec only for compat with minreq. <br>
D: memblockq.c: memblockq requested: maxlength=4194304, tlength=44100, base=4, prebuf=44100, minreq=3528 maxrewind=0 <br>
D: memblockq.c: memblockq sanitized: maxlength=4194304, tlength=44100, base=4, prebuf=44100, minreq=3528 maxrewind=0 <br>
I: protocol-native.c: Final latency 460.00 ms = 210.00 ms + 2*20.00 ms + 210.00 ms <br>
D: protocol-native.c: Requesting rewind due to end of underrun. <br>
D: module-null-sink.c: Requested to rewind 352800 bytes. <br>
D: sink.c: Processing rewind... <br>
D: sink-input.c: Have to rewind 352800 bytes on render memblockq. <br>
D: module-null-sink.c: Rewound 352800 bytes. <br>
D: protocol-native.c: Requesting rewind due to end of underrun. <br>
D: module-null-sink.c: Requested to rewind 352800 bytes. <br>
D: sink.c: Processing rewind... <br>
D: sink-input.c: Have to rewind 40012 bytes on render memblockq. <br>
D: module-null-sink.c: Rewound 40012 bytes. <br>
D: protocol-native.c: Requesting rewind due to end of underrun. <br>
D: module-null-sink.c: Requested to rewind 352800 bytes. <br>
E: sink.c: Assertion '!s->thread_info.rewind_requested' failed at pulsecore/sink.c:632, function pa_sink_render(). Aborting.<br>
<br>
Aborted <br>
nick@nick-desktop:~$</span></font></blockquote><div><br></div>The pulseconfig is very simple for this test:</div><div><br></div><div><blockquote type="cite" class="">
<!--StartFragment--><font face="Verdana, Helvetica, Arial"><span style="font-size:12.0px">load-module module-native-protocol-unix<br>
<br>
load-module module-null-sink sink_name=test_null_sink<br>
<br>
<br>
load-module module-alsa-sink device=usbLexiconAlpha sink_name=usbAudio<br>
load-module module-alsa-sink device=intelHDA sink_name=hdaAudio<br>
load-module module-alsa-source device=usbLexiconAlpha source_name=usbAudioInput<br>
load-module module-alsa-source device=intelHDA source_name=hdaAudioInput<br>
<br>
# default sinks/sources<br>
set-default-sink usbAudio<br>
set-default-source usbAudioInput<br>
<br>
load-module module-suspend-on-idle</span></font></blockquote></div></body></html>