Bug 470826

Summary: Demonstration video does not load after click on "Show/hide video" button
Product: [Applications] systemsettings Reporter: Patrick Silva <bugseforuns>
Component: kcm_kwineffectsAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: normal CC: antti.savo, carl, duncanyoyo1, info, jr, julien.dlq, justin.zobel, kde, mp14, nate, neon-bugs, plasma-bugs-null, q9hc26ia, sitter, smowtenshi
Priority: NOR Keywords: qt6
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: screenshot

Description Patrick Silva 2023-06-09 11:21:06 UTC
Created attachment 159561 [details]
screenshot

STEPS TO REPRODUCE
1. open Desktop Effects KCM
2. click on "Show/hide video" button beside the button used to configure the effect
3. 

OBSERVED RESULT
the KCM gets stuck at a rotating gear and the video never loads. Please see the attached screenshot.

EXPECTED RESULT
the demonstration video loads

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.27.80
KDE Frameworks Version: 5.240.0
Qt Version: 6.5.0
Graphics Platform: Wayland
Comment 1 Nate Graham 2023-06-09 15:43:25 UTC
Works for me, which makes this most likely a packaging issue. If you run `systemsettings kcm_kwin_effects` in Konsole, is anything printed to the window when you reproduce the bug?
Comment 2 Patrick Silva 2023-06-09 16:11:09 UTC
Here is the output after reproducing the bug:

$ systemsettings kcm_kwin_effects
Using fontconfig file: "/home/stalker/.config/fontconfig/fonts.conf"
Hspell: can't open /usr/share/hspell/hebrew.wgz.sizes.
kf.sonnet.clients.hspell: HSpellDict::HSpellDict: Init failed
kf.kirigami: Failed to find a Kirigami platform plugin
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kirigami/ScrollablePage.qml:191:13: QML MouseArea: Binding loop detected for property "width"
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileCursor.qml:33:13: Unable to assign [undefined] to bool
kf.kirigami: Failed to find a Kirigami platform plugin
Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion
kf.kirigami: Failed to find a Kirigami platform plugin
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileCursor.qml:33:13: Unable to assign [undefined] to bool
qml: The item SubCategoryPage_QMLTYPE_101(0x55a9fb6e5710) is already in the PageRow
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kirigami/ScrollablePage.qml:191:13: QML MouseArea: Binding loop detected for property "width"
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileCursor.qml:33:13: Unable to assign [undefined] to bool
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
kf.coreaddons: "Could not find plugin "
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kirigami/ScrollablePage.qml:334: TypeError: Cannot read property 'activeFocus' of null (exception occurred during delayed function evaluation)
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kirigami/ScrollablePage.qml:334: TypeError: Cannot read property 'activeFocus' of null (exception occurred during delayed function evaluation)
kf.kirigami: Could not create delegate for ToolBarLayout
kf.kirigami: file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kirigami/ActionToolBar.qml: Object or context destroyed during incubation
Comment 3 Patrick Silva 2023-06-09 16:13:30 UTC
-1 minute after reproducing the bug, System Settings freezes and these lines are printed:

qrc:/kcm/kcm_kwin_effects/main.qml:106: TypeError: Cannot read property 'effectsModel' of null
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kcmutils/AbstractKCM.qml:61: TypeError: Cannot read property 'name' of null
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kcmutils/SettingHighlighter.qml:36: TypeError: Cannot read property 'defaultsIndicatorsVisible' of null
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kcmutils/SettingHighlighter.qml:36: TypeError: Cannot read property 'defaultsIndicatorsVisible' of null
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kcmutils/SettingHighlighter.qml:36: TypeError: Cannot read property 'defaultsIndicatorsVisible' of null
file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kcmutils/SettingHighlighter.qml:36: TypeError: Cannot read property 'defaultsIndicatorsVisible' of null
Comment 4 Nate Graham 2023-06-09 20:56:48 UTC
> kf.coreaddons: "Could not find plugin "

Yup, it's a Neon packaging bug.
Comment 5 Justin Zobel 2023-06-15 05:30:09 UTC
Confirmed as a Neon packaging issue by Nate.
Comment 6 Patrick Silva 2023-11-14 21:06:29 UTC
Same on Arch Linux.

Operating System: Arch Linux 
KDE Plasma Version: 5.27.80
KDE Frameworks Version: 5.245.0
Qt Version: 6.6.0
Graphics Platform: Wayland
Comment 7 fanzhuyifan 2023-11-24 20:06:25 UTC
*** Bug 477474 has been marked as a duplicate of this bug. ***
Comment 8 Patrick Silva 2024-03-22 10:49:40 UTC
Not a neon packing issue, Arch Linux is also affected.

Operating System: Arch Linux 
KDE Plasma Version: 6.0.2
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Graphics Platform: Wayland
Comment 9 Patrick Silva 2024-03-22 10:50:20 UTC
*** Bug 484189 has been marked as a duplicate of this bug. ***
Comment 10 smow 2024-04-13 21:06:32 UTC
I know this has been already confirmed, however I'm seeing different output after running `systemsettings kcm_kwin_effects`.

qml: Page SubCategoryPage_QMLTYPE_121(0x5c3f3b2c8600) is already in the PageRow
qml: Pushed pages do not conform to the rules. Please check the documentation.
qml: push (file:///usr/lib/qt6/qml/org/kde/kirigami/PageRow.qml:223)
onActiveSubCategoryRowChanged (qrc:/qt/qml/org/kde/systemsettings/SubCategoryPage.qml:175)
[ogg @ 0x71344c001600] Broken file, keyframe not correctly marked.
[ogg @ 0x71344c6a6440] Broken file, keyframe not correctly marked.
[ogg @ 0x71344c001600] Broken file, keyframe not correctly marked.
[ogg @ 0x71344c68d100] Broken file, keyframe not correctly marked.
[ogg @ 0x71344c081780] Broken file, keyframe not correctly marked.
[ogg @ 0x713444001600] Broken file, keyframe not correctly marked.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x71344c0a3680] moov atom not found
[ogg @ 0x713444057680] Broken file, keyframe not correctly marked.
[ogg @ 0x713440001600] Broken file, keyframe not correctly marked.
[ogg @ 0x71344403f580] Broken file, keyframe not correctly marked.

___
Operating System: Arch Linux 
KDE Plasma Version: 6.0.3
KDE Frameworks Version: 6.0.0
Qt Version: 6.7.0
Kernel Version: 6.8.5-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Comment 11 JS123 2025-01-03 19:34:31 UTC
Same on Fedora 41
Operating System: Fedora Linux 41
KDE Plasma Version: 6.2.5
KDE Frameworks Version: 6.9.0
Qt Version: 6.8.1
Kernel Version: 6.12.7-200.fc41.x86_64 (64-bit)
Graphics Platform: Wayland

$ systemsettings kcm_kwin_effects
qml: Pushed pages do not conform to the rules. Please check the documentation.
[ogg @ 0x7ff7a0dfc0c0] Broken file, keyframe not correctly marked.
[ogg @ 0x7ff7a0ddd280] Broken file, keyframe not correctly marked.
Comment 12 GoldBarb 2025-01-04 13:07:41 UTC
Fedora 41
KWin version: 6.2.4
Qt compile version: 6.8.0

Launching systemsettings kcm_kwin_effects then opening a preview of an effect results in the following error message.

[ogg @ 0x7f2824001600] Broken file, keyframe not correctly marked.

A quick look at the src code shows the kwin effect demo videos are served over on https://files.kde.org/plasma/kwin/effect-videos/

Using mpv https://files.kde.org/plasma/kwin/effect-videos/fade_desktop.ogv  lets you play the video, but throws the same error message.

Further logging.

export QT_FFMPEG_DEBUG=1
systemsettings kcm_kwin_effects

qml: Pushed pages do not conform to the rules. Please check the documentation.
"FFmpeg log: Starting connection attempt to 49.12.122.15 port 443"
"FFmpeg log: Successfully connected to 49.12.122.15 port 443"
"FFmpeg log: Starting connection attempt to 46.37.189.155 port 443"
"FFmpeg log: Successfully connected to 46.37.189.155 port 443"
"FFmpeg log: Starting connection attempt to 49.12.122.15 port 443"
"FFmpeg log: Successfully connected to 49.12.122.15 port 443"
"FFmpeg log: Starting connection attempt to 46.37.189.155 port 443"
"FFmpeg log: Successfully connected to 46.37.189.155 port 443"
"FFmpeg log: Starting connection attempt to 49.12.122.15 port 443"
"FFmpeg log: Successfully connected to 49.12.122.15 port 443"
"FFmpeg log: Starting connection attempt to 46.37.189.155 port 443"
"FFmpeg log: Successfully connected to 46.37.189.155 port 443"
"FFmpeg log: Starting connection attempt to 49.12.122.15 port 443"
"FFmpeg log: Successfully connected to 49.12.122.15 port 443"
"FFmpeg log: Starting connection attempt to 46.37.189.155 port 443"
"FFmpeg log: Successfully connected to 46.37.189.155 port 443"
"FFmpeg log: Starting connection attempt to 49.12.122.15 port 443"
"FFmpeg log: Successfully connected to 49.12.122.15 port 443"
"FFmpeg log: Starting connection attempt to 46.37.189.155 port 443"
"FFmpeg log: Successfully connected to 46.37.189.155 port 443"
"FFmpeg log: Broken file, keyframe not correctly marked."
"FFmpeg log: Statistics: 294426 bytes read, 4 seeks"

Is this a FFmpeg decoding issue ?
Comment 13 skierpage 2025-02-16 23:02:32 UTC
I'm also seeing this in Fedora 41 KDE spin: click any movie strip icon and get endless spinning gear and no video. (I don't recall ever clicking the video icon before, but I just watched the Welcome pages for latest Plasma 6.3.0/Frameworks 6.11.0 and wanted to explore the Magnify feature).

I ran strace on the running `/usr/bin/systemsettings kcm_kwin_effects` process. Here are some choice outputs:
    openat(AT_FDCWD, ":/kcm/kcm_kwin_effects/Video.qmlc", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[I do have a /usr/lib64/qt6/qml/QtMultimedia/Video.qml; I'm not sure if this failure is significant, there are a lot of other failures to open similar paths like ":/kcm/kcm_kwin_effects/main.qmlc"]
    openat(AT_FDCWD, "/home/spage/.cache/systemsettings/qmlcache/e1f650f6127d0f10d3b96472acee612398c5a460.qmlc", O_RDONLY|O_CLOEXEC) = 28
    ...
    getcwd("/home/spage", 4096) = 12
    access("/home/spage/https://files.kde.org/plasma/kwin/effect-videos/invert.mp4", F_OK) = -1 ENOENT (No such file or directory)
This last error is suspicious. The KCM should be making an https network request, not trying to access a bogus local path. (Maybe it makes a network request that doesn't show up in strace.)

WORKAROUND: The workaround is to visit https://files.kde.org/plasma/kwin/effect-videos/ in a browser and play the videos yourself.

For completeness here's the output when I run the KCM in a terminal.

% systemsettings kcm_kwin_effects
    qml: Pushed pages do not conform to the rules. Please check the documentation.
    qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1 GPL version 3 or later
    qt.multimedia.ffmpeg: Available HW decoding frameworks:
    Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[My Thinkpad has Intel graphics, not Nvidia.]
    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so
[I have this file.]
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    qt.multimedia.ffmpeg:      vaapi
    qt.multimedia.ffmpeg:      qsv 
    qt.multimedia.ffmpeg:      vulkan
    qt.multimedia.ffmpeg: Available HW encoding frameworks:
    qt.multimedia.ffmpeg:      vaapi
    qt.multimedia.ffmpeg:      qsv 
    qt.multimedia.ffmpeg:      vulkan

If I quickly click the filmstrip icon a few times then the console output includes

    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f2664081500] stream 0, offset 0x30: partial file
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f2664081500] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080, 345 kb/s): unspecified pixel format
    Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f2664e5b780] moov atom not found
Comment 14 skierpage 2025-02-17 08:11:44 UTC
On my Fedora 41 laptop Plasma-KDE-QtMultimedia defaults to using ffmpeg; you can force it to use the gstreamer backend if you move /usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so to a completely different location, but I still don't see any video.

(In reply to skierpage from comment #13)
> access("/home/spage/https://files.kde.org/plasma/kwin/effect-videos/invert.mp4", F_OK) = -1 ENOENT (No such file or directory)
> This last error is suspicious. The KCM should be making an https network
> request, not trying to access a bogus local path.
This local file access seems a false alarm. If you enable a lot of debugging with something like
  % QT_DEBUG_PLUGINS=1 QT_FFMPEG_DEBUG=1 GST_DEBUG=4 \
      QT_LOGGING_RULES="*.debug=true;*.multimedia.*=true" \
      systemsettings kcm_kwin_effects 2>&1 | tee qt_debug.log

you can see ffmpeg requesting chunks of the video from the network, e.g.:
    "FFmpeg log: request: GET /plasma/kwin/effect-videos/fade_desktop.ogv HTTP/1.1\r\nUser-Agent: Lavf/61.7.100\r\nAccept: /\r\nRange: bytes=2575554-\r\nConnection: close\r\nHost: files.kde.org\r\nIcy-MetaData: 1\r\n\r\n"

The settings window gets bigger as if it's going to show a video, yet there are lines like
    QQuickLoader_QML_262(0x555785bfc720, id="videoItem", parent=0x55578484d830, geometry=0,0 0x0) (0x55578602e550) now has the following listeners

Claude.ai commented: those logs are quite revealing! The zero-size geometry on the QQuickLoader suggests the video widget isn't being sized properly. The network requests look correct (FFmpeg is successfully requesting byte ranges), but the UI component isn't displaying it. In Qt Quick, if a loader or video item has 0x0 geometry, it typically means either:
-  The layout isn't properly setting the size
-  The parent item isn't giving it space
-  There's a missing width/height binding
-  Or the anchors aren't set correctly
Comment 15 David Edmundson 2025-02-17 13:49:54 UTC

*** This bug has been marked as a duplicate of bug 440244 ***