Closed davideger closed 2 years ago
My guess is that both problems are the result of Apple breaking dlopen in Big Sur: 0b9e6d1ee0edd2884d36d8d149553ed332f1efc6.
Perhaps we need to apply the same fix to zeroconf
to fix the launcher backtrace.
Fixing gstreamer may be harder, as I have no idea how to fix the loading of modules.
Clearly it's not finding any.
I'm having the same issue on my MacBook Pro, Retina late 2013 (x86-64).
Please try one of the latest beta builds from https://xpra.org/beta/MacOS/
21be080b52599b04feb2b489180750b9159dc8e0 indicates that the meson build of gstreamer has switched to dylib
s, this may help the module loader.
Unless someone can lend me an M1 to test, I don't think there's much else I can do to move this forward. We'll have to hope that jralls@gtk-osx finds the time to get this working.
Hi Antoine,
Thanks for the updated attempt! After I install the latest beta,
Xpra-Python3-x86_64-4.3-r29437.pkg
https://xpra.org/beta/MacOS/Xpra-Python3-x86_64-4.3-r29437.pkg
, I get
this error when trying to run it on my M1 macbook air:
% Xpra start ***@***.***/ --start-child=xterm
xpra main error:
Traceback (most recent call last):
File
"/Applications/Xpra.app/Contents/Resources/lib/python/gi/importer.py", line
137, in load_module
introspection_module = get_introspection_module(namespace)
File "/Applications/Xpra.app/Contents/Resources/lib/python/gi/module.py",
line 257, in get_introspection_module
module = IntrospectionModule(namespace, version)
File "/Applications/Xpra.app/Contents/Resources/lib/python/gi/module.py",
line 109, in __init__
repository.require(namespace, version)
gi.RepositoryError: Typelib file for namespace 'HarfBuzz', version '0.0'
not found
gi.RepositoryError: Typelib file for namespace 'HarfBuzz', version '0.0'
Sorry about that, I had not tried this build on a clean system. The fix above should take care of this, and this time I have tested it properly.
Xpra runs again and I think we're getting closer. I get this output:
# on the macbook air m1
$ Xpra start ssh://eger@xxx.yy.zz.qq/ --start=firefox
(Xpra:7814): Gtk-CRITICAL **: 11:02:39.713: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
2021-07-18 11:02:39,809 Xpra GTK3 client version 4.3-r29455 (g3215efdba) 64-bit
2021-07-18 11:02:39,844 running on Mac OS X 10.16
2021-07-18 11:02:41,821 GStreamer version 1.18.4 for Python 3.9.5 64-bit
2021-07-18 11:02:41,839 created unix domain socket '/Users/eger/.xpra/clients/Davids-MacBook-Air.local-7814'
...
2021-07-18 11:02:47,009 audio playback using 'opus' audio codec
This all seems fine except no sound comes out of my speakers.
The following does work to make audio come out of my speakers, so I have some faith that gstreamer has gotten built correctly:
$ GST_PLUGIN_PATH=/Applications/Xpra.app/Contents/Resources/lib/gstreamer-1.0 /Applications/Xpra.app/Contents/Resources/bin/gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! osxaudiosink
With -d sound I get more output, though I'm not sure which part might be enlightening:
$ Xpra -d sound start ssh://eger@xxx.yy.zz.qq/ --start=firefox
2021-07-18 11:14:46,426 debug enabled for xpra.sound.common / ('sound',)
2021-07-18 11:14:46,426 debug enabled for xpra.sound.gstreamer_util / ('sound', 'gstreamer')
(Xpra:8699): Gtk-CRITICAL **: 11:14:46.776: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
2021-07-18 11:14:46,831 debug enabled for xpra.client.mixins.audio / ('client', 'sound')
2021-07-18 11:14:46,866 Xpra GTK3 client version 4.3-r29455 (g3215efdba) 64-bit
2021-07-18 11:14:46,899 running on Mac OS X 10.16
2021-07-18 11:14:48,308 debug enabled for xpra.sound.wrapper / ('sound',)
2021-07-18 11:14:48,309 query_sound() command=['/Applications/Xpra.app/Contents/Xpra_NoDock.app/Contents/Helpers/Xpra', '--windows=no', '--video-encoders=none', '--csc-modules=none', '--video-decoders=none', '--proxy-video-encoders=none', '_sound_query', '-d', 'sound'], env={'NIX_PROFILES': '/nix/var/nix/profiles/default /Users/eger/.nix-profile', 'PYENV_ROOT': '/Users/eger/.pyenv', 'TERM': 'xterm', 'SHELL': '/bin/zsh', 'TMPDIR': '/var/folders/b7/s6ht04c57xs4srrl6ffs52f40000gn/T/', 'WINDOWID': '6291468', 'GTK_IM_MODULE_FILE': '/Applications/Xpra.app/Contents/Resources/etc/gtk-2.0/gtk.immodules', 'LC_ALL': 'C', 'XTERM_SHELL': '/bin/zsh', 'USER': 'eger', 'COMMAND_MODE': 'unix2003', 'PANGO_SYSCONFDIR': '/Applications/Xpra.app/Contents/Resources/etc', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.YjVfyiUimw/Listeners', '__CF_USER_TEXT_ENCODING': '0x1F5:0x0:0x0', 'XDG_CONFIG_DIRS': '/Applications/Xpra.app/Contents/Resources/etc/xdg', 'PATH': '/Users/eger/.nix-profile/bin:/Users/eger/.nix-profile/bin:/Users/eger/.pyenv/shims:/Users/eger/.pyenv/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/eger/.nix-profile/bin:/Users/eger/devel//gtk-py-venv//bin:/Users/eger/devel/local/bin:/opt/X11/bin:/usr/sbin', 'GSETTINGS_SCHEMA_DIR': '/Applications/Xpra.app/Contents/Resources/share/glib-2.0/schemas/', 'PANGO_RC_FILE': '/Applications/Xpra.app/Contents/Resources/etc/pango/pangorc', '__CFBundleIdentifier': 'org.xquartz.X11', 'GDK_PIXBUF_MODULE_FILE': '/Applications/Xpra.app/Contents/Resources/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache', 'PWD': '/Users/eger', 'NIX_PATH': '/Users/eger/.nix-defexpr/channels:/Users/eger/.nix-defexpr/channels:/Users/eger/.nix-defexpr/channels', 'LANG': 'C', 'GST_BUNDLE_CONTENTS': '/Applications/Xpra.app/Contents', 'GTK_THEME': 'Adwaita', 'PYTHONHOME': '/Applications/Xpra.app/Contents/Resources', 'XPC_FLAGS': '0x0', 'NIX_SSL_CERT_FILE': '/Users/eger/.nix-profile/etc/ssl/certs/ca-bundle.crt', 'XTERM_LOCALE': 'C', 'XTERM_VERSION': 'XTerm(367)', 'XPC_SERVICE_NAME': '0', 'SHLVL': '3', 'HOME': '/Users/eger', 'DYLD_LIBRARY_PATH': '/Applications/Xpra.app/Contents/Resources/lib', 'GTK_PATH': '/Applications/Xpra.app/Contents/Resources', 'PYTHONPATH': '/Applications/Xpra.app/Contents/Resources/lib/pygtk/2.0:/Applications/Xpra.app/Contents/Resources/lib/python/:/Applications/Xpra.app/Contents/Resources/lib/python/site-packages.zip:/Applications/Xpra.app/Contents/Resources/lib/python/lib-dynload/:/Applications/Xpra.app/Contents/Resources/lib:', 'LOGNAME': 'eger', 'XDG_DATA_DIRS': '/Applications/Xpra.app/Contents/Resources/share', 'GTK_DATA_PREFIX': '/Applications/Xpra.app/Contents/Resources', 'GI_TYPELIB_PATH': '/Applications/Xpra.app/Contents/Resources/lib/girepository-1.0', 'DISPLAY': '/private/tmp/com.apple.launchd.G6PKtblCZI/org.xquartz:0', 'PANGO_LIBDIR': '/Applications/Xpra.app/Contents/Resources/lib', 'GTK_EXE_PREFIX': '/Applications/Xpra.app/Contents/Resources', 'X11_PREFS_DOMAIN': 'org.xquartz.X11', 'CHARSETALIASDIR': '/Applications/Xpra.app/Contents/Resources/lib', 'PYTHON': '/Applications/Xpra.app/Contents/Resources/bin/Xpra', 'GDK_SCALE': '1', 'GDK_DPI_SCALE': '1', 'GTK_CSD': '0', 'XPRA_SKIP_UI': '1', 'XPRA_FORCE_COLOR_LOG': '1'}, kwargs={'stderr': 2}
...
get_sink_plugins() no pulsesink: No module named 'xpra.sound.pulseaudio'
missing ['mad'] from ('mpegaudioparse ! mad', None)
missing ['id3v2mux'] from ('lamemp3enc', 'id3v2mux')
missing ['mpg123audiodec', 'id3demux'] from ('mpegaudioparse ! mpg123audiodec', 'id3demux')
missing ['mpg123audiodec'] from ('mpegaudioparse ! mpg123audiodec', None)
missing ['mad'] from ('mpegaudioparse ! mad', 'qtdemux')
avoiding opus+ogg on Mac OS X
missing ['wavpackenc'] from ('wavpackenc', None)
missing ['wavpackdec'] from ('wavpackparse ! wavpackdec', None)
initialized sound codecs:
- encoder/decoder (de)payloader stream-compressor
* opus :
- opusenc
- opusparse ! opusdec
* opus+ogg :
- opusdec oggdemux
* vorbis+mka :
- vorbisenc matroskamux
- vorbisdec matroskademux
* vorbis+ogg :
- vorbisenc oggmux
- vorbisparse ! vorbisdecoggdemux
* vorbis :
- vorbisenc
- - vorbisparse ! vorbisdec
* opus+mka :
- opusenc matroskamux
- opusdec matroskademux
* flac :
- flacenc
- flacparse ! flacdec
* mp3+mpeg4 :
- lamemp3enc mp4mux
get_sink_plugins() no pulsesink: No module named 'xpra.sound.pulseaudio'
get_default_sink_plugin() no pulsesink: No module named 'xpra.sound.pulseaudio'
2021-07-18 11:14:48,873 query_sound() process returned 0
...
2021-07-18 11:14:48,875 GStreamer version 1.18.4 for Python 3.9.5 64-bit
2021-07-18 11:14:48,875 sound_option_or_all('speaker-codec', [], ('opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac'))
2021-07-18 11:14:48,875 speaker-codec=opus, opus+ogg, vorbis+mka, vorbis+ogg, vorbis, flac+ogg, aac+mpeg4, wav+lz4, wav+lzo, wav, speex+ogg, vorbis, opus+mka, flac
2021-07-18 11:14:48,875 sound_option_or_all('microphone-codec', [], ('opus', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac', 'mp3+mpeg4'))
2021-07-18 11:14:48,875 microphone-codec=opus, vorbis+mka, vorbis+ogg, vorbis, mp3, flac+ogg, aac+mpeg4, wav+lz4, wav+lzo, wav, speex+ogg, vorbis, opus+mka, flac, mp3+mpeg4
2021-07-18 11:14:48,875 speaker: codecs=('opus', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac', 'mp3+mpeg4'), allowed=True, enabled=opus, opus+ogg, vorbis+mka, vorbis+ogg, vorbis, flac+ogg, aac+mpeg4, wav+lz4, wav+lzo, wav, speex+ogg, vorbis, opus+mka, flac
2021-07-18 11:14:48,876 microphone: codecs=('opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac'), allowed=True, enabled=opus, vorbis+mka, vorbis+ogg, vorbis, mp3, flac+ogg, aac+mpeg4, wav+lz4, wav+lzo, wav, speex+ogg, vorbis, opus+mka, flac, mp3+mpeg4, default device=None
2021-07-18 11:14:48,876 av-sync=True
...
2021-07-18 11:14:49,963 keyboard settings: layout=us
2021-07-18 11:14:49,968 desktop size is 1440x900:
2021-07-18 11:14:49,968 davids-macbook-air.local (286x179 mm - DPI: 128x128) workarea: 1440x815 at 0x25
2021-07-18 11:14:49,973 audio capabilities: {'codec-full-names': True, 'decoders': ['opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac'], 'encoders': ['opus', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac', 'mp3+mpeg4'], 'send': True, 'receive': True, 'sources': ['osxaudiosrc', 'oss4src', 'audiotestsrc'], 'source.default': ['osxaudiosrc'], 'sinks': ['osxaudiosink', 'oss4sink'], 'sink.default': ['osxaudiosink'], 'muxers': ['ogg', 'mka', 'mka', 'mpeg4'], 'demuxers': ['ogg', 'mka', 'mka', 'mpeg4'], 'gst.version': ['1', '18', '4', '0'], 'pygst.version': ['3', '40', '1'], 'plugins': ['3gppmux', 'aacparse', 'ac3parse', 'amrparse', 'appsink', 'appsrc', 'audioamplify', 'audiobuffersplit', 'audiochannelmix', 'audiochebband', 'audiocheblimit', 'audioconvert', 'audiodynamic', 'audioecho', 'audiofirfilter', 'audioiirfilter', 'audiointerleave', 'audioinvert', 'audiokaraoke', 'audiolatency', 'audiomixer', 'audiomixmatrix', 'audiopanorama', 'audiorate', 'audioresample', 'audiotestsrc', 'audiowsincband', 'audiowsinclimit', 'bin', 'capsfilter', 'clocksync', 'concat', 'dataurisrc', 'dcaparse', 'downloadbuffer', 'faac', 'faad', 'fakesink', 'fakesrc', 'fdsink', 'fdsrc', 'filesink', 'filesrc', 'flacdec', 'flacenc', 'flacparse', 'flactag', 'funnel', 'gdpdepay', 'gdppay', 'identity', 'input-selector', 'ismlmux', 'lamemp3enc', 'liveadder', 'matroskademux', 'matroskamux', 'matroskaparse', 'mj2mux', 'mp4mux', 'mpegaudioparse', 'multiqueue', 'oggaviparse', 'oggdemux', 'oggmux', 'oggparse', 'ogmaudioparse', 'ogmtextparse', 'ogmvideoparse', 'opusdec', 'opusenc', 'opusparse', 'oss4sink', 'oss4src', 'osxaudiosink', 'osxaudiosrc', 'output-selector', 'pipeline', 'qtdemux', 'qtmoovrecover', 'qtmux', 'queue', 'queue2', 'rtpxqtdepay', 'sbcparse', 'scaletempo', 'spacescope', 'spectrascope', 'speexdec', 'speexenc', 'stereo', 'streamiddemux', 'synaescope', 'tee', 'typefind', 'valve', 'volume', 'vorbisdec', 'vorbisenc', 'vorbisparse', 'vorbistag', 'wavenc', 'wavescope', 'wavpackparse', 'wavparse', 'webmmux'], 'python.version': ['3', '9', '5'], 'python.bits': b'64', 'bundle-metadata': ['True']}
(Xpra:8699): Gtk-WARNING **: 11:14:49.985: Theme file for hicolor has no name
(Xpra:8699): Gtk-WARNING **: 11:14:49.985: Theme file for hicolor has no directories
2021-07-18 11:14:51,108 SSH: 'Actual display used: :16'
2021-07-18 11:14:51,108 SSH: 'Actual log file name is now: /run/user/1000/xpra/:16.log'
2021-07-18 11:14:52,265 pulseaudio id=1000@a0942c4a4def499cb628e2eb899814e1/86784, server={a0942c4a4def499cb628e2eb899814e1}unix:/run/user/1000/xpra/pulse-16/pulse/native, sound decoders=opus, opus+ogg, vorbis+mka, vorbis+ogg, vorbis, mp3, mp3+id3v2, flac+ogg, aac+mpeg4, wav+lz4, wav, wavpack, speex+ogg, vorbis, opus+mka, flac, sound encoders=opus, opus+ogg, vorbis+mka, vorbis+ogg, vorbis, mp3, mp3+id3v2, flac+ogg, wav+lz4, wav, wavpack, speex+ogg, vorbis, opus+mka, flac, mp3+mpeg4, receive=True, send=True
2021-07-18 11:14:52,265 start_receiving_sound() sound sink=None
2021-07-18 11:14:52,266 get_matching_codecs(('opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'flac+ogg', 'aac+mpeg4', 'wav+lz4', 'wav+lzo', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac'), ('opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'mp3', 'mp3+id3v2', 'flac+ogg', 'wav+lz4', 'wav', 'wavpack', 'speex+ogg', 'vorbis', 'opus+mka', 'flac', 'mp3+mpeg4'))=('opus', 'opus+ogg', 'vorbis+mka', 'vorbis+ogg', 'vorbis', 'flac+ogg', 'wav+lz4', 'wav', 'speex+ogg', 'vorbis', 'opus+mka', 'flac')
2021-07-18 11:14:52,267 start_receiving_sound() matching codecs: opus, opus+ogg, vorbis+mka, vorbis+ogg, vorbis, flac+ogg, wav+lz4, wav, speex+ogg, vorbis, opus+mka, flac
2021-07-18 11:14:52,267 start_sound_sink(opus)
2021-07-18 11:14:52,268 starting opus sound sink
2021-07-18 11:14:52,268 start_receiving_sound(opus)
2021-07-18 11:14:52,289 start() audio playback subprocess(['/Applications/Xpra.app/Contents/Xpra_NoDock.app/Contents/Helpers/Xpra', '--windows=no', '--video-encoders=none', '--csc-modules=none', '--video-decoders=none', '--proxy-video-encoders=none', '_sound_play', '-', '-', '', '', 'opus', '', '1.0', '-d', 'sound'])=8795
2021-07-18 11:14:52,292 opus sound sink started
2021-07-18 11:14:52,292 start_receiving_sound() done, speaker_enabled=True
Almost there. It's trying to use opus
which should be fine.
Can you run the client with -d gstreamer
? (preferably in attach
mode with an existing session)
I want to see what pipeline it is using.
Debug shows a lot of output that looks like it's pumping data through, just nothing comes out of my speakers. This might be the relevant bit of log. Volume says zero but there were log messages later about incrementing it upwards (see fullish log):
2021-07-19 07:25:49,205 audio playback pipeline elements=['appsrc name=src emit-signals=0 block=0 is-live=0 stream-type=0 format=4', 'opusparse ! opusdec', 'audioconveraudioresample', 'queue name=queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=450000000 leaky=2', 'volume name=volume volume=0', 'osxaudiosinc=False async=True qos=True name="sink"']
2021-07-19 07:25:49,205 audio playback pipeline=appsrc name=src emit-signals=0 block=0 is-live=0 stream-type=0 format=4 ! opusparse ! opusdec ! audioconvert ! audioresa! queue name=queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=450000000 leaky=2 ! volume name=volume volume=0 ! osxaudiosink sync=False asyne qos=True name="sink"
Truncated but otherwise full log below:
% Xpra -d gstreamer start ssh://eger@yyy.zz.ww.xx/ --start=firefox
2021-07-19 07:25:43,083 debug enabled for xpra.sound.gstreamer_util / ('sound', 'gstreamer')
(Xpra:22641): Gtk-CRITICAL **: 07:25:43.409: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
2021-07-19 07:25:43,433 Xpra GTK3 client version 4.3-r29455 (g3215efdba) 64-bit
2021-07-19 07:25:43,466 running on Mac OS X 10.16
debug enabled for xpra.sound.gstreamer_util / ('sound', 'gstreamer')
OSX: GST_BUNDLE_CONTENTS=/Applications/Xpra.app/Contents
GStreamer 1.x environment: {'PATH': '/Users/eger/.nix-profile/bin:/Users/eger/.pyenv/shims:/Users/eger/.pyenv/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/eger/.nix-profile/bin:/Users/eger/devel//gtk-py-venv//bin:/Users/eger/devel/local/bin/sbin', 'GST_BUNDLE_CONTENTS': '/Applications/Xpra.app/Contents', 'GI_TYPELIB_PATH': '/Applications/Xpra.app/Contents/Resources/lib/girepository-1.0', 'GST_PLUGIN_PATH'pplications/Xpra.app/Contents/Resources/lib/gstreamer-1.0', 'GST_PLUGIN_SCANNER': '/Applications/Xpra.app/Contents/Resources/bin/gst-plugin-scanner-1.0'}
GStreamer 1.x sys.path=, /Applications/Xpra.app/Contents/Resources/lib/pygtk/2.0, /Applications/Xpra.app/Contents/Resources/lib/python, /Applications/Xpra.app/Contents/rces/lib/python/site-packages.zip, /Applications/Xpra.app/Contents/Resources/lib/python/lib-dynload, /Applications/Xpra.app/Contents/Resources/lib, /Users/eger, /Applics/Xpra.app/Contents/Resources/lib/python39.zip, /Applications/Xpra.app/Contents/Resources/lib/python3.9, /Applications/Xpra.app/Contents/Resources/lib/python3.9/lib-dyn /Applications/Xpra.app/Contents/Resources/lib/python/lib/python3.9/site-packages.zip, /Applications/Xpra.app/Contents/Resources/lib/python/lib/python3.9/site-packages
import gi
Gst=<IntrospectionModule 'Gst' from '/Applications/Xpra.app/Contents/Resources/lib/girepository-1.0/Gst-1.0.typelib'>
found the following plugins: ['3gppmux', 'aacparse', 'ac3parse', 'amrparse', 'appsink', 'appsrc', 'audioamplify', 'audiobuffersplit', 'audiochannelmix', 'audiochebband'diocheblimit', 'audioconvert', 'audiodynamic', 'audioecho', 'audiofirfilter', 'audioiirfilter', 'audiointerleave', 'audioinvert', 'audiokaraoke', 'audiolatency', 'audio', 'audiomixmatrix', 'audiopanorama', 'audiorate', 'audioresample', 'audiotestsrc', 'audiowsincband', 'audiowsinclimit', 'bin', 'capsfilter', 'clocksync', 'concat', 'dasrc', 'dcaparse', 'downloadbuffer', 'faac', 'faad', 'fakesink', 'fakesrc', 'fdsink', 'fdsrc', 'filesink', 'filesrc', 'flacdec', 'flacenc', 'flacparse', 'flactag', 'funn'gdpdepay', 'gdppay', 'identity', 'input-selector', 'ismlmux', 'lamemp3enc', 'liveadder', 'matroskademux', 'matroskamux', 'matroskaparse', 'mj2mux', 'mp4mux', 'mpegaudie', 'multiqueue', 'oggaviparse', 'oggdemux', 'oggmux', 'oggparse', 'ogmaudioparse', 'ogmtextparse', 'ogmvideoparse', 'opusdec', 'opusenc', 'opusparse', 'oss4sink', 'oss, 'osxaudiosink', 'osxaudiosrc', 'output-selector', 'pipeline', 'qtdemux', 'qtmoovrecover', 'qtmux', 'queue', 'queue2', 'rtpxqtdepay', 'sbcparse', 'scaletempo', 'spaces, 'spectrascope', 'speexdec', 'speexenc', 'stereo', 'streamiddemux', 'synaescope', 'tee', 'typefind', 'valve', 'volume', 'vorbisdec', 'vorbisenc', 'vorbisparse', 'vorbi, 'wavenc', 'wavescope', 'wavpackparse', 'wavparse', 'webmmux']
get_sink_plugins() no pulsesink: No module named 'xpra.sound.pulseaudio'
missing ['mad'] from ('mpegaudioparse ! mad', None)
missing ['id3v2mux'] from ('lamemp3enc', 'id3v2mux')
missing ['mpg123audiodec', 'id3demux'] from ('mpegaudioparse ! mpg123audiodec', 'id3demux')
missing ['mpg123audiodec'] from ('mpegaudioparse ! mpg123audiodec', None)
missing ['mad'] from ('mpegaudioparse ! mad', 'qtdemux')
avoiding opus+ogg on Mac OS X
missing ['wavpackenc'] from ('wavpackenc', None)
missing ['wavpackdec'] from ('wavpackparse ! wavpackdec', None)
initialized sound codecs:
- encoder/decoder (de)payloader stream-compressor
* opus :
- opusenc
- opusparse ! opusdec
* opus+ogg :
- opusdec oggdemux
-
* vorbis+mka :
- vorbisenc matroskamux
- vorbisdec matroskademux
* vorbis+ogg :
- vorbisenc oggmux
- vorbisparse ! vorbisdecoggdemux
* vorbis :
- vorbisenc
- vorbisparse ! vorbisdec
* mp3 :
- lamemp3enc
* flac+ogg :
- flacenc oggmux
- flacparse ! flacdec oggdemux
* aac+mpeg4 :
- faac mp4mux
- faad qtdemux
* wav+lz4 :
- wavenc lz4
- wavparse lz4
* wav+lzo :
- wavenc lzo
- wavparse lzo
* wav :
- wavenc
- wavparse
* speex+ogg :
- speexenc oggmux
- speexdec oggdemux
* vorbis :
- vorbisenc
- vorbisparse ! vorbisdec
* opus+mka :
- opusenc matroskamux
- opusdec matroskademux
* flac :
- flacenc
- flacparse ! flacdec
* mp3+mpeg4 :
- lamemp3enc mp4mux
get_sink_plugins() no pulsesink: No module named 'xpra.sound.pulseaudio'
get_default_sink_plugin() no pulsesink: No module named 'xpra.sound.pulseaudio'
2021-07-19 07:25:45,156 GStreamer version 1.18.4 for Python 3.9.5 64-bit
2021-07-19 07:25:45,171 created unix domain socket '/Users/eger/.xpra/clients/Davids-MacBook-Air.local-22641'
2021-07-19 07:25:45,252 OpenGL_accelerate module loaded
2021-07-19 07:25:45,266 Using accelerated ArrayDatatype
2021-07-19 07:25:45,591 OpenGL enabled with Apple M1
2021-07-19 07:25:45,617 Connected (version 2.0, client OpenSSH_8.4p1)
2021-07-19 07:25:46,185 Authentication (publickey) successful!
2021-07-19 07:25:46,390 SSH: "2021-07-19 07:25:46,378 setproctitle not installed: No module named 'setproctitle'"
2021-07-19 07:25:46,391 SSH: "debug enabled for xpra.sound.gstreamer_util / ('sound', 'gstreamer')"
2021-07-19 07:25:46,433 SSH: "2021-07-19 07:25:46,430 setproctitle not installed: No module named 'setproctitle'"
2021-07-19 07:25:46,433 SSH: "2021-07-19 07:25:46,430 debug enabled for xpra.sound.gstreamer_util / ('sound', 'gstreamer')"
2021-07-19 07:25:46,433 SSH: 'Entering daemon mode; any further errors will be reported to:'
2021-07-19 07:25:46,433 SSH: ' /run/user/1000/xpra/S185636.log'
(Xpra:22641): Gtk-CRITICAL **: 07:25:46.436: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
2021-07-19 07:25:46,461 keyboard settings: layout=us
2021-07-19 07:25:46,466 desktop size is 1440x900:
2021-07-19 07:25:46,466 davids-macbook-air.local (286x179 mm - DPI: 128x128) workarea: 1440x807 at 0x25
(Xpra:22641): Gtk-WARNING **: 07:25:46.480: Theme file for hicolor has no name
(Xpra:22641): Gtk-WARNING **: 07:25:46.480: Theme file for hicolor has no directories
2021-07-19 07:25:47,522 SSH: 'Actual display used: :24'
2021-07-19 07:25:47,523 SSH: 'Actual log file name is now: /run/user/1000/xpra/:24.log'
2021-07-19 07:25:48,787 enabled remote logging
2021-07-19 07:25:48,788 Xpra X11 seamless server version 4.3-r29437 64-bit
2021-07-19 07:25:48,788 running on Linux Ubuntu 21.04 hirsute
2021-07-19 07:25:49,136 running
2021-07-19 07:25:49,156 audio playback debug enabled for xpra.sound.gstreamer_util / ('sound', 'gstreamer')
2021-07-19 07:25:49,193 audio playback OSX: GST_BUNDLE_CONTENTS=/Applications/Xpra.app/Contents
2021-07-19 07:25:49,193 audio playback GStreamer 1.x environment: {'PATH': '/Users/eger/.nix-profile/bin:/Users/eger/.pyenv/shims:/Users/eger/.pyenv/bin:/Library/FramewPython.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/eger/.nix-profile/bin:/Users/eger/devel//gtk-pv//bin:/Users/eger/devel/local/bin:/usr/sbin', 'GST_BUNDLE_CONTENTS': '/Applications/Xpra.app/Contents', 'GI_TYPELIB_PATH': '/Applications/Xpra.app/Contents/Resources/lrepository-1.0', 'GST_PLUGIN_PATH': '/Applications/Xpra.app/Contents/Resources/lib/gstreamer-1.0', 'GST_PLUGIN_SCANNER': '/Applications/Xpra.app/Contents/Resources/bin/lugin-scanner-1.0'}
2021-07-19 07:25:49,193 audio playback GStreamer 1.x sys.path=, /Applications/Xpra.app/Contents/Resources/lib/pygtk/2.0, /Applications/Xpra.app/Contents/Resources/lib/p, /Applications/Xpra.app/Contents/Resources/lib/python/site-packages.zip, /Applications/Xpra.app/Contents/Resources/lib/python/lib-dynload, /Applications/Xpra.app/Conteesources/lib, /Users/eger, /Applications/Xpra.app/Contents/Resources/lib/python39.zip, /Applications/Xpra.app/Contents/Resources/lib/python3.9, /Applications/Xpra.app/Cts/Resources/lib/python3.9/lib-dynload, /Applications/Xpra.app/Contents/Resources/lib/python/lib/python3.9/site-packages.zip, /Applications/Xpra.app/Contents/Resources/ython/lib/python3.9/site-packages
2021-07-19 07:25:49,193 audio playback import gi
2021-07-19 07:25:49,196 audio playback Gst=<IntrospectionModule 'Gst' from '/Applications/Xpra.app/Contents/Resources/lib/girepository-1.0/Gst-1.0.typelib'>
2021-07-19 07:25:49,201 audio playback debug enabled for xpra.sound.sound_pipeline / ('gstreamer',)
2021-07-19 07:25:49,202 audio playback debug enabled for xpra.sound.sink / ('gstreamer',)
2021-07-19 07:25:49,202 audio playback get_sink_plugins() no pulsesink: No module named 'xpra.sound.pulseaudio'
2021-07-19 07:25:49,202 audio playback get_default_sink_plugin() no pulsesink: No module named 'xpra.sound.pulseaudio'
2021-07-19 07:25:49,203 audio playback found the following plugins: ['3gppmux', 'aacparse', 'ac3parse', 'amrparse', 'appsink', 'appsrc', 'audioamplify', 'audiobufferspl'audiochannelmix', 'audiochebband', 'audiocheblimit', 'audioconvert', 'audiodynamic', 'audioecho', 'audiofirfilter', 'audioiirfilter', 'audiointerleave', 'audioinvert',iokaraoke', 'audiolatency', 'audiomixer', 'audiomixmatrix', 'audiopanorama', 'audiorate', 'audioresample', 'audiotestsrc', 'audiowsincband', 'audiowsinclimit', 'bin', 'ilter', 'clocksync', 'concat', 'dataurisrc', 'dcaparse', 'downloadbuffer', 'faac', 'faad', 'fakesink', 'fakesrc', 'fdsink', 'fdsrc', 'filesink', 'filesrc', 'flacdec', 'nc', 'flacparse', 'flactag', 'funnel', 'gdpdepay', 'gdppay', 'identity', 'input-selector', 'ismlmux', 'lamemp3enc', 'liveadder', 'matroskademux', 'matroskamux', 'matrosse', 'mj2mux', 'mp4mux', 'mpegaudioparse', 'multiqueue', 'oggaviparse', 'oggdemux', 'oggmux', 'oggparse', 'ogmaudioparse', 'ogmtextparse', 'ogmvideoparse', 'opusdec', 'nc', 'opusparse', 'oss4sink', 'oss4src', 'osxaudiosink', 'osxaudiosrc', 'output-selector', 'pipeline', 'qtdemux', 'qtmoovrecover', 'qtmux', 'queue', 'queue2', 'rtpxqtde 'sbcparse', 'scaletempo', 'spacescope', 'spectrascope', 'speexdec', 'speexenc', 'stereo', 'streamiddemux', 'synaescope', 'tee', 'typefind', 'valve', 'volume', 'vorbisd'vorbisenc', 'vorbisparse', 'vorbistag', 'wavenc', 'wavescope', 'wavpackparse', 'wavparse', 'webmmux']
2021-07-19 07:25:49,203 audio playback get_sink_plugins() no pulsesink: No module named 'xpra.sound.pulseaudio'
2021-07-19 07:25:49,203 audio playback missing ['mad'] from ('mpegaudioparse ! mad', None)
2021-07-19 07:25:49,203 audio playback missing ['id3v2mux'] from ('lamemp3enc', 'id3v2mux')
2021-07-19 07:25:49,203 audio playback missing ['mpg123audiodec', 'id3demux'] from ('mpegaudioparse ! mpg123audiodec', 'id3demux')
2021-07-19 07:25:49,203 audio playback missing ['mpg123audiodec'] from ('mpegaudioparse ! mpg123audiodec', None)
2021-07-19 07:25:49,203 audio playback missing ['mad'] from ('mpegaudioparse ! mad', 'qtdemux')
2021-07-19 07:25:49,203 audio playback avoiding opus+ogg on Mac OS X
2021-07-19 07:25:49,203 audio playback missing ['wavpackenc'] from ('wavpackenc', None)
2021-07-19 07:25:49,203 audio playback missing ['wavpackdec'] from ('wavpackparse ! wavpackdec', None)
2021-07-19 07:25:49,203 audio playback initialized sound codecs:
2021-07-19 07:25:49,203 audio playback - encoder/decoder (de)payloader stream-compressor
2021-07-19 07:25:49,203 audio playback * opus :
2021-07-19 07:25:49,203 audio playback - opusenc
2021-07-19 07:25:49,203 audio playback - opusparse ! opusdec
2021-07-19 07:25:49,203 audio playback * opus+ogg :
2021-07-19 07:25:49,203 audio playback - opusdec oggdemux
2021-07-19 07:25:49,203 audio playback * vorbis+mka :
2021-07-19 07:25:49,203 audio playback - vorbisenc matroskamux
2021-07-19 07:25:49,203 audio playback - vorbisdec matroskademux
2021-07-19 07:25:49,203 audio playback * vorbis+ogg :
2021-07-19 07:25:49,203 audio playback - vorbisenc oggmux
2021-07-19 07:25:49,203 audio playback - vorbisparse ! vorbisdecoggdemux
2021-07-19 07:25:49,203 audio playback * vorbis :
2021-07-19 07:25:49,203 audio playback - vorbisenc
2021-07-19 07:25:49,204 audio playback - vorbisparse ! vorbisdec
2021-07-19 07:25:49,204 audio playback * mp3 :
2021-07-19 07:25:49,204 audio playback - lamemp3enc
2021-07-19 07:25:49,204 audio playback * flac+ogg :
2021-07-19 07:25:49,204 audio playback - flacenc oggmux
2021-07-19 07:25:49,204 audio playback - flacparse ! flacdec oggdemux
2021-07-19 07:25:49,204 audio playback * aac+mpeg4 :
2021-07-19 07:25:49,204 audio playback - faac mp4mux
2021-07-19 07:25:49,204 audio playback - faad qtdemux
2021-07-19 07:25:49,204 audio playback * wav+lz4 :
2021-07-19 07:25:49,204 audio playback - wavenc lz4
2021-07-19 07:25:49,204 audio playback - wavparse lz4
2021-07-19 07:25:49,204 audio playback * wav+lzo :
2021-07-19 07:25:49,204 audio playback - wavenc lzo
2021-07-19 07:25:49,204 audio playback - wavparse lzo
2021-07-19 07:25:49,204 audio playback * wav :
2021-07-19 07:25:49,204 audio playback - wavenc
2021-07-19 07:25:49,204 audio playback - wavparse
2021-07-19 07:25:49,204 audio playback * speex+ogg :
2021-07-19 07:25:49,204 audio playback - speexenc oggmux
2021-07-19 07:25:49,204 audio playback - speexdec oggdemux
2021-07-19 07:25:49,204 audio playback * vorbis :
2021-07-19 07:25:49,204 audio playback - vorbisenc
2021-07-19 07:25:49,204 audio playback - vorbisparse ! vorbisdec
2021-07-19 07:25:49,204 audio playback * opus+mka :
2021-07-19 07:25:49,204 audio playback - opusenc matroskamux
2021-07-19 07:25:49,205 audio playback - opusdec matroskademux
2021-07-19 07:25:49,205 audio playback * flac :
2021-07-19 07:25:49,205 audio playback - flacenc
2021-07-19 07:25:49,205 audio playback - flacparse ! flacdec
2021-07-19 07:25:49,205 audio playback * mp3+mpeg4 :
2021-07-19 07:25:49,205 audio playback - lamemp3enc mp4mux
2021-07-19 07:25:49,205 audio playback pipeline elements=['appsrc name=src emit-signals=0 block=0 is-live=0 stream-type=0 format=4', 'opusparse ! opusdec', 'audioconveraudioresample', 'queue name=queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=450000000 leaky=2', 'volume name=volume volume=0', 'osxaudiosinc=False async=True qos=True name="sink"']
2021-07-19 07:25:49,205 audio playback pipeline=appsrc name=src emit-signals=0 block=0 is-live=0 stream-type=0 format=4 ! opusparse ! opusdec ! audioconvert ! audioresa! queue name=queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=450000000 leaky=2 ! volume name=volume volume=0 ! osxaudiosink sync=False asyne qos=True name="sink"
2021-07-19 07:25:49,261 audio playback ignoring underrun during startup
2021-07-19 07:25:49,261 audio playback queue_running
2021-07-19 07:25:49,262 audio playback queue_pushing
2021-07-19 07:25:49,262 audio playback ignoring underrun during startup
2021-07-19 07:25:49,262 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae05a0)>
2021-07-19 07:25:49,262 audio playback state-changed on <__gi__.GstOsxAudioSink object at 0x117a784c0 (GstOsxAudioSink at 0x7fe57eaa3300)>: READY
2021-07-19 07:25:49,262 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae0620)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstVolume object at 0x117a75880 (GstVolume at 0x7fe57eaa20d0)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae06a0)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstQueue object at 0x117a78180 (GstQueue at 0x7fe57f036090)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae0720)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstAudioResample object at 0x117a67f40 (GstAudioResample at 0x7fe57f010ed0)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2000)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstAudioConvert object at 0x117a67f80 (GstAudioConvert at 0x7fe57ead12d0)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2080)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstOpusDec object at 0x118c6fa40 (GstOpusDec at 0x7fe57ead0ae0)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2100)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstOpusParse object at 0x118c6fc80 (GstOpusParse at 0x7fe57f008860)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2180)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstAppSrc object at 0x117a75f00 (GstAppSrc at 0x7fe57eacf290)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2200)>
2021-07-19 07:25:49,263 audio playback state-changed on <Gst.Pipeline object at 0x117a5dd00 (GstPipeline at 0x7fe57eadc1f0)>: READY
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2380)>
2021-07-19 07:25:49,263 audio playback state-changed on <__gi__.GstVolume object at 0x117a75880 (GstVolume at 0x7fe57eaa20d0)>: PAUSED
2021-07-19 07:25:49,263 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2480)>
2021-07-19 07:25:49,263 audio playback stream status: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2480)>
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2500)>
2021-07-19 07:25:49,264 audio playback state-changed on <__gi__.GstQueue object at 0x117a78180 (GstQueue at 0x7fe57f036090)>: PAUSED
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eaed840)>
2021-07-19 07:25:49,264 audio playback stream status: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eaed840)>
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2580)>
2021-07-19 07:25:49,264 audio playback state-changed on <__gi__.GstAudioResample object at 0x117a75240 (GstAudioResample at 0x7fe57f010ed0)>: PAUSED
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2600)>
2021-07-19 07:25:49,264 audio playback state-changed on <__gi__.GstAudioConvert object at 0x117a5dcc0 (GstAudioConvert at 0x7fe57ead12d0)>: PAUSED
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2680)>
2021-07-19 07:25:49,264 audio playback state-changed on <__gi__.GstOpusDec object at 0x117a75240 (GstOpusDec at 0x7fe57ead0ae0)>: PAUSED
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eae2280)>
2021-07-19 07:25:49,264 audio playback state-changed on <__gi__.GstOpusParse object at 0x117a5dcc0 (GstOpusParse at 0x7fe57f008860)>: PAUSED
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eaede40)>
2021-07-19 07:25:49,264 audio playback stream status: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eaede40)>
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eaedec0)>
2021-07-19 07:25:49,264 audio playback state-changed on <__gi__.GstAppSrc object at 0x117a75f00 (GstAppSrc at 0x7fe57eacf290)>: PAUSED
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57f038480)>
2021-07-19 07:25:49,264 audio playback stream status: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57f038480)>
2021-07-19 07:25:49,264 audio playback on_message: <Gst.Message object at 0x117a7f280 (GstMessage at 0x7fe57eaed940)>
2021-07-19 07:25:49,770 audio playback using 'opus' audio codec
2021-07-19 07:25:50,307 audio playback set_min_level mtt=150, max-size-time=450, lrange=0, mrange=150 (UNDERRUN_MIN_LEVEL=150)
2021-07-19 07:25:50,307 audio playback set_min_level min-threshold-time=150
2021-07-19 07:25:50,309 audio playback add_data: refill=True, level=0, min=150
2021-07-19 07:25:50,309 audio playback add_data: refill=True, level=0, min=150
2021-07-19 07:25:50,310 audio playback add_data: refill=True, level=0, min=150
2021-07-19 07:25:50,310 audio playback add_data: refill=True, level=0, min=150
2021-07-19 07:25:50,310 audio playback add_data: refill=True, level=0, min=150
2021-07-19 07:25:50,311 audio playback add_data: refill=True, level=0, min=150
2021-07-19 07:25:50,311 audio playback add_data: refill=True, level=0, min=150
2021-07-19 07:25:50,327 audio playback queue_running
2021-07-19 07:25:50,327 audio playback queue_pushing
2021-07-19 07:25:50,336 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe57eaed9c0)>
2021-07-19 07:25:50,351 audio playback state-changed on <__gi__.GstOsxAudioSink object at 0x117a784c0 (GstOsxAudioSink at 0x7fe57eaa3300)>: PAUSED
2021-07-19 07:25:50,351 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe57eaedbc0)>
2021-07-19 07:25:50,351 audio playback state-changed on <Gst.Pipeline object at 0x117a5dd00 (GstPipeline at 0x7fe57eadc1f0)>: PAUSED
2021-07-19 07:25:50,351 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe57eaedb40)>
2021-07-19 07:25:50,351 audio playback <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe57eaedb40)>
2021-07-19 07:25:50,351 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008b10)>
2021-07-19 07:25:50,356 audio playback <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008b10)>
2021-07-19 07:25:50,356 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008b90)>
2021-07-19 07:25:50,356 audio playback state-changed on <__gi__.GstOsxAudioSink object at 0x117a784c0 (GstOsxAudioSink at 0x7fe57eaa3300)>: PLAYING
2021-07-19 07:25:50,356 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008c10)>
2021-07-19 07:25:50,356 audio playback state-changed on <__gi__.GstVolume object at 0x117a75880 (GstVolume at 0x7fe57eaa20d0)>: PLAYING
2021-07-19 07:25:50,356 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008c90)>
2021-07-19 07:25:50,356 audio playback state-changed on <__gi__.GstQueue object at 0x117a78180 (GstQueue at 0x7fe57f036090)>: PLAYING
2021-07-19 07:25:50,356 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008d10)>
2021-07-19 07:25:50,356 audio playback state-changed on <__gi__.GstAudioResample object at 0x118c7d7c0 (GstAudioResample at 0x7fe57f010ed0)>: PLAYING
2021-07-19 07:25:50,356 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008d90)>
2021-07-19 07:25:50,356 audio playback state-changed on <__gi__.GstAudioConvert object at 0x118c7cb80 (GstAudioConvert at 0x7fe57ead12d0)>: PLAYING
2021-07-19 07:25:50,356 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008e10)>
2021-07-19 07:25:50,356 audio playback state-changed on <__gi__.GstOpusDec object at 0x118c7d340 (GstOpusDec at 0x7fe57ead0ae0)>: PLAYING
2021-07-19 07:25:50,357 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008e90)>
2021-07-19 07:25:50,357 audio playback state-changed on <__gi__.GstOpusParse object at 0x118c7cb80 (GstOpusParse at 0x7fe57f008860)>: PLAYING
2021-07-19 07:25:50,357 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe588008f10)>
2021-07-19 07:25:50,357 audio playback state-changed on <__gi__.GstAppSrc object at 0x117a75f00 (GstAppSrc at 0x7fe57eacf290)>: PLAYING
2021-07-19 07:25:50,357 audio playback on_message: <Gst.Message object at 0x117a7f880 (GstMessage at 0x7fe57eb23000)>
2021-07-19 07:25:50,357 audio playback state-changed on <Gst.Pipeline object at 0x117a5dd00 (GstPipeline at 0x7fe57eadc1f0)>: PLAYING
2021-07-19 07:25:50,365 audio playback adjust_volume current volume=0.00, change=0.07
2021-07-19 07:25:50,381 audio playback ignoring underrun during startup
2021-07-19 07:25:50,385 audio playback queue_running
2021-07-19 07:25:50,385 audio playback queue_pushing
2021-07-19 07:25:50,386 audio playback ignoring underrun during startup
2021-07-19 07:25:50,438 audio playback queue_running
2021-07-19 07:25:50,438 audio playback queue_pushing
2021-07-19 07:25:50,438 audio playback ignoring underrun during startup
2021-07-19 07:25:50,442 audio playback queue_running
2021-07-19 07:25:50,442 audio playback queue_pushing
2021-07-19 07:25:50,442 audio playback ignoring underrun during startup
2021-07-19 07:25:50,444 audio playback queue_running
2021-07-19 07:25:50,445 audio playback queue_pushing
2021-07-19 07:25:50,445 audio playback ignoring underrun during startup
2021-07-19 07:25:50,465 audio playback adjust_volume current volume=0.07, change=0.06
2021-07-19 07:25:50,466 audio playback queue_running
2021-07-19 07:25:50,466 audio playback queue_pushing
2021-07-19 07:25:50,466 audio playback ignoring underrun during startup
2021-07-19 07:25:50,485 audio playback queue_running
2021-07-19 07:25:50,485 audio playback queue_pushing
2021-07-19 07:25:50,485 audio playback ignoring underrun during startup
2021-07-19 07:25:50,505 audio playback queue_running
2021-07-19 07:25:50,505 audio playback queue_pushing
2021-07-19 07:25:50,505 audio playback ignoring underrun during startup
2021-07-19 07:25:50,525 audio playback queue_running
2021-07-19 07:25:50,525 audio playback queue_pushing
2021-07-19 07:25:50,525 audio playback ignoring underrun during startup
2021-07-19 07:25:50,545 audio playback queue_running
2021-07-19 07:25:50,545 audio playback queue_pushing
2021-07-19 07:25:50,545 audio playback ignoring underrun during startup
2021-07-19 07:25:50,571 audio playback adjust_volume current volume=0.13, change=0.06
2021-07-19 07:25:50,585 audio playback queue_running
2021-07-19 07:25:50,585 audio playback queue_pushing
2021-07-19 07:25:50,585 audio playback ignoring underrun during startup
2021-07-19 07:25:50,604 audio playback queue_running
2021-07-19 07:25:50,605 audio playback queue_pushing
2021-07-19 07:25:50,605 audio playback ignoring underrun during startup
2021-07-19 07:25:50,625 audio playback queue_running
2021-07-19 07:25:50,625 audio playback queue_pushing
2021-07-19 07:25:50,625 audio playback ignoring underrun during startup
2021-07-19 07:25:50,656 audio playback queue_running
2021-07-19 07:25:50,656 audio playback queue_pushing
2021-07-19 07:25:50,657 audio playback ignoring underrun during startup
2021-07-19 07:25:50,675 audio playback adjust_volume current volume=0.19, change=0.06
2021-07-19 07:25:50,679 audio playback queue_running
2021-07-19 07:25:50,679 audio playback queue_pushing
2021-07-19 07:25:50,679 audio playback ignoring underrun during startup
2021-07-19 07:25:50,684 audio playback queue_running
2021-07-19 07:25:50,684 audio playback queue_pushing
2021-07-19 07:25:50,684 audio playback ignoring underrun during startup
2021-07-19 07:25:50,705 audio playback queue_running
2021-07-19 07:25:50,705 audio playback queue_pushing
2021-07-19 07:25:50,705 audio playback ignoring underrun during startup
2021-07-19 07:25:50,724 audio playback queue_running
2021-07-19 07:25:50,724 audio playback queue_pushing
2021-07-19 07:25:50,725 audio playback ignoring underrun during startup
2021-07-19 07:25:50,745 audio playback queue_running
2021-07-19 07:25:50,745 audio playback queue_pushing
2021-07-19 07:25:50,745 audio playback ignoring underrun during startup
2021-07-19 07:25:50,766 audio playback queue_running
2021-07-19 07:25:50,766 audio playback queue_pushing
2021-07-19 07:25:50,766 audio playback ignoring underrun during startup
2021-07-19 07:25:50,766 audio playback queue_running
2021-07-19 07:25:50,767 audio playback queue_pushing
2021-07-19 07:25:50,767 audio playback ignoring underrun during startup
2021-07-19 07:25:50,778 audio playback adjust_volume current volume=0.25, change=0.06
2021-07-19 07:25:50,805 audio playback queue_running
2021-07-19 07:25:50,805 audio playback queue_pushing
2021-07-19 07:25:50,805 audio playback ignoring underrun during startup
2021-07-19 07:25:50,825 audio playback queue_running
2021-07-19 07:25:50,825 audio playback queue_pushing
2021-07-19 07:25:50,825 audio playback ignoring underrun during startup
2021-07-19 07:25:50,845 audio playback queue_running
2021-07-19 07:25:50,845 audio playback queue_pushing
...
The pipeline is here:
2021-07-19 07:25:49,205 audio playback pipeline=appsrc name=src \
emit-signals=0 block=0 is-live=0 stream-type=0 format=4 ! opusparse ! opusdec ! \
audioconvert ! audioresa! \
queue name=queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=450000000 leaky=2 ! \
volume name=volume volume=0 ! osxaudiosink sync=False asyne qos=True name="sink"
But something went wrong when you copied the log file over because there are lots of typos in there.
It should be audioresample
and async=True
not asyne
. There are more typos further down.
Please attach the unedited log to this ticket, in full.
After a second or two, the underrun
s should stop and audio should be playing smoothly.
Volume says zero but there were log messages later about incrementing it upwards
Yes, we do this to protect your speakers and your ears. Starting at full volume can be painful.
found the following plugins: ['3gppmux', 'aacparse', 'ac3parse', ..
It is finding modules that we do not ship. So perhaps you have another gstreamer installation on your system and this is causing problems somehow?
Sorry about that, the log must have truncated oddly when I resized my xterm, try the attached. As for another gstreamer installation, I did try to build xpra from source on the M1 but didn't get terribly far due (I think) to Python 3.9 being a "universal binary" of x86_64+arm64 and the xpra build targeting just one architecture led to Python failing when trying to dlopen() a built library giving up with the error no suitable image found... blahblah.so: mach-o, but wrong architecture)
2021-07-20 08:59:45,382 audio playback pipeline elements=['appsrc name=src emit-signals=0 block=0 is-live=0 stream-type=0 format=4', 'opusparse ! opusdec', 'audioconvert', 'audioresample', 'queue name=queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=450000000 leaky=2', 'volume name=volume volume=0', 'osxaudiosink sync=False async=True qos=True name="sink"']
2021-07-20 08:59:45,382 audio playback pipeline=appsrc name=src emit-signals=0 block=0 is-live=0 stream-type=0 format=4 ! opusparse ! opusdec ! audioconvert ! audioresample ! queue name=queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=450000000 leaky=2 ! volume name=volume volume=0 ! osxaudiosink sync=False async=True qos=True name="sink"
Looking at your log: the pipeline goes to playing
state, the playback buffer fills up but then the queue keeps bouncing between running
, pushing
and underrun
.
This is not something you can reproduce with your test pipeline: gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! osxaudiosink
because audiotestsrc
will produce enough buffers to never go into underrun
.
This is going to be very difficult without access to the actual hardware (speaker output and all)... You could try running with:
XPRA_SOUND_UNDERRUN_MIN_LEVEL=500 XPRA_SOUND_MARGIN=200 xpra attach ...
As for building an x86_64+arm64
binary:
https://github.com/jralls/gtk-osx-build/blob/f8de425111e45177dceee96d3a1a85fef174dc21/jhbuildrc-gtk-osx#L291-L292
WARNING: Universal builds are neither prohibited nor supported. It might work, but if it doesn't you're on your own.
Again, I can't test any of this.
Not heard back. Closing.
Perhaps the next version of gstreamer will work better on this hardware. Until then, there's not much I can do.
Sorry to not have more I could offer in terms of debugging. I never resolved the issue and eventually shifted over to using tailscale instead of xpra for accessing my private dev workstation.
@davideger we now have beta arm64 builds that should be able to run on M1 and later, they require MacOS 12: https://github.com/Xpra-org/xpra/wiki/Download#-macos
I've installed Xpra 4.2 on an M1 Macbook Air running Mac OS X 10.16, and can run a remote firefox on an Ubuntu machine and display it on the mac, but the client is having trouble initializing sound on the mac. Unfortunately I do not see the file
Xpra.app/Contents/MacOS/Xpra _sound_query
in the distribution I have, but here is the relevant output with debugging on for the xpra invocation I used -- it looks like the packaged up gstreamer is broken, as all of the plugins seem missing.Separately, some parts of the GTK error out with the attached screenshot trying and failing to dlopen /System/Library/Frameworks/c.framework/c; I'm not sure if it's related.