soonum / hubangl

A free/libre and easy to use streaming software.
GNU General Public License v3.0
17 stars 3 forks source link

Strange GST error #43

Closed leaf-node closed 5 years ago

leaf-node commented 5 years ago

HUBAngl works on my laptop, but not on another autoconfigured one. This happens even when nothing is plugged into the laptop. Am I missing a dependency?

Note that I hit ^C after a while:

libreplanet@libreplanet-ThinkPad-X200-bhwl:~/src/hubangl$ ./src/hubangl 
Gtk-Message: Failed to load module "canberra-gtk-module"
hubangl: 2019-03-05 17:14:41,682 [INFO] Starting up hubangl
Traceback (most recent call last):
  File "./src/hubangl", line 161, in <module>
    gui.main_window.MainWindow(args)
  File "/home/libreplanet/src/hubangl/src/gui/main_window.py", line 60, in __init__
    self.feed = feed.Feed(self.images)
  File "/home/libreplanet/src/hubangl/src/gui/feed.py", line 64, in __init__
    self.pipeline = process.Pipeline()
  File "/home/libreplanet/src/hubangl/src/core/process.py", line 160, in __init__
    self.audio_sources = self.create_audio_sources()
  File "/home/libreplanet/src/hubangl/src/core/process.py", line 911, in create_audio_sources
    audio_devices[device][iofetch.DESCRIP], device)
  File "/home/libreplanet/src/hubangl/src/core/ioelements.py", line 53, in __init__
    self.device_location, **kwargs)
  File "/home/libreplanet/src/hubangl/src/core/ioelements.py", line 59, in create_gstelement
    return self._create_audio_source(device, **kwargs)
  File "/home/libreplanet/src/hubangl/src/core/ioelements.py", line 77, in _create_audio_source
    _gstelement.set_property("device", device)
  File "/home/libreplanet/src/hubangl/src/core/gstelement.py", line 81, in set_property
    self.gstelement.set_property(*args)
AttributeError: 'NoneType' object has no attribute 'set_property'
^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 39, in _python_exit
    t.join()
  File "/usr/lib/python3.5/threading.py", line 1054, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.5/threading.py", line 1070, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt
Exception ignored in: <function ThreadPoolExecutor._adjust_thread_count.<locals>.weakref_cb at 0x7fd2d13ce1e0>
Traceback (most recent call last):
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 121, in weakref_cb
  File "/usr/lib/python3.5/queue.py", line 145, in put
  File "/usr/lib/python3.5/threading.py", line 345, in notify
TypeError: 'NoneType' object is not callable
leaf-node commented 5 years ago

Both are 64 bit Trisquel 8 installs on x200 laptops.

leaf-node commented 5 years ago

Here is HUBAngl output with the -d option:

Gtk-Message: Failed to load module "canberra-gtk-module"
hubangl: 2019-03-06 10:05:13,952 [INFO] Starting up hubangl
hubangl: 2019-03-06 10:05:13,952 [DEBUG] Watchers started
hubangl: 2019-03-06 10:05:14,023 [DEBUG] Audio output found: 'alsa_output.pci-0000_00_1b.0.analog-stereo'
hubangl: 2019-03-06 10:05:14,024 [DEBUG] Audio output found: 'alsa_output.pci-0000_00_1b.0.analog-stereo.monitor'
hubangl: 2019-03-06 10:05:14,024 [DEBUG] Audio input found: 'alsa_input.pci-0000_00_1b.0.analog-stereo'
Traceback (most recent call last):
  File "./src/hubangl", line 161, in <module>
    gui.main_window.MainWindow(args)
  File "/home/libreplanet/src/hubangl/src/gui/main_window.py", line 60, in __init__
    self.feed = feed.Feed(self.images)                                                                                                                                                
  File "/home/libreplanet/src/hubangl/src/gui/feed.py", line 64, in __init__                                                                                                          
    self.pipeline = process.Pipeline()                                                                                                                                                
  File "/home/libreplanet/src/hubangl/src/core/process.py", line 160, in __init__                                                                                                     
    self.audio_sources = self.create_audio_sources()                                                                                                                                  
  File "/home/libreplanet/src/hubangl/src/core/process.py", line 911, in create_audio_sources                                                                                         
    audio_devices[device][iofetch.DESCRIP], device)
  File "/home/libreplanet/src/hubangl/src/core/ioelements.py", line 53, in __init__
    self.device_location, **kwargs)
  File "/home/libreplanet/src/hubangl/src/core/ioelements.py", line 59, in create_gstelement
    return self._create_audio_source(device, **kwargs)
  File "/home/libreplanet/src/hubangl/src/core/ioelements.py", line 77, in _create_audio_source
    _gstelement.set_property("device", device)
  File "/home/libreplanet/src/hubangl/src/core/gstelement.py", line 81, in set_property
    self.gstelement.set_property(*args)
AttributeError: 'NoneType' object has no attribute 'set_property'
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 39, in _python_exit
    t.join()
  File "/usr/lib/python3.5/threading.py", line 1054, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.5/threading.py", line 1070, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt

Here is the output of pactl list:

Module #0
        Name: module-device-restore
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Automatically restore the volume/mute state of devices"
                module.version = "8.0"

Module #1
        Name: module-stream-restore
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Automatically restore the volume/mute/device state of streams"
                module.version = "8.0"

Module #2
        Name: module-card-restore
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Automatically restore profile of cards"
                module.version = "8.0"

Module #3
        Name: module-augment-properties
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Augment the property sets of streams with additional static information"
                module.version = "8.0"

Module #4
        Name: module-switch-on-port-available
        Argument: 
        Usage counter: n/a
        Properties:

Module #5
        Name: module-udev-detect
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Detect available audio hardware and load matching drivers"
                module.version = "8.0"

Module #6
        Name: module-alsa-card
        Argument: device_id="0" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1"
        Usage counter: 0
        Properties:
                module.author = "Lennart Poettering"
                module.description = "ALSA Card"
                module.version = "8.0"

Module #7
        Name: module-native-protocol-unix
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Native protocol (UNIX sockets)"
                module.version = "8.0"

Module #8
        Name: module-gconf
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "GConf Adapter"
                module.version = "8.0"

Module #9
        Name: module-default-device-restore
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Automatically restore the default sink and source"
                module.version = "8.0"

Module #10
        Name: module-rescue-streams
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "When a sink/source is removed, try to move its streams to the default sink/source"
                module.version = "8.0"

Module #11
        Name: module-always-sink
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Colin Guthrie"
                module.description = "Always keeps at least one sink loaded even if it's a null one"
                module.version = "8.0"

Module #12
        Name: module-intended-roles
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Automatically set device of streams based on intended roles of devices"
                module.version = "8.0"

Module #13
        Name: module-suspend-on-idle
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "When a sink/source is idle for too long, suspend it"
                module.version = "8.0"

Module #14
        Name: module-systemd-login
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Create a client for each login session of this user"
                module.version = "8.0"

Module #15
        Name: module-position-event-sounds
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Position event sounds between L and R depending on the position on screen of the widget triggering them."
                module.version = "8.0"

Module #16
        Name: module-filter-heuristics
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Colin Guthrie"
                module.description = "Detect when various filters are desirable"
                module.version = "8.0"

Module #17
        Name: module-filter-apply
        Argument: 
        Usage counter: n/a
        Properties:
                module.author = "Colin Guthrie"
                module.description = "Load filter sinks automatically when needed"
                module.version = "8.0"

Module #18
        Name: module-x11-publish
        Argument: display=:0
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "X11 credential publisher"
                module.version = "8.0"

Module #19
        Name: module-x11-bell
        Argument: display=:0 sample=bell.ogg
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "X11 bell interceptor"
                module.version = "8.0"

Module #20
        Name: module-x11-cork-request
        Argument: display=:0
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "Synthesize X11 media key events when cork/uncork is requested"
                module.version = "8.0"

Module #21
        Name: module-x11-xsmp
        Argument: display=:0 session_manager=local/libreplanet-ThinkPad-X200-bhwl:@/tmp/.ICE-unix/1040,unix/libreplanet-ThinkPad-X200-bhwl:/tmp/.ICE-unix/1040
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "X11 session management"
                module.version = "8.0"

Sink #0
        State: SUSPENDED
        Name: alsa_output.pci-0000_00_1b.0.analog-stereo
        Description: Built-in Audio Analog Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 6
        Mute: no
        Volume: front-left: 30419 /  46% / -20.00 dB,   front-right: 30419 /  46% / -20.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "CX20561 Analog"
                alsa.id = "CX20561 Analog"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "HDA Intel"
                alsa.long_card_name = "HDA Intel at 0xe1620000 irq 31"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "293e"
                device.product.name = "82801I (ICH9 Family) HD Audio Controller"
                device.form_factor = "internal"
                device.string = "front:0"
                device.buffering.buffer_size = "65536"
                device.buffering.fragment_size = "32768"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                device.description = "Built-in Audio Analog Stereo"
                alsa.mixer_name = "Conexant CX20561 (Hermosa)"
                alsa.components = "HDA:14f15051,14f10101,00100000"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        Ports:
                analog-output-speaker: Speakers (priority: 10000)
                analog-output-headphones: Headphones (priority: 9000, not available)
        Active Port: analog-output-speaker
        Formats:
                pcm

Source #0
        State: SUSPENDED
        Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
        Description: Monitor of Built-in Audio Analog Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 6
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor of Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
        Latency: 0 usec, configured 0 usec
        Flags: DECIBEL_VOLUME LATENCY 
        Properties:
                device.description = "Monitor of Built-in Audio Analog Stereo"
                device.class = "monitor"
                alsa.card = "0"
                alsa.card_name = "HDA Intel"
                alsa.long_card_name = "HDA Intel at 0xe1620000 irq 31"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "293e"
                device.product.name = "82801I (ICH9 Family) HD Audio Controller"
                device.form_factor = "internal"
                device.string = "0"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        Formats:
                pcm

Source #1
        State: SUSPENDED
        Name: alsa_input.pci-0000_00_1b.0.analog-stereo
        Description: Built-in Audio Analog Stereo
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 6
        Mute: no
        Volume: front-left: 10386 /  16% / -48.00 dB,   front-right: 10386 /  16% / -48.00 dB
                balance 0.00
        Base Volume: 8250 /  13% / -54.00 dB
        Monitor of Sink: n/a
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "CX20561 Analog"
                alsa.id = "CX20561 Analog"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "HDA Intel"
                alsa.long_card_name = "HDA Intel at 0xe1620000 irq 31"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "293e"
                device.product.name = "82801I (ICH9 Family) HD Audio Controller"
                device.form_factor = "internal"
                device.string = "front:0"
                device.buffering.buffer_size = "65536"
                device.buffering.fragment_size = "32768"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                device.description = "Built-in Audio Analog Stereo"
                alsa.mixer_name = "Conexant CX20561 (Hermosa)"
                alsa.components = "HDA:14f15051,14f10101,00100000"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        Ports:
                analog-input-internal-mic: Internal Microphone (priority: 8900)
                analog-input-dock-mic: Dock Microphone (priority: 7800, not available)
                analog-input-mic: Microphone (priority: 8700, not available)
        Active Port: analog-input-internal-mic
        Formats:
                pcm

Client #0
        Driver: module-systemd-login.c
        Owner Module: 14
        Properties:
                application.name = "Login Session c1"
                systemd-login.session = "c1"

Client #1
        Driver: protocol-native.c
        Owner Module: 7
        Properties:
                application.name = "mate-settings-daemon"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "30"
                application.process.id = "1173"
                application.process.user = "libreplanet"
                application.process.host = "libreplanet-ThinkPad-X200-bhwl"
                application.process.binary = "mate-settings-daemon"
                window.x11.display = ":0"
                application.language = "en_US.UTF-8"
                application.process.machine_id = "4a0411814f7147b699120ab49be001bb"
                application.process.session_id = "c1"

Client #5
        Driver: protocol-native.c
        Owner Module: 7
        Properties:
                application.name = "Indicator Sound"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "30"
                application.id = "com.canonical.indicator.sound"
                application.icon_name = "multimedia-volume-control"
                application.version = "12.10.0.1"
                application.process.id = "1294"
                application.process.user = "libreplanet"
                application.process.host = "libreplanet-ThinkPad-X200-bhwl"
                application.process.binary = "indicator-sound-service"
                application.language = "en_US.UTF-8"
                window.x11.display = ":0"
                application.process.machine_id = "4a0411814f7147b699120ab49be001bb"
                application.process.session_id = "c1"

Client #7
        Driver: module-x11-xsmp.c
        Owner Module: 21
        Properties:
                application.name = "XSMP Session on mate-session-manager as 10ce019b8487f534a9155182468427662600000010400039"
                xsmp.vendor = "mate-session-manager"
                xsmp.client.id = "10ce019b8487f534a9155182468427662600000010400039"

Client #14
        Driver: protocol-native.c
        Owner Module: 7
        Properties:
                application.name = "pactl"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "30"
                application.process.id = "7867"
                application.process.user = "libreplanet"
                application.process.host = "libreplanet-ThinkPad-X200-bhwl"
                application.process.binary = "pactl"
                application.language = "en_US.UTF-8"
                window.x11.display = ":0"
                application.process.machine_id = "4a0411814f7147b699120ab49be001bb"
                application.process.session_id = "c1"

Card #0
        Name: alsa_card.pci-0000_00_1b.0
        Driver: module-alsa-card.c
        Owner Module: 6
        Properties:
                alsa.card = "0"
                alsa.card_name = "HDA Intel"
                alsa.long_card_name = "HDA Intel at 0xe1620000 irq 31"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "293e"
                device.product.name = "82801I (ICH9 Family) HD Audio Controller"
                device.form_factor = "internal"
                device.string = "0"
                device.description = "Built-in Audio"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        Profiles:
                input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 60, available: yes)
                output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6000, available: yes)
                output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 6060, available: yes)
                output:analog-surround-40: Analog Surround 4.0 Output (sinks: 1, sources: 0, priority: 700, available: yes)
                output:analog-surround-40+input:analog-stereo: Analog Surround 4.0 Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 760, available: yes)
                output:iec958-stereo: Digital Stereo (IEC958) Output (sinks: 1, sources: 0, priority: 5500, available: yes)
                output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5560, available: yes)
                off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
        Active Profile: output:analog-stereo+input:analog-stereo
        Ports:
                analog-input-internal-mic: Internal Microphone (priority: 8900, latency offset: 0 usec)
                        Properties:
                                device.icon_name = "audio-input-microphone"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:iec958-stereo+input:analog-stereo
                analog-input-dock-mic: Dock Microphone (priority: 7800, latency offset: 0 usec, not available)
                        Properties:
                                device.icon_name = "audio-input-microphone"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:iec958-stereo+input:analog-stereo
                analog-input-mic: Microphone (priority: 8700, latency offset: 0 usec, not available)
                        Properties:
                                device.icon_name = "audio-input-microphone"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:iec958-stereo+input:analog-stereo
                analog-output-speaker: Speakers (priority: 10000, latency offset: 0 usec)
                        Properties:
                                device.icon_name = "audio-speakers"
                        Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40, output:analog-surround-40+input:analog-stereo
                analog-output-headphones: Headphones (priority: 9000, latency offset: 0 usec, not available)
                        Properties:
                                device.icon_name = "audio-headphones"
                        Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
                iec958-stereo-output: Digital Output (S/PDIF) (priority: 0, latency offset: 0 usec)
                        Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:analog-stereo
soonum commented 5 years ago

Thanks @sudoman that will help.

soonum commented 5 years ago

Could you tell me what is your output if you run this script :

import gi
gi.require_version("Gst", "1.0")  # NOQA
from gi.repository import Gst

Gst.init(None)

gstelement = Gst.ElementFactory.make("pulsesrc", "test_audio_source")
print(gstelement)
leaf-node commented 5 years ago

Hello David,

The output is:

None
soonum commented 5 years ago

Then you have a problem either with your gi.repository or your GStreamer package.

leaf-node commented 5 years ago

I was missing this package: gstreamer1.0-pulseaudio