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.

Reply via email to