Ticket #507 (closed defect: fixed)
Incompatible channel_map/relative_volume in stream restore?
| Reported by: | elmarco | Owned by: | lennart |
|---|---|---|---|
| Milestone: | 0.9.15 | Component: | module-volume-restore |
| Keywords: | Cc: |
Description (last modified by lennart) (diff)
When switching quickly between HSP and A2dp
I: card.c: Changed profile of card 2 "bluez_card.00_1E_3A_9B_DC_B7" to hsp
D: volume.c: Assertion 'pa_cvolume_compatible_with_channel_map(v, from)' failed at pulse/volume.c:394, function pa_cvolume_remap.
E: volume.c: Assertion 'a' failed at pulse/volume.c:37, function pa_cvolume_equal(). Aborting.
Program received signal SIGABRT, Aborted.
0x4e74d7f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) bt
#0 0x4e74d7f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x4e798640 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0x4e79a008 in *__GI_abort () at abort.c:88
#3 0xb7daa901 in pa_cvolume_equal (a=0x0, b=0xb280077e) at pulse/volume.c:37
#4 0xb7e96a9b in entries_equal (a=0xb28006f8, b=0xbfffe99a) at modules/module-stream-restore.c:255
#5 0xb7e9708a in subscribe_callback (c=0x8073e68, t=18, idx=1, userdata=0x8086cd8) at modules/module-stream-restore.c:332
#6 0xb7dd842f in defer_cb (m=0x8072d24, de=0x8079e20, userdata=0x8073e68) at pulsecore/core-subscribe.c:175
#7 0xb7d9550e in dispatch_defer (m=0x8072ce8) at pulse/mainloop.c:705
#8 0xb7d960b9 in pa_mainloop_dispatch (m=0x8072ce8) at pulse/mainloop.c:887
#9 0xb7d96295 in pa_mainloop_iterate (m=0x8072ce8, block=1, retval=0xbfffede0) at pulse/mainloop.c:926
#10 0xb7d962ff in pa_mainloop_run (m=0x8072ce8, retval=0xbfffede0) at pulse/mainloop.c:941
#11 0x08062509 in main (argc=2, argv=0xbfffeed4) at daemon/main.c:995
(gdb) f 4
#4 0xb7e96a9b in entries_equal (a=0xb28006f8, b=0xbfffe99a) at modules/module-stream-restore.c:255
255 if (a->relative_volume_valid != b->relative_volume_valid ||
(gdb) f 4
#4 0xb7e96a9b in entries_equal (a=0xb28006f8, b=0xbfffe99a) at modules/module-stream-restore.c:255
255 if (a->relative_volume_valid != b->relative_volume_valid ||
(gdb) print *a
$1 = {version = 1 '\001', muted_valid = false, relative_volume_valid = true, absolute_volume_valid = true, device_valid = false, muted = false, channel_map = {channels = 2 '\002', map = {PA_CHANNEL_POSITION_LEFT, PA_CHANNEL_POSITION_RIGHT, -1300234224, -1300233112, -1210353036, 137, -1210839205, -1073747576, -1210390674, PA_CHANNEL_POSITION_AUX8, 1317725951, 1317732744, 1317720209, 1317720029, -1209861392, -1073747544, -1210180278, -1208056024, -1209912751, -1073747528, -1210503734, -1300211056, -1210621292, -1073747544, -1210693171, PA_CHANNEL_POSITION_AUX8, -1300233112, -1300234240, -1210353036, PA_CHANNEL_POSITION_LEFT, -1210621292, -1073747464}}, relative_volume = {channels = 2 '\002', values = {65536, 65536, 0 <repeats 30 times>}}, absolute_volume = {channels = 2 '\002', values = {65536, 65536, 0 <repeats 30 times>}}, device = "bluez_sink.00_1E_3A_9B_DC_B7", '\0' <repeats 99 times>}
(gdb) print *b
$2 = {version = 1 '\001', muted_valid = false, relative_volume_valid = true, absolute_volume_valid = true, device_valid = false, muted = false, channel_map = {channels = 2 '\002', map = {PA_CHANNEL_POSITION_LEFT, PA_CHANNEL_POSITION_RIGHT, -1300234224, -1300233112, -1210353036, 137, -1210839205, -1073747576, -1210390674, PA_CHANNEL_POSITION_AUX8, 1317725951, 1317732744, 1317720209, 1317720029, -1209861392, -1073747544, -1210180278, -1208056024, -1209912751, -1073747528, -1210503734, -1300211056, -1210621292, -1073747544, -1210693171, PA_CHANNEL_POSITION_AUX8, -1300233112, -1300234240, -1210353036, PA_CHANNEL_POSITION_LEFT, -1210621292, -1073747464}}, relative_volume = {channels = 1 '\001', values = {65536, 0 <repeats 31 times>}}, absolute_volume = {channels = 2 '\002', values = {65536, 65536, 0 <repeats 30 times>}}, device = "bluez_sink.00_1E_3A_9B_DC_B7", '\0' <repeats 99 times>}
(gdb) c
Continuing.
relative_volume has a channels = 1, but the channel_map is for 2 channels. I will try to check later.
Change History
Note: See
TracTickets for help on using
tickets.
