<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:2042120965;
        mso-list-type:hybrid;
        mso-list-template-ids:786321500 67698711 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoPlainText">Hi Tanu, <o:p></o:p></p>
<p class="MsoPlainText">Thanks for the reply.<o:p></o:p></p>
<p class="MsoPlainText">I think that the loopback module shouldn’t be unloaded each time steaming stops for the simple reason that it is loaded when connection is established, and not when streaming starts.<o:p></o:p></p>
<p class="MsoPlainText">I get all kind of PulseAudio problems, for example in the example below, PulseAudio success to stream in the start, but after pausing and playing again PulseAudio act differently.<o:p></o:p></p>
<p class="MsoPlainText">- It looks like PulseAudio has problem to handle changing connection state or something.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">The below log was produced by the following steps:<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style="mso-list:Ignore">a)<span style="font:7.0pt "Times New Roman"">     
</span></span><![endif]><span dir="LTR"></span>connection establishment<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style="mso-list:Ignore">b)<span style="font:7.0pt "Times New Roman"">     
</span></span><![endif]><span dir="LTR"></span>streaming session<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style="mso-list:Ignore">c)<span style="font:7.0pt "Times New Roman"">      
</span></span><![endif]><span dir="LTR"></span>stop from remote device<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style="mso-list:Ignore">d)<span style="font:7.0pt "Times New Roman"">     
</span></span><![endif]><span dir="LTR"></span>unloading loopback module<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style="mso-list:Ignore">e)<span style="font:7.0pt "Times New Roman"">     
</span></span><![endif]><span dir="LTR"></span>toggling streaming start/stop without PulseAudio suitable response<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style="mso-list:Ignore">f)<span style="font:7.0pt "Times New Roman"">      
</span></span><![endif]><span dir="LTR"></span>pacmd failure for long time (more then 3-4 minutes). – so it’s probably not a dbus thing.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Please notice that each time I try a test, something a little different happens- but it always has to do with modules unloading/PulseAudio doesn’t response<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I know the log is a little long, but the important part as I see it start around line ~443.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks, Eytan.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">pulse@OpenWrt:/$<o:p></o:p></p>
<p class="MsoPlainText">-----Original Message-----<br>
From: Tanu Kaskinen [mailto:tanuk@iki.fi] <br>
Sent: Wednesday, August 12, 2015 6:49 PM<br>
To: Eytan Naim; pulseaudio-discuss@lists.freedesktop.org<br>
Subject: Re: [pulseaudio-discuss] pulseaudio a2dp disconnect problem<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">On Wed, 2015-08-12 at 09:36 +0000, Eytan Naim wrote:<o:p></o:p></p>
<p class="MsoPlainText">> Hi,<o:p></o:p></p>
<p class="MsoPlainText">> I'm hoping I could get help me because I have searched the web twice
<o:p></o:p></p>
<p class="MsoPlainText">> and still not sure what to do.<o:p></o:p></p>
<p class="MsoPlainText">> I'm trying to enable PulseAudio as an a2dp sink which seems to work
<o:p></o:p></p>
<p class="MsoPlainText">> fine on start, until I pause the audio app momentarily on the source
<o:p></o:p></p>
<p class="MsoPlainText">> device.<o:p></o:p></p>
<p class="MsoPlainText">> After that,  instead of connection should be idle or something,
<o:p></o:p></p>
<p class="MsoPlainText">> PulseAudio unload his Bluetooth loopback module as seen below. And it
<o:p></o:p></p>
<p class="MsoPlainText">> seems that this disconnection event is triggered by Bluetoothd itself,
<o:p></o:p></p>
<p class="MsoPlainText">> but I assume that the problem is with PulseAudio.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">The PA log is not as verbose as it could be (use -vv to get the full debug output), which makes it harder to know what exactly is happening, but my guess is that unloading the loopback module doesn't indicate any issue. When the streaming
 pauses, PulseAudio changes the bluetooth card profile to off, which unloads the source, which in turn causes the loopback module to get unloaded. Perhaps PulseAudio shouldn't switch the card profile to off, but probably it should.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> After that PulseAudio seem somehow zombie, I can only kill him with
<o:p></o:p></p>
<p class="MsoPlainText">> kill command (ctrl+c doesn't work).<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I suppose pactl can't connect to the daemon either?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">You could run PA under gdb, and get a backtrace when it gets stuck. My guess would be that it's stuck in some synchronous D-Bus call to bluetoothd (the last log message is about setting up the streaming again). D-Bus calls should eventually
 terminate with a timeout, though<o:p></o:p></p>
<p class="MsoPlainText">- is PA stuck for more than a minute?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">--<o:p></o:p></p>
<p class="MsoPlainText">Tanu<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
</div>
</body>
</html>