Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 946121 - kde-plasma/kpipewire should depend on media-video/ffmpeg[vpx]
Summary: kde-plasma/kpipewire should depend on media-video/ffmpeg[vpx]
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-08 16:34 UTC by Avraham Hollander
Modified: 2025-03-14 18:11 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Avraham Hollander 2024-12-08 16:34:13 UTC
I tried to make a screen recording with Spectacle, and I got the following error:

kpipewire_record_logging: libvpx codec not found
kpipewire_record_logging: No encoder could be created

After enabling media-video/ffmpeg[vpx] and rebuilding it, it works. This dependency is not specified upstream; I made a bug report there too.
Comment 1 Andreas Sturmlechner gentoo-dev 2024-12-12 00:12:41 UTC
You won't show us any of your USE flag settings on media-video/ffmpeg, emerge --info at all?
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-12-12 00:18:31 UTC
https://invent.kde.org/search?search=codec%20not%20found&nav_source=navbar&project_id=1911&group_id=1568&search_code=true&repository_ref=master

so it may depend on consumers of kpipewire, not kpipewire itself, but... 

I found https://invent.kde.org/graphics/spectacle/-/merge_requests/214 and I don't see that UI in my Spectacle when starting a video recording? I want to understand if Spectacle always requires certain codecs or if it supports many.
Comment 3 Avraham Hollander 2024-12-12 00:21:30 UTC
(In reply to Andreas Sturmlechner from comment #1)
> You won't show us any of your USE flag settings on media-video/ffmpeg,
> emerge --info at all?

Sorry, I was just lazy.

[ebuild   R   ] media-video/ffmpeg-7.0.2-r1  USE="encode gnutls gpl lcms mp3 network opus pulseaudio qsv threads v4l vaapi vorbis vulkan x264 -X -alsa -amf -amr -amrenc (-appkit) -bluray -bs2b -bzip2 -cdio -chromaprint -chromium -codec2 -cpudetection -cuda -dav1d -debug -doc -fdk -flite -fontconfig -frei0r -fribidi -gcrypt -glslang -gme -gmp -gsm -hardcoded-tables -iconv -iec61883 -ieee1394 -jack -jpeg2k -jpegxl -kvazaar -ladspa -libaom -libaribb24 -libass -libcaca -libdrm -libdvdnav -libdvdread -libilbc -libplacebo -librtmp -libsoxr -libtesseract -libv4l -libxml2 -lv2 -lzma (-mipsdspr1) (-mipsdspr2) (-mipsfpu) -modplug -nvenc -openal -opencl -opengl -openh264 -openssl -oss -pic -postproc -qrcode -quirc -rav1e -rubberband -samba -sdl -shaderc -snappy -sndio -soc -speex -srt -ssh -static-libs -svg -svt-av1 -test -theora -truetype -twolame -vdpau -vpx -verify-sig -vidstab -vmaf -webp -x265 -xvid -zeromq -zimg -zlib -zvbi" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext sse sse2 sse3 sse4_1 sse4_2 ssse3 -3dnow -3dnowext -fma4 -xop" FFTOOLS="-aviocat -cws2fws -ffescape -ffeval -ffhash -fourcc2pixfmt -graph2dot -ismindex -pktdumper -qt-faststart -sidxindex -trasher"

Portage 3.0.66.1 (python 3.13.1-final-0, default/linux/amd64/23.0/desktop/plasma, gcc-14, glibc-2.40-r7, 6.12.3-20R5-sched-ext x86_64)
=================================================================
System uname: Linux-6.12.3-20R5-sched-ext-x86_64-Intel-R-_Core-TM-_i5-10310U_CPU_@_1.70GHz-with-glibc2.40
KiB Mem:     7841224 total,   2000300 free
KiB Swap:   24617976 total,  24456332 free
Head commit of repository gentoo: 87e7b5b0f859bf3601d00ae8a90062c075156268

Head commit of repository guru: 9884ed342265673eb06bae30b6331b04300a7633

Head commit of repository librewolf: ff7ec677faa8d4f3e15bff7c0cd483dc6dfb1d58

Head commit of repository pf4public: 0df6419f5fda3af3144fa2f921d3a9b8185157a9

Head commit of repository xarblu-overlay: 11c774bdf8e9d65a5dd493effc9d3f10e2b54e75

sh dash 0.5.12-r1
ld GNU ld (Gentoo 2.43 p3) 2.43.1
app-misc/pax-utils:        1.3.8::gentoo
app-shells/bash:           5.2_p37::gentoo
dev-build/autoconf:        2.71-r7::gentoo, 2.72-r1::gentoo
dev-build/automake:        1.17-r1::gentoo
dev-build/cmake:           3.31.2::gentoo
dev-build/libtool:         2.5.4::gentoo
dev-build/make:            4.4.1-r100::gentoo
dev-build/meson:           1.6.0-r1::gentoo
dev-lang/perl:             5.40.0-r1::gentoo
dev-lang/python:           3.12.8::gentoo, 3.13.1::gentoo
dev-lang/rust:             1.83.0-r1::gentoo
sys-apps/baselayout:       2.17::gentoo
sys-apps/openrc:           0.55.1::gentoo
sys-apps/sandbox:          2.40::gentoo
sys-devel/binutils:        2.43-r2::gentoo
sys-devel/binutils-config: 5.5.2::gentoo
sys-devel/clang:           19.1.5::gentoo
sys-devel/gcc:             14.2.1_p20241116::gentoo
sys-devel/gcc-config:      2.12.1::gentoo
sys-devel/lld:             19.1.5::gentoo
sys-devel/llvm:            19.1.5::gentoo
sys-kernel/linux-headers:  6.12::gentoo (virtual/os-headers)
sys-libs/glibc:            2.40-r7::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/repo/gentoo.git
    priority: -1000
    volatile: False

guru
    location: /var/db/repos/guru
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/repo/proj/guru.git
    masters: gentoo
    volatile: False

librewolf
    location: /var/db/repos/librewolf
    sync-type: git
    sync-uri: https://codeberg.org/librewolf/gentoo.git
    masters: gentoo
    volatile: False

pf4public
    location: /var/db/repos/pf4public
    sync-type: git
    sync-uri: https://github.com/PF4Public/gentoo-overlay.git
    masters: gentoo
    volatile: False

xarblu-overlay
    location: /var/db/repos/xarblu
    sync-type: git
    sync-uri: https://github.com/xarblu/xarblu-overlay
    masters: gentoo
    volatile: False

local
    location: /var/db/repos/local
    masters: gentoo
    priority: 10
    volatile: False

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fno-stack-clash-protection -fno-stack-protector -flto=auto -fuse-linker-plugin -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d"
CXXFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fno-stack-clash-protection -fno-stack-protector -flto=auto -fuse-linker-plugin -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fno-stack-clash-protection -fno-stack-protector -flto=auto -fuse-linker-plugin -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fno-stack-clash-protection -fno-stack-protector -flto=auto -fuse-linker-plugin -pipe"
GENTOO_MIRRORS="https://mirrors.rit.edu/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
LEX="flex"
MAKEOPTS="-j8"
PKGDIR="/var/cache/binpkgs"
PORTAGE_COMPRESS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
RUSTFLAGS="-C opt-level=3 -C target-cpu=native"
SHELL="/bin/fish"
USE="aac acl acpi activities amd64 bluetooth cairo caps cdr crypt cups custom-cflags dbus declarative dri dts dvdr elogind encode exif ffmpeg filecaps flac ftp geolocation gif gui io-uring ipv6 jpeg kde kf6compat kwallet lcms libnotify libtirpc lto mad man mng mp3 mp4 mpeg mtp native-extensions ncurses networkmanager ogg opengl openmp opus orc pam pango pdf pgo pipewire plasma png policykit ppds pulseaudio qml qsv qt6 readline screencast seccomp semantic-desktop sendto sound spell ssl startup-notification svg system-bootstrap test-rust threads truetype udev udisks unicode upower usb v4l vaapi vorbis vulkan wayland webp widgets wifi wxwidgets x264 xattr xft xv zeroconf" ABI_X86="64" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 aes avx avx2 f16c fma3 pclmul popcnt rdrand sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="efi-64" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput wacom" KERNEL="linux" L10N="en en-US" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="luajit" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_13" PYTHON_TARGETS="python3_13" RUBY_TARGETS="ruby32" SANE_BACKENDS="epson epson2" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
YACC="byacc"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, SIZE, STRINGS, STRIP, YFLAGS
Comment 4 Avraham Hollander 2024-12-12 00:48:30 UTC
(In reply to Sam James from comment #2)
> https://invent.kde.org/
> search?search=codec%20not%20found&nav_source=navbar&project_id=1911&group_id=
> 1568&search_code=true&repository_ref=master
> 
> so it may depend on consumers of kpipewire, not kpipewire itself, but... 
> 
> I found https://invent.kde.org/graphics/spectacle/-/merge_requests/214 and I
> don't see that UI in my Spectacle when starting a video recording? I want to
> understand if Spectacle always requires certain codecs or if it supports
> many.

Those commits do not exist in the master branch anymore; I couldn't display them with git show and I can't find them with git log. The code also no longer exists in master or v24.08.3. Maybe it was reverted or something? But wouldn't you still see that in the commit log? Not sure what's going on there.

From poking around Spectacle's source code it looks like it's supposed to fall back to H.264 automatically as decided by kpipewire. Though I'm struggling to understand exactly how they are hooked together.

I also have x264 support enabled in FFMpeg and so media-libs/x264 is installed. But it's not falling back onto that for some reason.
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-12-12 09:15:02 UTC
(In reply to Avraham Hollander from comment #4)
> (In reply to Sam James from comment #2)
> > https://invent.kde.org/
> > search?search=codec%20not%20found&nav_source=navbar&project_id=1911&group_id=
> > 1568&search_code=true&repository_ref=master
> > 
> > so it may depend on consumers of kpipewire, not kpipewire itself, but... 
> > 
> > I found https://invent.kde.org/graphics/spectacle/-/merge_requests/214 and I
> > don't see that UI in my Spectacle when starting a video recording? I want to
> > understand if Spectacle always requires certain codecs or if it supports
> > many.
> 
> Those commits do not exist in the master branch anymore; I couldn't display
> them with git show and I can't find them with git log. The code also no
> longer exists in master or v24.08.3. Maybe it was reverted or something? But
> wouldn't you still see that in the commit log? Not sure what's going on
> there.

Did you accidentally clone with --depth=1 or something like that? I first did `git log --grep=Support`, then saw d081f2fdbd6bdd9d65643b1406a1ffc6883cfef8, then started to look at the history of src/Gui/RecordOptions.qml.

It seems to have moved in

commit 8e9ed17988fd7b26a7badf54f9fd14d10280a43e
Author: Noah Davis <noahadvs@gmail.com>
Date:   Wed Oct 4 05:01:45 2023 -0400

    Add video save options page to settings dialog

.. but I *still* don't see that in settings!

I feel more confused, not less :(