totem cannot install codecs via packagekit

Bug #2060730 reported by Dave Jones
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
App Center
Triaged
Undecided
Unassigned
packagekit (Ubuntu)
Invalid
Undecided
Unassigned
totem (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

While attempting to play a video on Ubuntu noble desktop for raspberry pi, totem attempts to locate a package for the H.264 codec but cannot find a service providing org.freedesktop.PackageKit. This is strange given that packagekit is installed, provides packagekit.service, which declares that it provides that name over DBus. Specifically, the following is output by totem:

    ** Message: 21:13:39.000: Missing plugin: gstreamer|1.0|totem|MPEG-4 AAC decoder|decoder-audio/mpeg, mpegversion=(int)4, level=(string)4, base-profile=(string)lc, profile=(string)lc (MPEG-4 AAC decoder)
    ** Message: 21:13:39.000: Missing plugin: gstreamer|1.0|totem|H.264 (Main Profile) decoder|decoder-video/x-h264, level=(string)3.1, profile=(string)main (H.264 (Main Profile) decoder)
    ** Message: 21:13:39.414: PackageKit: xid = 0
    ** Message: 21:13:39.414: PackageKit: desktop_id = org.gnome.Totem.desktop
    ** Message: 21:13:39.414: PackageKit: Codec nice name: MPEG-4 AAC decoder
    ** Message: 21:13:39.414: PackageKit: ignoring field named level
    ** Message: 21:13:39.414: PackageKit: ignoring field named base-profile
    ** Message: 21:13:39.414: PackageKit: ignoring field named profile
    ** Message: 21:13:39.414: PackageKit: field is: mpegversion, type: gint
    ** Message: 21:13:39.414: PackageKit: structure: gstreamer1(decoder-audio/mpeg)(mpegversion=4)()(64bit)
    ** Message: 21:13:39.414: PackageKit: Codec nice name: H.264 (Main Profile) decoder
    ** Message: 21:13:39.414: PackageKit: ignoring field named level
    ** Message: 21:13:39.414: PackageKit: ignoring field named profile
    ** Message: 21:13:39.414: PackageKit: structure: gstreamer1(decoder-video/x-h264)()(64bit)
    ** Message: 21:13:39.434: PackageKit: Did not install codec: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PackageKit was not provided by any .service files
    ** Message: 21:13:39.441: No installation candidate for missing plugins found.

The packagekit.service is defined as:

    $ systemctl cat packagekit.service
    # /usr/lib/systemd/system/packagekit.service
    [Unit]
    Description=PackageKit Daemon
    # PK doesn't know how to do anything on ostree-managed systems;
    # currently the design is to have dedicated daemons like
    # eos-updater and rpm-ostree, and gnome-software talks to those.
    ConditionPathExists=!/run/ostree-booted
    Wants=network-online.target

    [Service]
    Type=dbus
    BusName=org.freedesktop.PackageKit
    User=root
    ExecStart=/usr/libexec/packagekitd

And just to demonstrate packagekit is actually running:

    $ systemctl status packagekit.service
    ● packagekit.service - PackageKit Daemon
         Loaded: loaded (/usr/lib/systemd/system/packagekit.service; static)
         Active: active (running) since Tue 2024-04-09 21:11:35 BST; 2min 23s ago
       Main PID: 1565 (packagekitd)
          Tasks: 4 (limit: 3864)
         Memory: 6.2M (peak: 6.7M)
            CPU: 180ms
         CGroup: /system.slice/packagekit.service
                 └─1565 /usr/libexec/packagekitd

    Apr 09 21:11:34 fozzie systemd[1]: Starting packagekit.service - PackageKit Daemon...
    Apr 09 21:11:34 fozzie PackageKit[1565]: daemon start
    Apr 09 21:11:35 fozzie systemd[1]: Started packagekit.service - PackageKit Daemon.

Revision history for this message
Dave Jones (waveform) wrote :

Adding affects packagekit as I've no idea if this is totem's fault or packagekit's.

Revision history for this message
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
http://iso.qa.ubuntu.com/qatracker/reports/bugs/2060730

tags: added: iso-testing
tags: added: noble raspi
Revision history for this message
Nathan Teodosio (nteodosio) wrote :
Download full text (4.6 KiB)

Cannot reproduce it here, but despite no gstreamer-bad the video plays normally. Maybe I have another package that satisfies that, I'll investigate further.

--->
% systemctl status packagekit.service
○ packagekit.service - PackageKit Daemon
     Loaded: loaded (/usr/lib/systemd/system/packagekit.service; static)
     Active: inactive (dead)

abr 12 10:32:34 canonical systemd[1]: Starting packagekit.service - PackageKit Daemon...
abr 12 10:32:34 canonical PackageKit[162838]: daemon start
abr 12 10:32:35 canonical systemd[1]: Started packagekit.service - PackageKit Daemon.
abr 12 10:37:40 canonical PackageKit[162838]: daemon quit
abr 12 10:37:40 canonical systemd[1]: packagekit.service: Deactivated successfully.
abr 12 10:42:35 canonical systemd[1]: Starting packagekit.service - PackageKit Daemon...
abr 12 10:42:35 canonical PackageKit[182154]: daemon start
abr 12 10:42:35 canonical systemd[1]: Started packagekit.service - PackageKit Daemon.
abr 12 10:48:36 canonical PackageKit[182154]: daemon quit
abr 12 10:48:36 canonical systemd[1]: packagekit.service: Deactivated successfully.

% dpkg -l | grep gstream
ii gir1.2-gstreamer-1.0:amd64 1.24.1-1build1 amd64 GObject introspection data for the GStreamer library
ii gstreamer1.0-alsa:amd64 1.24.1-1build1 amd64 GStreamer plugin for ALSA
ii gstreamer1.0-clutter-3.0:amd64 3.0.27-4build1 amd64 Clutter PLugin for GStreamer 1.0
ii gstreamer1.0-gl:amd64 1.24.1-1build1 amd64 GStreamer plugins for GL
ii gstreamer1.0-gtk3:amd64 1.24.1-2ubuntu1 amd64 GStreamer plugin for GTK+3
ii gstreamer1.0-libav:amd64 1.24.1-1build1 amd64 ffmpeg plugin for GStreamer
ri gstreamer1.0-nice:amd64 0.1.21-2build3 amd64 ICE library (GStreamer plugin)
ii gstreamer1.0-pipewire:amd64 1.0.4-2ubuntu4 amd64 GStreamer 1.0 plugin for the PipeWire multimedia server
ii gstreamer1.0-plugins-base:amd64 1.24.1-1build1 amd64 GStreamer plugins from the "base" set
ii gstreamer1.0-plugins-base-apps 1.24.1-1build1 amd64 GStreamer helper programs from the "base" set
ii gstreamer1.0-plugins-good:amd64 1.22.9-1ubuntu1 amd64 GStreamer plugins from the "good" set
ii gstreamer1.0-plugins-ugly:amd64 1.22.10-1 amd64 GStreamer plugins from the "ugly" set
ii gstreamer1.0-pulseaudio:amd64 1.22.9-1ubuntu1 amd64 GStreamer plugin for PulseAudio (transitional package)
ii gstreamer1.0-qt5:amd64 1.22.9-1ubuntu1 amd64 GStreamer plugin for Qt5
ii gstreamer1.0-t...

Read more...

Revision history for this message
Nathan Teodosio (nteodosio) wrote :

Aha, had to remove gstreamer1.0-libav as well, then:

--->
** (totem:195768): WARNING **: 11:00:53.910: atk-bridge: GetRegisteredEvents returned message with unknown signature
** Message: 11:00:53.953: Missing plugin: gstreamer|1.0|totem|MPEG-4 AAC decoder|decoder-audio/mpeg, mpegversion=(int)4, level=(string)4, base-profile=(string)lc, profile=(string)lc, channel-mask=(bitmask)0x0000000000000000 (MPEG-4 AAC decoder)
** Message: 11:00:53.953: Missing plugin: gstreamer|1.0|totem|H.264 (High Profile) decoder|decoder-video/x-h264, level=(string)4, profile=(string)high (H.264 (High Profile) decoder)
<---

Changed in totem (Ubuntu):
status: New → Triaged
Revision history for this message
Nathan Teodosio (nteodosio) wrote :

If I install gnome-software and try again, I get a prompt:

> Unable to play the file
>
> MPEG-4 AAC decoder, H.264 (High Profile) decoder are required to play the file, but are not installed

With a button to "Find in Software". Clicking it does nothing though.

And even before clicking anything on the prompt, '/usr/bin/gnome-software --gapplication-service' is registered in ps.

Revision history for this message
Nathan Teodosio (nteodosio) wrote (last edit ):

OK, I was also missing gstreamer1.0-packagekit.

Summary is:

For reproducing that exact error, have neither gstreamer1.0-libav nor gstreamer-1.0-plugins-bad nor gnome-software.

To fix the error, one needs both gstreamer1.0-packagekit and gnome-software, then hitting "Find in Software" will open gnome-software with suggestions (as attached).

Changed in totem (Ubuntu):
status: Triaged → Invalid
Changed in packagekit (Ubuntu):
status: New → Invalid
Changed in app-center:
status: New → Triaged
Revision history for this message
Dave Jones (waveform) wrote :

Sorry, I should give a bit more context on this issue to clarify things. The test for this issue comes from the ISO tests for the Ubuntu Desktop for Raspberry Pi images. The test intends to check whether a fresh install can play a video "out of the box". The video used in the test is https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4 which is downloaded and opened normally.

The video deliberately uses a codec that isn't seeded and installed by default (but is a commonly used format) in the expectation that totem will guide the user through installing the necessary bits (which it used to back in groovy, but doesn't since -- incidentally the reason this wasn't noticed in jammy is because it failed to even open the video at that point, but that's now been fixed).

Seeding gstreamer1.0-packagekit is probably fine (the whole of gstreamer's in main). Seeding gnome-software is likely not (given we're using snap-store for software delivery currently). Is app-center intended to fill that gap in future?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.