Package: kazam
Version: 1.4.5-2
Severity: important
Dear Maintainer,
Kazam used to work without any issues until yesterday.
I found out that after a system update, I ceased to be able to record anything
with it if I wanted to include sound (it worked for video-only recording).
When I click "Capture", seemingly nothing happened.
I starting Kazam in a terminal and saw the log that you can find in the
attachment.
Following the last line in the stack trace, it seems to fail because the
following function returned None:
self.audioenc = Gst.ElementFactory.make("lamemp3enc", "audio_encoder")
So, after some research, I found that gstreamer1.0-plugins-ugly no longer
includes the lame MP3 encoder, and that it is now included in
gstreamer1.0-plugins-good starting from version 1.13:
+ Build-depend on LAME, mpg123 and twolame and add Conflicts/Replaces as
needed for gst-plugins-ugly from where the plugins moved.»
http://metadata.ftp-master.debian.org/changelogs/main/g/gst-plugins-
good1.0/gst-plugins-good1.0_1.14.0-1_changelog
I had gstreamer1.0-plugins-ugly version 1.14 installed, but
gstreamer1.0-plugins-good version 1.12. So I ended up not having any lame
encoding plugin at that point.
So, to avoid this, I suggest that kazam declares a dependency on
gstreamer1.0-plugins-good >= 1.14 (I didn't test with 1.13, so I can't tell for
sure if it'd be OK to depend on that instead).
Moreover, two additional notes:
* If this voids the need to depend on gstreamer1.0-plugins-ugly, that
dependency can also be removed now.
* This was a somewhat hard to debug situation, and what was happening was not
obvious at all.
Kazam should inform the user if a dependency is missing. Something was
obviously wrong as nothing happened when I clicked "Capture", but this would be
very hard to fix by someone unwilling to delve into stack traces, code and
package changelogs.
Thanks and best regards,
Luís Picciochi Oliveira
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.15.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8),
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages kazam depends on:
ii gir1.2-gst-plugins-base-1.0 1.14.0-1
ii gir1.2-gstreamer-1.0 1.14.0-1
ii gir1.2-keybinder-3.0 0.3.2-1
ii gir1.2-wnck-3.0 3.24.1-2
ii gnome-session-canberra 0.30-6
ii gstreamer1.0-plugins-base 1.14.0-1
ii gstreamer1.0-plugins-good 1.14.0-1
ii gstreamer1.0-plugins-ugly 1.14.0-1
ii gstreamer1.0-pulseaudio 1.12.4-1+b1
ii python3 3.6.4-1
ii python3-cairo 1.16.2-1
ii python3-dbus 1.2.6-1
ii python3-gi 3.28.1-1
ii python3-gi-cairo 3.28.1-1
ii python3-xdg 0.25-4
Versions of packages kazam recommends:
pn gstreamer1.0-libav <none>
kazam suggests no packages.
-- no debconf information
$ kazam
/usr/bin/kazam:32: PyGIWarning: Gtk was imported without specifying a version
first. Use gi.require_version('Gtk', '3.0') before import to ensure that the
right version gets loaded.
from gi.repository import Gtk
/usr/lib/python3/dist-packages/kazam/frontend/window_area.py:30: PyGIWarning:
Wnck was imported without specifying a version first. Use
gi.require_version('Wnck', '3.0') before import to ensure that the right
version gets loaded.
from gi.repository import Gtk, GObject, Gdk, Wnck, GdkX11
/usr/lib/python3/dist-packages/kazam/backend/gstreamer.py:35: PyGIWarning: Gst
was imported without specifying a version first. Use gi.require_version('Gst',
'1.0') before import to ensure that the right version gets loaded.
from gi.repository import GObject, Gst
/usr/lib/python3/dist-packages/kazam/frontend/indicator.py:148: PyGIWarning:
AppIndicator3 was imported without specifying a version first. Use
gi.require_version('AppIndicator3', '0.1') before import to ensure that the
right version gets loaded.
from gi.repository import AppIndicator3
/usr/lib/python3/dist-packages/kazam/frontend/indicator.py:97: PyGIWarning:
Keybinder was imported without specifying a version first. Use
gi.require_version('Keybinder', '3.0') before import to ensure that the right
version gets loaded.
from gi.repository import Keybinder
/usr/lib/python3/dist-packages/kazam/app.py:145: Warning: value "((GtkIconSize)
32)" of type 'GtkIconSize' is invalid or out of range for property 'icon-size'
of type 'GtkIconSize'
self.builder.add_from_file(os.path.join(prefs.datadir, "ui", "kazam.ui"))
(kazam:23365): Gtk-WARNING **: 14:16:34.218: Theme file for default has no name
(kazam:23365): Gtk-WARNING **: 14:16:34.218: Theme file for default has no
directories
(kazam:23365): Gtk-WARNING **: 14:16:34.238: Can't set a parent on widget which
has a parent
(kazam:23365): Gtk-WARNING **: 14:16:34.244: Can't set a parent on widget which
has a parent
(kazam:23365): Gdk-CRITICAL **: 14:16:35.682: gdk_window_thaw_toplevel_updates:
assertion 'window->update_and_descendants_freeze_count > 0' failed
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/kazam/app.py", line 553, in
cb_record_clicked
self.run_counter()
File "/usr/lib/python3/dist-packages/kazam/app.py", line 790, in run_counter
prefs.xid if self.record_mode == MODE_WIN else None)
File "/usr/lib/python3/dist-packages/kazam/backend/gstreamer.py", line 95, in
setup_sources
self.setup_audio_sources()
File "/usr/lib/python3/dist-packages/kazam/backend/gstreamer.py", line 231,
in setup_audio_sources
self.audioenc.set_property("quality", 0)
AttributeError: 'NoneType' object has no attribute 'set_property'
INFO Main - Unable to delete one of the temporary files. Check your temporary
directory.