<div dir="ltr"><div>Although the tunnel-sink now works in principle, I have problems getting the audio synchronized between the HDMI output and the tunnel sink.</div><div><br></div><div>I thought I'd try RTP anyway, since there are reports saying that it works well for synchronized distributed audio.</div><div><br></div><div>Here's a full backtrace of the crashing thread, again from version 1:8.0.0-0ubuntu3.</div><div><br></div><div>Sorry for not putting it into Bugzilla, but I don't really feel like creating an account just for this one backtrace.</div><div><br></div><div>Thanks for the help and best regards,</div><div><br></div><div>Christian</div><div><br></div><div>(gdb) bt full</div><div>#0 0x00007ffff6311418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54</div><div> resultvar = 0</div><div> pid = 35355</div><div> selftid = 35359</div><div>#1 0x00007ffff631301a in __GI_abort () at abort.c:89</div><div> save_stage = 2</div><div> act = {__sigaction_handler = {sa_handler = 0x2c00000011, sa_sigaction = 0x2c00000011}, sa_mask = {__val = {176093659154, 0, 0, </div><div> 140737111419872, 140737114283993, 6785184, 6798368, 0, 140737324591616, 140737111422464, 140737018593368, 0, 140737018596576, </div><div> 0, 140737200119808, 140737111419728}}, sa_flags = -141746104, sa_restorer = 0x50c}</div><div> sigs = {__val = {32, 0 <repeats 15 times>}}</div><div>#2 0x00007ffff78d2051 in pa_memblockq_push (bq=0x73f460, uchunk=0x7fffe9886c20) at pulsecore/memblockq.c:289</div><div> q = 0x3f</div><div> n = 0x7fffe9886b30</div><div> chunk = {memblock = 0x575ae614, index = 540414, length = 3955821}</div><div> old = 0</div><div> __func__ = "pa_memblockq_push"</div><div> __PRETTY_FUNCTION__ = "pa_memblockq_push"</div><div>#3 0x00007fffcb9ed235 in rtpoll_work_cb (i=0x7fffe4000b20) at modules/rtp/module-rtp-recv.c:271</div><div> chunk = {memblock = 0x7fffeed1e000, index = 12, length = 1280}</div><div> k = 0</div><div> j = 4294967296</div><div> delta = 0</div><div> now = {tv_sec = 3955821, tv_usec = 947295}</div><div> s = 0x6f7fc0</div><div> p = 0x66f0b8</div><div> __func__ = "rtpoll_work_cb"</div><div> __PRETTY_FUNCTION__ = "rtpoll_work_cb"</div><div>#4 0x00007ffff7b5c000 in pa_rtpoll_run (p=0x7c8240) at pulsecore/rtpoll.c:696</div><div> k = 0</div><div> defer_event = 0x0</div><div> time_event = 0x0</div><div> i = 0x7fffe4000b20</div><div> r = 0</div><div> timeout = {tv_sec = 70528, tv_usec = 0}</div><div> next_time_event = 0x0</div><div> next_time_event_elapse = {tv_sec = 3955821946850, tv_usec = 4754025810059539968}</div><div> timer_enabled = false</div><div> __func__ = "pa_rtpoll_run"</div><div> __PRETTY_FUNCTION__ = "pa_rtpoll_run"</div><div>#5 0x00007fffe98be040 in thread_func (userdata=0x666bb0) at modules/alsa/alsa-sink.c:1799</div><div> ret = 1</div><div> rtpoll_sleep = 0</div><div> real_sleep = 0</div><div> u = 0x666bb0</div><div> revents = 0</div><div> __func__ = "thread_func"</div><div> __PRETTY_FUNCTION__ = "thread_func"</div><div>#6 0x00007ffff78f43fe in internal_thread_func (userdata=0x7c33e0) at pulsecore/thread-posix.c:81</div><div> t = 0x7c33e0</div><div> __func__ = "internal_thread_func"</div><div> __PRETTY_FUNCTION__ = "internal_thread_func"</div><div>#7 0x00007ffff6dc16fa in start_thread (arg=0x7fffe9887700) at pthread_create.c:333</div><div> __res = <optimized out></div><div> pd = 0x7fffe9887700</div><div> now = <optimized out></div><div> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737111422720, -6710472414859945635, 0, 140737488343983, 140737111423424, 0, </div><div> 6710451357242300765, 6710488085811763549}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, </div><div> cleanup = 0x0, canceltype = 0}}}</div><div> not_first_call = <optimized out></div><div> pagesize_m1 = <optimized out></div><div> sp = <optimized out></div><div> freesize = <optimized out></div><div> __PRETTY_FUNCTION__ = "start_thread"</div><div>#8 0x00007ffff63e2b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109</div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 7, 2016 at 7:49 AM, Christian Glodt <span dir="ltr"><<a href="mailto:chris@mind.lu" target="_blank">chris@mind.lu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 06/06/2016 05:59 PM, Tanu Kaskinen wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Mon, 2016-06-06 at 11:20 +0200, Christian Glodt wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I'm trying to do the following with a 7.1 surround sound signal:<br>
- play the front-center channel on the left and right channels of a HDMI<br>
output<br>
- stream the 6 {front,side,rear}-{left,right} channels to another system<br>
- (I'm ignoring the lfe channel for now)<br>
<br>
The hardware setup is this:<br>
- A Micro-PC running Kodi connected to a TV (which will also act as<br>
center speaker).<br>
- A server system hooked up to audio outputs and amplifiers that drive 6<br>
ceiling-mounted speakers.<br>
<br>
I will call the Micro-PC "Client", and the Server "Server" in the<br>
following description.<br>
<br>
Please note that the server system plays audio fine on the speakers<br>
using MPD. I'm also not too concerned with the exact channel mappings at<br>
the moment.<br>
<br>
I'm running Ubuntu 16.04 on both systems (Pulseaudio package version<br>
1:8.0-0ubuntu3).<br>
<br>
I've tried several different approaches to achieve the streaming of the<br>
6 channels from the client to the server system. None of them work so<br>
far, in fact I mostly get failed assertions.<br>
<br>
I'd be very glad if someone could point me in the right direction.<br>
</blockquote>
The tunnel crashes can be fixed by applying these two patches:<br>
<br>
<a href="https://lists.freedesktop.org/archives/pulseaudio-discuss/2015-January/022881.html" rel="noreferrer" target="_blank">https://lists.freedesktop.org/archives/pulseaudio-discuss/2015-January/022881.html</a><br>
<a href="https://lists.freedesktop.org/archives/pulseaudio-discuss/2015-January/022882.html" rel="noreferrer" target="_blank">https://lists.freedesktop.org/archives/pulseaudio-discuss/2015-January/022882.html</a><br>
</blockquote>
<br></div></div>
Thanks a lot, these patches fix the tunnel-sink problem for me! I applied them to Ubuntu's 1:8.0-ubuntu3 package. In order to get it to compile, I had to add the "pa_rtpoll_quit()" function back again. It works now, using a tunnel-sink-new and a combine-sink (1st approach described in my initial email).<br>
<br>
I hope these patches get applied upstream - without them Pulseaudio is broken for a great many use cases.<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The rtp crash is something else. If you know how to get backtraces with<br>
gdb, a bug report in bugzilla with a backtrace would be helpful.<br>
</blockquote>
<br></span>
Unfortunately I've already spent far too much time on this problem, so I won't be able to delve any deeper into the RTP crash, as I'm not planning to use RTP now. It does seem easy enough to replicate for anyone interested.<br>
<br>
Thanks a lot and best regards,<br>
<br>
Christian Glodt<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
-- <br>
Tanu<br>
_______________________________________________<br>
pulseaudio-discuss mailing list<br>
<a href="mailto:pulseaudio-discuss@lists.freedesktop.org" target="_blank">pulseaudio-discuss@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss</a><br>
</blockquote>
<br>
</div></div></blockquote></div><br></div></div>