telegramdesktop / tdesktop

Telegram Desktop messaging app
https://desktop.telegram.org/
Other
26.29k stars 5.22k forks source link

Audio output doesn't switch on bluetooth headset #26732

Closed nikelborm closed 1 year ago

nikelborm commented 1 year ago

Steps to reproduce

  1. install latest arch with gnome on your notebook
  2. configure bluetooth
  3. install telegram, and chrome
  4. connect Sony WF-1000XM4 to notebook via bluetooth
  5. choose earbuds as audio output in gnome settings
  6. open chrome and make sure music plays fine
  7. open telegram and try to play any voice message

Expected behaviour

  1. Audio output plays to earbuds and not to notebook's speakers

Actual behaviour

  1. Audio output plays to notebook's speakers instead of earbuds (maybe it has something to do with pipewire, idk)

Screenshot from 2023-08-31 19-28-55 Screenshot from 2023-08-31 19-29-34 Screenshot from 2023-08-31 20-04-17

Operating system

Arch linux, GNOME 44.4

Version of Telegram Desktop

4.9.3-2

Installation source

Other (unofficial) source

Crash ID

No response

Logs

[2023.08.31 19:27:56] Launched version: 4009003, install beta: [TRUE], alpha: 0, debug mode: [FALSE]
[2023.08.31 19:27:56] Executable dir: /usr/bin/, name: telegram-desktop
[2023.08.31 19:27:56] Initial working dir: /home/nikel/
[2023.08.31 19:27:56] Working dir: /home/nikel/.local/share/TelegramDesktop/
[2023.08.31 19:27:56] Command line: /usr/bin/telegram-desktop
[2023.08.31 19:27:56] Executable path before check: /usr/bin/telegram-desktop
[2023.08.31 19:27:56] Logs started
[2023.08.31 19:27:56] App ID: org.telegram.desktop
[2023.08.31 19:27:56] Connecting local socket to 5722a175a50be515189f1cdddf2c5fab-{87A94AB0-E370-4cde-98D3-ACC110C5967D}...
[2023.08.31 19:27:56] Socket connect error 0, starting server and app...
[2023.08.31 19:27:56] Moved logging from '/home/nikel/.local/share/TelegramDesktop/log_start0.txt' to '/home/nikel/.local/share/TelegramDesktop/log.txt'!
[2023.08.31 19:27:56] Global devicePixelRatio: 2
[2023.08.31 19:27:56] Primary screen DPI: 96, Base: 96.
[2023.08.31 19:27:56] Computed screen scale: 100
[2023.08.31 19:27:56] DevicePixelRatio: 2
[2023.08.31 19:27:56] ScreenScale: 100
[2023.08.31 19:27:56] Icon theme: Adwaita
[2023.08.31 19:27:56] Fallback icon theme: 
[2023.08.31 19:27:56] System tray available: [TRUE]
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAOpenSansRegular.ttf' loaded 'DAOpenSansRegular'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAVazirRegular.ttf' loaded 'DAVazirRegular'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAOpenSansRegularItalic.ttf' loaded 'DAOpenSansRegularItalic'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAVazirRegular.ttf' loaded 'DAVazirRegular'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAOpenSansSemiboldAsBold.ttf' loaded 'DAOpenSansSemibold'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAVazirMediumAsBold.ttf' loaded 'DAVazirMedium'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAOpenSansSemiboldItalicAsBold.ttf' loaded 'DAOpenSansSemiboldItalic'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAVazirMediumAsBold.ttf' loaded 'DAVazirMedium'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAOpenSansSemiboldAsBold.ttf' loaded 'DAOpenSansSemibold'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAVazirMediumAsBold.ttf' loaded 'DAVazirMedium'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAOpenSansSemiboldItalicAsBold.ttf' loaded 'DAOpenSansSemiboldItalic'
[2023.08.31 19:27:56] Font: from ':/gui/fonts/DAVazirMediumAsBold.ttf' loaded 'DAVazirMedium'
[2023.08.31 19:27:56] App Info: reading settings...
[2023.08.31 19:27:56] App Info: reading encrypted settings...
[2023.08.31 19:27:57] Lang Info: Loaded cached, keys: 5202
[2023.08.31 19:27:57] OpenAL Logging Level: (not set)
[2023.08.31 19:27:57] Audio Playback Devices: Family 17h/19h HD Audio Controller Speaker + Headphones
[2023.08.31 19:27:57] Audio Playback Default Device: Family 17h/19h HD Audio Controller Speaker + Headphones
[2023.08.31 19:27:57] Audio Capture Devices: Family 17h/19h HD Audio Controller Digital Microphone;Monitor of Family 17h/19h HD Audio Controller Speaker + Headphones;Family 17h/19h HD Audio Controller Headphones Stereo Microphone
[2023.08.31 19:27:57] Audio Capture Default Device: Family 17h/19h HD Audio Controller Digital Microphone
[2023.08.31 19:27:57] OpenGL Profile: Compatibility.
[2023.08.31 19:27:57] OpenGL Renderer: AMD Radeon Graphics (renoir, LLVM 16.0.6, DRM 3.52, 6.4.12-arch1-1)
[2023.08.31 19:27:57] OpenGL Vendor: AMD
[2023.08.31 19:27:57] OpenGL Version: 4.6 (Compatibility Profile) Mesa 23.1.6-arch1.4
[2023.08.31 19:27:57] OpenGL Extensions: GL_AMD_query_buffer_object, GL_EXT_texture_compression_dxt1, GL_ARB_shading_language_100, GL_EXT_shadow_funcs, GL_EXT_draw_range_elements, GL_AMD_vertex_shader_viewport_index, GL_NV_copy_depth_to_color, GL_ARB_polygon_offset_clamp, GL_ARB_get_program_binary, GL_ARB_shader_atomic_counters, GL_SGIS_texture_lod, GL_ARB_shader_texture_lod, GL_ARB_framebuffer_object, GL_NV_texture_env_combine4, GL_ARB_instanced_arrays, GL_EXT_texture_sRGB_R8, GL_ARB_internalformat_query2, GL_KHR_texture_compression_astc_sliced_3d, GL_ARB_multitexture, GL_ARB_texture_float, GL_EXT_memory_object_fd, GL_EXT_shader_image_load_store, GL_NV_texture_barrier, GL_ARB_vertex_array_object, GL_ARB_robustness, GL_ARB_sampler_objects, GL_ARB_texture_rgb10_a2ui, GL_ARB_shader_atomic_counter_ops, GL_EXT_abgr, GL_NV_texture_rectangle, GL_ARB_derivative_control, GL_EXT_texture_cube_map, GL_ARB_viewport_array, GL_ARB_texture_non_power_of_two, GL_ARB_blend_func_extended, GL_EXT_EGL_sync, GL_ARB_tessellation_shader, GL_EXT_demote_to_helper_invocation, GL_EXT_texture_integer, GL_EXT_provoking_vertex, GL_EXT_texture_lod_bias, GL_ARB_debug_output, GL_ARB_texture_env_dot3, GL_EXT_EGL_image_storage, GL_ARB_cull_distance, GL_EXT_packed_depth_stencil, GL_EXT_polygon_offset_clamp, GL_EXT_subtexture, GL_ARB_half_float_pixel, GL_ARB_parallel_shader_compile, GL_ARB_texture_query_lod, GL_ARB_texture_buffer_object, GL_ARB_internalformat_query, GL_EXT_framebuffer_object, GL_ARB_copy_buffer, GL_ARB_direct_state_access, GL_ARB_texture_storage, GL_EXT_blend_minmax, GL_AMD_multi_draw_indirect, GL_ARB_texture_swizzle, GL_EXT_timer_query, GL_ARB_shader_draw_parameters, GL_ARB_seamless_cube_map, GL_EXT_multi_draw_arrays, GL_ARB_buffer_storage, GL_EXT_pixel_buffer_object, GL_NV_blend_square, GL_IBM_multimode_draw_arrays, GL_AMD_shader_stencil_export, GL_ARB_shading_language_packing, GL_ARB_shader_stencil_export, GL_MESA_framebuffer_flip_y, GL_EXT_separate_specular_color, GL_EXT_texture_shadow_lod, GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_texture_sRGB, GL_ATI_texture_float, GL_ARB_map_buffer_range, GL_ARB_transform_feedback3, GL_KHR_blend_equation_advanced, GL_EXT_texture_env_dot3, GL_EXT_texture_sRGB_decode, GL_ARB_pipeline_statistics_query, GL_ARB_fragment_program, GL_ARB_sync, GL_IBM_texture_mirrored_repeat, GL_ARB_clear_texture, GL_ARB_draw_elements_base_vertex, GL_ARB_vertex_array_bgra, GL_EXT_blend_func_separate, GL_EXT_packed_pixels, GL_EXT_texture_filter_anisotropic, GL_EXT_vertex_attrib_64bit, GL_ARB_shader_image_size, GL_ARB_separate_shader_objects, GL_ARB_shadow, GL_ARB_depth_texture, GL_NV_fog_distance, GL_EXT_compiled_vertex_array, GL_EXT_direct_state_access, GL_EXT_texture_env_add, GL_ARB_pixel_buffer_object, GL_ARB_arrays_of_arrays, GL_ARB_texture_barrier, GL_EXT_texture_compression_s3tc, GL_ATI_blend_equation_separate, GL_ARB_sparse_texture2, GL_ARB_sparse_texture_clamp, GL_EXT_transform_feedback, GL_ARB_shading_language_include, GL_EXT_texture_array, GL_EXT_texture, GL_EXT_semaphore, GL_ARB_seamless_cubemap_per_texture, GL_NV_depth_clamp, GL_NV_copy_image, GL_ARB_texture_env_add, GL_AMD_depth_clamp_separate, GL_ARB_transform_feedback_overflow_query, GL_SGIS_texture_edge_clamp, GL_ARB_vertex_buffer_object, GL_ATI_fragment_shader, GL_EXT_texture_edge_clamp, GL_EXT_texture_object, GL_EXT_texture_compression_rgtc, GL_ATI_draw_buffers, GL_ARB_half_float_vertex, GL_ARB_transform_feedback_instanced, GL_KHR_debug, GL_INTEL_blackhole_render, GL_ARB_texture_buffer_range, GL_ARB_explicit_uniform_location, GL_EXT_texture_buffer_object, GL_ARB_gpu_shader_fp64, GL_AMD_shader_trinary_minmax, GL_ARB_ES3_1_compatibility, GL_ARB_shader_texture_image_samples, GL_ARB_sparse_buffer, GL_ARB_enhanced_layouts, GL_ARB_shader_storage_buffer_object, GL_EXT_texture_swizzle, GL_ARB_texture_mirrored_repeat, GL_AMD_framebuffer_multisample_advanced, GL_EXT_texture_compression_latc, GL_ARB_get_texture_sub_image, GL_EXT_draw_buffers2, GL_NV_alpha_to_coverage_dither_control, GL_EXT_texture_rectangle, GL_MESA_shader_integer_functions, GL_ARB_vertex_shader, GL_EXT_texture_snorm, GL_MESA_window_pos, GL_ATI_texture_mirror_once, GL_NV_light_max_exponent, GL_EXT_debug_label, GL_MESA_texture_signed_rgba, GL_ARB_shader_precision, GL_NV_ES1_1_compatibility, GL_EXT_blend_subtract, GL_OES_read_format, GL_KHR_robustness, GL_ARB_texture_query_levels, GL_EXT_draw_instanced, GL_ARB_draw_buffers, GL_ARB_gpu_shader_int64, GL_ARB_texture_gather, GL_EXT_point_parameters, GL_ARB_base_instance, GL_NV_compute_shader_derivatives, GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_ES3_2_compatibility, GL_ARB_shader_objects, GL_ARB_texture_rectangle, GL_EXT_gpu_program_parameters, GL_ARB_multi_bind, GL_ARB_provoking_vertex, GL_ARB_texture_stencil8, GL_EXT_framebuffer_sRGB, GL_ARB_ES2_compatibility, GL_ARB_gpu_shader5, GL_ARB_point_sprite, GL_AMD_pinned_memory, GL_APPLE_packed_pixels, GL_ARB_transpose_matrix, GL_ARB_sparse_texture, GL_NV_primitive_restart, GL_ARB_shader_clock, GL_ARB_texture_buffer_object_rgb32, GL_EXT_memory_object, GL_ARB_spirv_extensions, GL_NV_shader_atomic_int64, GL_EXT_texture3D, GL_ANGLE_texture_compression_dxt5, GL_IBM_rasterpos_clip, GL_ARB_fragment_program_shadow, GL_EXT_blend_equation_separate, GL_ARB_depth_buffer_float, GL_ATI_separate_stencil, GL_EXT_framebuffer_multisample, GL_ARB_gl_spirv, GL_ARB_sample_shading, GL_ARB_clear_buffer_object, GL_EXT_stencil_two_side, GL_ARB_vertex_attrib_binding, GL_NV_conditional_render, GL_EXT_semaphore_fd, GL_ARB_shader_group_vote, GL_AMD_vertex_shader_layer, GL_ARB_fragment_shader, GL_ARB_texture_rg, GL_AMD_texture_texture4, GL_ARB_bindless_texture, GL_ARB_texture_cube_map, GL_ARB_shader_subroutine, GL_ARB_draw_instanced, GL_ARB_texture_border_clamp, GL_ARB_shader_viewport_layer_array, GL_ARB_texture_mirror_clamp_to_edge, GL_EXT_secondary_color, GL_AMD_performance_monitor, GL_ARB_copy_image, GL_SGIS_generate_mipmap, GL_EXT_copy_texture, GL_ARB_compute_variable_group_size, GL_ARB_explicit_attrib_location, GL_ARB_shading_language_420pack, GL_NV_half_float, GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_framebuffer_sRGB, GL_EXT_framebuffer_blit, GL_ARB_texture_filter_anisotropic, GL_ARB_conditional_render_inverted, GL_EXT_window_rectangles, GL_ARB_clip_control, GL_NV_texgen_reflection, GL_ARB_compatibility, GL_EXT_texture_mirror_clamp, GL_ARB_compute_shader, GL_ARB_multi_draw_indirect, GL_EXT_vertex_array_bgra, GL_ATI_texture_compression_3dc, GL_ARB_texture_env_crossbar, GL_ARB_compressed_texture_pixel_storage, GL_ARB_depth_clamp, GL_ARB_shader_ballot, GL_ARB_texture_compression_bptc, GL_EXT_fog_coord, GL_ARB_draw_indirect, GL_KHR_texture_compression_astc_ldr, GL_ARB_invalidate_subdata, GL_ARB_fragment_coord_conventions, GL_EXT_blend_color, GL_ARB_window_pos, GL_EXT_shader_image_load_formatted, GL_OES_EGL_image, GL_ARB_robust_buffer_access_behavior, GL_EXT_bgra, GL_ARB_occlusion_query, GL_NV_packed_depth_stencil, GL_EXT_texture_shared_exponent, GL_ARB_transform_feedback2, GL_EXT_packed_float, GL_ARB_uniform_buffer_object, GL_ARB_draw_buffers_blend, GL_EXT_shader_samples_identical, GL_ARB_shader_image_load_store, GL_ARB_indirect_parameters, GL_NV_vdpau_interop, GL_EXT_stencil_wrap, GL_ANGLE_texture_compression_dxt3, GL_EXT_gpu_shader4, GL_ARB_color_buffer_float, GL_EXT_rescale_normal, GL_ARB_multisample, GL_ARB_texture_compression_rgtc, GL_AMD_conservative_depth, GL_ARB_query_buffer_object, GL_ARB_map_buffer_alignment, GL_ARB_vertex_program, GL_ARB_texture_env_combine, GL_EXT_vertex_array, GL_ARB_occlusion_query2, GL_KHR_robust_buffer_access_behavior, GL_ARB_texture_view, GL_ARB_stencil_texturing, GL_ATI_meminfo, GL_ARB_timer_query, GL_ARB_framebuffer_no_attachments, GL_EXT_depth_bounds_test, GL_AMD_draw_buffers_blend, GL_ARB_shader_bit_encoding, GL_EXT_shader_integer_mix, GL_ARB_texture_multisample, GL_AMD_seamless_cubemap_per_texture, GL_S3_s3tc, GL_KHR_context_flush_control, GL_KHR_parallel_shader_compile, GL_SGIS_texture_border_clamp, GL_ARB_point_parameters, GL_ARB_fragment_layer_viewport, GL_ARB_texture_cube_map_array, GL_ARB_program_interface_query, GL_ARB_vertex_attrib_64bit, GL_KHR_no_error, GL_NVX_gpu_memory_info, GL_ARB_ES3_compatibility, GL_EXT_texture_env_combine, GL_SUN_multi_draw_arrays, GL_MESA_pack_invert, GL_ATI_texture_env_combine3, GL_INGR_blend_func_separate, GL_ARB_texture_storage_multisample, GL_ARB_conservative_depth, GL_ARB_texture_compression
[2023.08.31 19:27:57] OpenGL: QOpenGLContext created, version: 4.4.
[2023.08.31 19:27:57] App Info: reading accounts info...
[2023.08.31 19:27:57] App Info: reading encrypted info...
[2023.08.31 19:27:57] App Info: reading map...
[2023.08.31 19:27:57] App Info: reading encrypted map...
[2023.08.31 19:27:57] App Info: reading encrypted user settings...
[2023.08.31 19:27:57] App Info: encrypted user settings read.
[2023.08.31 19:27:57] App Info: reading encrypted mtp data...
[2023.08.31 19:27:57] MTP Info: read keys, current: 5, to destroy: 0
[2023.08.31 19:27:57] Map read time: 2
[2023.08.31 19:27:57] App Info: reading encrypted mtp config...
[2023.08.31 19:27:58] App Info: reading map...
[2023.08.31 19:27:58] App Info: reading encrypted map...
[2023.08.31 19:27:58] App Info: reading encrypted user settings...
[2023.08.31 19:27:58] App Info: encrypted user settings read.
[2023.08.31 19:27:58] App Info: reading encrypted mtp data...
[2023.08.31 19:27:58] MTP Info: read keys, current: 5, to destroy: 0
[2023.08.31 19:27:58] Map read time: 1
[2023.08.31 19:27:58] App Info: reading encrypted mtp config...
[2023.08.31 19:27:58] App Info: reading map...
[2023.08.31 19:27:58] App Info: reading encrypted map...
[2023.08.31 19:27:58] App Info: reading encrypted user settings...
[2023.08.31 19:27:58] App Info: encrypted user settings read.
[2023.08.31 19:27:58] App Info: reading encrypted mtp data...
[2023.08.31 19:27:58] MTP Info: read keys, current: 4, to destroy: 0
[2023.08.31 19:27:58] Map read time: 4
[2023.08.31 19:27:58] App Info: reading encrypted mtp config...
[2023.08.31 19:27:58] Export Info: Destroy top bar by controller removal.
[2023.08.31 19:27:58] OpenGL: [TRUE] (Window)
[2023.08.31 19:27:58] Notification daemon product name: gnome-shell
[2023.08.31 19:27:58] Notification daemon vendor name: GNOME
[2023.08.31 19:27:58] Notification daemon version: 44.4
[2023.08.31 19:27:58] Notification daemon specification version: 1.2
[2023.08.31 19:27:58] Notification daemon capabilities: actions, body, body-markup, icon-static, persistence, sound
[2023.08.31 19:27:59] Message Info: bad message notification received (error_code 33) for msg_id = 7273524021631282696, seq_no = 52
[2023.08.31 19:27:59] Message Info: bad message notification received, msgId 7273524021631282696, error_code 33
[2023.08.31 19:27:59] Message Info: bad message notification received (error_code 33) for msg_id = 7273524021755262488, seq_no = 42
[2023.08.31 19:27:59] Message Info: bad message notification received, msgId 7273524021755262488, error_code 33
[2023.08.31 19:27:59] API Warning: not loaded minimal channel applied.
[2023.08.31 19:27:59] API Warning: not loaded minimal channel applied.
[2023.08.31 19:27:59] API Warning: not loaded minimal channel applied.
[2023.08.31 19:28:58] Getting DE, XDG_CURRENT_DESKTOP: 'GNOME'
[2023.08.31 19:28:58] Getting DE, XDG_SESSION_DESKTOP: 'gnome'
[2023.08.31 19:28:58] Getting DE, DESKTOP_SESSION: 'gnome'
[2023.08.31 19:28:58] Getting DE via WM: 'GNOME Shell'
[2023.08.31 19:28:58] Getting DE, GNOME_DESKTOP_SESSION_ID: ''
[2023.08.31 19:28:58] Getting DE, KDE_FULL_SESSION: ''
[2023.08.31 19:28:58] DE: Gnome
ilya-fedin commented 1 year ago

Apparently it's https://github.com/kcat/openal-soft/issues/892? I guess switching to pulseaudio would fix that.

nikelborm commented 1 year ago

I dont know much about low level sound stuff. I'm happy to run any commands you ask and provide output or any additional info about system.

I find it a bit strange that telegram simply does not see my earbuds. On first screenshot from telegram settings they are not even in the list of available devices.

ilya-fedin commented 1 year ago

First of I ask to check the issue with the official build from https://desktop.telegram.org

nikelborm commented 1 year ago

Same problem. Audio plays with speakers. Can't select earbuds.

Screenshot from 2023-08-31 21-16-30

ilya-fedin commented 1 year ago

Try to launch it like ALSOFT_DRIVER=pulse ./Telegram

ilya-fedin commented 1 year ago

Has this helped?

nikelborm commented 1 year ago

No. Sadly, it didn't help

ilya-fedin commented 1 year ago

Oops, it should be ALSOFT_DRIVERS=pulse ./Telegram

ilya-fedin commented 1 year ago

ps auxww | grep -e pipewire -e pulseaudio -e wireplumber would help to reveal whether you have both pipewire & pulseaudio running at the same time and conflict with each other. If it shows only two of the utils then everything is ok, if all three present then you have a conflict and both are managing your sound.

nikelborm commented 1 year ago

pactl list with connected earbuds DIFF pactl list with connected earbuds and playing sound from chrome https://www.diffchecker.com/Qx35bgn2/

Your command ALSOFT_DRIVERS=pulse ./Telegram helped. Now voice messages and video circles plays fine. And in call settings I can select both notebook speakers and earbuds.

THANK YOU VERY MUCH!

And looks like I have both pipewire and pulseaudio. To be honest I dont know how this happened. Because it is arch and I did most of installation by hands, it is probably my fault.

šŸ’€96% āžœ ps auxww | grep -e pipewire -e pulseaudio -e wireplumber
nikel       6455  0.0  0.1 148664 15540 ?        S<sl Aug31   0:05 /usr/bin/pipewire
nikel       6456  0.0  0.0  95812  9212 ?        Ssl  Aug31   0:00 /usr/bin/pipewire-media-session
nikel      36927  0.2  0.1 1964868 20340 ?       S<sl Aug31   2:10 /usr/bin/pulseaudio --daemonize=no --log-target=journal
nikel      80721  0.0  0.0   7372  2432 pts/0    S+   12:43   0:00 grep --color=auto -e pipewire -e pulseaudio -e wireplumber
ilya-fedin commented 1 year ago

Well, you have pipewire-media-session so it shouldn't manage audio unless you have pipewire-audio package installed (wireplumber makes pipewire always manage audio). I guess one of pacman -S pipewire-alsa pipewire-pulse wireplumber (switch to pipewire completely) / pacman -Rsnc pipewire-audio (switch to pulseaudio completely) should fix this.

nikelborm commented 1 year ago

Yes, I left only pipewire and deleted pulseadio. Now it works great even without ALSOFT_DRIVERS env var. Thank you again! You fixed a problem in my system that lived unnoticed a long time!)