Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 868609 - media-video/pitivi-2021.05-r1 cannot continue editing a saved file after revisiting project
Summary: media-video/pitivi-2021.05-r1 cannot continue editing a saved file after revi...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2022-09-05 16:00 UTC by Anthony Guevara
Modified: 2024-03-04 00:06 UTC (History)
3 users (show)

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


Attachments
emerge-info.txt (emerge-info.txt,20.60 KB, text/plain)
2024-03-01 20:20 UTC, Alexander Lopatin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Anthony Guevara 2022-09-05 16:00:01 UTC
If you save a project then try to continue editing by opening the xges file then you cannot import the already edited clip. 

Reproducible: Always

Steps to Reproduce:
1. Run Pitivi
2. Press open button
3. Select xges file and hit button to open
Actual Results:

anthony@ghost ~ $ pitivi

(pitivi:6673): GStreamer-CRITICAL **: 11:54:47.903: The created element should be floating, this is probably caused by faulty bindings
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/editorperspective.py", line 485, in _project_manager_new_project_loaded_cb
    self.timeline_ui.set_project(project)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1579, in set_project
    self.timeline.set_project(project)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 492, in set_project
    self._add_layer(ges_layer)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1118, in _add_layer
    layer = Layer(ges_layer, self)
  File "/usr/lib64/pitivi/python/pitivi/timeline/layer.py", line 322, in __init__
    self._add_clip(ges_clip)
  File "/usr/lib64/pitivi/python/pitivi/timeline/layer.py", line 400, in _add_clip
    widget = ui_type(self, ges_clip)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1450, in __init__
    SourceClip.__init__(self, layer, ges_clip)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1433, in __init__
    Clip.__init__(self, layer, ges_clip)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1170, in __init__
    self._add_child(ges_timeline_element)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1467, in _add_child
    self.audio_widget = AudioUriSource(ges_timeline_element, self.timeline)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1074, in __init__
    TimelineElement.__init__(self, element, timeline)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 659, in __init__
    self.__previewer = self._get_previewer()
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1078, in _get_previewer
    previewer = AudioPreviewer(self._ges_elem, self.timeline.app.settings.previewers_max_cpu)
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1178, in __init__
    self.become_controlled()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 380, in become_controlled
    Previewer.manager.add_previewer(self)
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 304, in add_previewer
    self._start_previewer(previewer)
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 311, in _start_previewer
    previewer.start_generation()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1340, in start_generation
    self._start_levels_discovery()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1198, in _start_levels_discovery
    self._launch_pipeline()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1224, in _launch_pipeline
    clock = GObject.new(GObject.type_from_name("GstCpuThrottlingClock"))
  File "/usr/lib/python3.9/site-packages/gi/overrides/GObject.py", line 303, in type_from_name
    raise RuntimeError('unknown type name: %s' % name)
RuntimeError: unknown type name: GstCpuThrottlingClock
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/utils/pipeline.py", line 627, in _bus_message_cb
    self.app.gui.editor.timeline_ui.timeline.update_visible_overlays()
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 704, in update_visible_overlays
    self.app.gui.editor.viewer.overlay_stack.set_current_sources(sources)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 145, in set_current_sources
    overlay = self.__overlay_for_source(source)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 87, in __overlay_for_source
    overlay = MoveScaleOverlay(self, self.app.action_log, source)
  File "/usr/lib64/pitivi/python/pitivi/viewer/move_scale_overlay.py", line 302, in __init__
    Overlay.__init__(self, stack, source)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay.py", line 41, in __init__
    self._source.selected.connect("selected-changed", self.__source_selected_changed_cb)
AttributeError: 'VideoUriSource' object has no attribute 'selected'
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1310, in get_layer_at
    next_ges_layer = ges_layers[i + 1]
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1019, in _drag_motion_cb
    self.__create_clips(x, y)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 966, in __create_clips
    ges_layer, unused_on_sep = self.get_layer_at(y)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1314, in get_layer_at
    return ges_layer, self._separators[i + 1]
IndexError: list index out of range
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1310, in get_layer_at
    next_ges_layer = ges_layers[i + 1]
IndexError: list index out of range

^C
anthony@ghost ~ $ 


anthony@ghost ~ $ emerge --info
Portage 3.0.30 (python 3.8.13-final-0, default/linux/amd64/17.1, gcc-11.3.0, glibc-2.35-r8, 5.19.1 x86_64)
=================================================================
System uname: Linux-5.19.1-x86_64-AMD_Ryzen_7_4700U_with_Radeon_Graphics-with-glibc2.34
KiB Mem:     7509064 total,   3712432 free
KiB Swap:    8388604 total,   8388604 free
Timestamp of repository gentoo: Fri, 02 Sep 2022 15:30:01 +0000
Head commit of repository gentoo: acb2db1792563d9efdb86027e4e5c3b86333ac44
sh bash 5.1_p16-r1
ld GNU ld (Gentoo 2.38 p4) 2.38
distcc 3.4 x86_64-pc-linux-gnu [disabled]
app-misc/pax-utils:        1.3.5::gentoo
app-shells/bash:           5.1_p16-r1::gentoo
dev-java/java-config:      2.3.1::gentoo
dev-lang/perl:             5.34.1-r3::gentoo
dev-lang/python:           2.7.18_p15::gentoo, 3.7.13::gentoo, 3.8.13_p6::gentoo, 3.9.13_p4::gentoo, 3.10.6_p2::gentoo
dev-lang/rust:             1.62.1::gentoo
dev-util/cmake:            3.23.3::gentoo
dev-util/meson:            0.62.2::gentoo
sys-apps/baselayout:       2.8::gentoo
sys-apps/openrc:           0.44.10::gentoo
sys-apps/sandbox:          2.29::gentoo
sys-devel/autoconf:        2.71-r1::gentoo
sys-devel/automake:        1.16.5::gentoo
sys-devel/binutils:        2.38-r2::gentoo
sys-devel/binutils-config: 5.4.1::gentoo
sys-devel/clang:           14.0.6-r1::gentoo
sys-devel/gcc:             6.5.0-r3::gentoo, 8.4.0-r2::gentoo, 9.3.0-r2::gentoo, 10.4.0::gentoo, 11.3.0::gentoo
sys-devel/gcc-config:      2.5-r1::gentoo
sys-devel/libtool:         2.4.7::gentoo
sys-devel/llvm:            14.0.6-r2::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.15-r3::gentoo (virtual/os-headers)
sys-libs/glibc:            2.35-r8::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-extra-opts: 
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-metamanifest: yes

custom
    location: /var/db/repos/custom
    masters: gentoo
    priority: 0

brave-overlay
    location: /var/lib/layman/brave-overlay
    masters: gentoo
    priority: 50

steam-overlay
    location: /var/lib/layman/steam-overlay
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=znver2"
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/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=znver2"
DISTDIR="/usr/portage/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY 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"
FCFLAGS="-O2 -pipe -march=znver2"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -march=znver2"
GENTOO_MIRRORS="rsync://rsync.gtlib.gatech.edu/gentoo https://gentoo.osuosl.org/ https://mirrors.rit.edu/gentoo/ rsync://mirrors.rit.edu/gentoo/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
PKGDIR="/usr/portage/packages"
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="/home/anthony/portage"
SHELL="/bin/bash"
USE="X acl alsa amd64 bluetooth bzip2 cli consolekit crypt curl dri elogind fortran gdbm gif iconv ipv6 jpeg libglvnd libtirpc multilib ncurses nls nptl openmp pam pcre png pulseaudio readline seccomp split-usr ssl tk unicode xattr zlib" ABI_X86="64" ADA_TARGET="gnat_2020" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache 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="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="synaptics libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_6 python3_7 python3_8 python3_9 python3_10" RUBY_TARGETS="ruby27" USERLAND="GNU" VIDEO_CARDS="radeon vesa vmware" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
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, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

anthony@ghost ~ $ 


Currently I am using a custom rolled kernel from kernel . org version: 5.19.1
Comment 1 Matt Turner gentoo-dev 2022-10-10 22:42:41 UTC
Does this happen with version 2022.06?
Comment 2 Anthony Guevara 2022-10-14 19:09:37 UTC
Looks like this is no longer happening with version 2022.06. I tried cutting and splicing multiple clips without any issues and or crashing.



anthony@ghost ~/Movies/RecordMyDesktopV2 $ eix pitivi
[I] media-video/pitivi
     Available versions:  0.999-r3^t[1] 2022.06 {test v4l PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8 python3_9 python3_10"}
     Installed versions:  2022.06(07:50:14 PM 09/15/2022)(PYTHON_SINGLE_TARGET="python3_9 -python3_8 -python3_10")
     Homepage:            https://www.pitivi.org
     Description:         A non-linear video editor using the GStreamer multimedia framework

[1] "gentoo" /var/db/repos/gentoo
anthony@ghost ~/Movies/RecordMyDesktopV2 $ 



stderr output:

https://gist.github.com/amboxer21/87ab2201a5ceac427e143a0139670902
Comment 3 Matt Turner gentoo-dev 2022-10-14 19:46:12 UTC
Excellent, thank you for testing!
Comment 4 Anthony Guevara 2022-10-14 19:52:07 UTC
Sorry but I made a mistake and thought that pitivi crashed after cutting/splicing a clip but I missed the header info and realized that I had to edit a saved xges file. The program is still crashing.


STDERR:
anthony@ghost ~/Movies/RecordMyDesktopV2 $ pitivi
Missing soft dependency:
- cvtracker GStreamer element not found on the system
    -> enables object tracking
Missing soft dependency:
- librosa not found on the system
    -> enables beat detection functionality

(pitivi:10386): GStreamer-Video-CRITICAL **: 15:49:37.034: gst_video_frame_map_id: assertion 'info->height <= meta->height' failed

(pitivi:10386): GStreamer-Video-CRITICAL **: 15:49:38.790: gst_video_frame_map_id: assertion 'info->width <= meta->width' failed
**
GES:ERROR:../gst-editing-services-1.20.3/ges/ges-track.c:1310:ges_track_remove_element_full: assertion failed: (track->priv->valid_thread == g_thread_self())
Bail out! GES:ERROR:../gst-editing-services-1.20.3/ges/ges-track.c:1310:ges_track_remove_element_full: assertion failed: (track->priv->valid_thread == g_thread_self())
Aborted
anthony@ghost ~/Movies/RecordMyDesktopV2 $ 

Sorry again!
Comment 5 Matt Turner gentoo-dev 2022-10-14 22:51:55 UTC
Could you open a bug upstream at https://gitlab.gnome.org/GNOME/pitivi/-/issues ?

This isn't really something distro maintainers can fix.
Comment 6 Anthony Guevara 2022-10-30 17:39:00 UTC
Bug has been opened on Pitivi's Gitlab 

https://gitlab.gnome.org/GNOME/pitivi/-/issues/2633
Comment 7 Alexander Lopatin 2024-03-01 18:35:58 UTC
Still reproduces.

> Bug has been opened on Pitivi's Gitlab
They closed it:

> If you can reproduce the error with https://flathub.org/apps/details/org.pitivi.Pitivi then please reopen the issue. Otherwise one option is to contact the support group of your Linux distribution. Thanks

Who's currently maintaining the media-video/pitivi ebuild?

$ cat media-video/pitivi/metadata.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
  <maintainer type="project">
    <email>gnome@gentoo.org</email>
    <name>Gentoo GNOME Desktop</name>
  </maintainer>
  <maintainer type="project">
    <email>gstreamer@gentoo.org</email>
    <name>GStreamer package maintainers</name>
  </maintainer>
  <upstream>
    <remote-id type="gnome-gitlab">GNOME/pitivi</remote-id>
  </upstream>
</pkgmetadata>
Comment 8 Alexander Lopatin 2024-03-01 20:20:24 UTC
Issue keeps reproducing on =media-video/pitivi-2023.03-r2 (amd64) even after installing missing dependencies (https://gitlab.gnome.org/GNOME/pitivi/-/blob/2023.03.0/build/flatpak/org.pitivi.Pitivi.json#L31):
    =media-plugins/gst-plugins-opencv-1.22.3-r2
    =media-libs/gsound-1.0.3
    =media-plugins/frei0r-plugins-1.8.0
    pip3 install --user --break-system-packages --force-reinstall librosa==0.10.1 (or even 0.9.2)

Proper steps to reproduce:
1. rm -rfv ~/.local/share/recently-used.xbel ~/.cache/matplotlib ~/.cache/pitivi ~/.local/share/pitivi ~/.config/pitivi ~/.cache/gstreamer* ; pitivi
2. Click "New"
3. Import mp4 file with AVC video and AAC LC audio ("+ Import" button)
5. Drag the imported media on timeline
6. Observe unexpected messages:

Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1465, in _child_added_cb
    self._add_child(ges_timeline_element)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1503, in _add_child
    widget = self._create_child_widget(ges_source)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1539, in _create_child_widget
    self.audio_widget = AudioUriSource(ges_source, self.timeline)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1105, in __init__
    TimelineElement.__init__(self, element, timeline)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 664, in __init__
    self.previewer = self._get_previewer()
                     ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1109, in _get_previewer
    previewer = AudioPreviewer(self._ges_elem, self.timeline.app.settings.previewers_max_cpu)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1198, in __init__
    self.become_controlled()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 386, in become_controlled
    Previewer.manager.add_previewer(self)
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 310, in add_previewer
    self._start_previewer(previewer)
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 317, in _start_previewer
    previewer.start_generation()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1370, in start_generation
    self._start_levels_discovery()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1218, in _start_levels_discovery
    self._launch_pipeline()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1244, in _launch_pipeline
    clock = GObject.new(GObject.type_from_name("GstCpuThrottlingClock"))
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gi/overrides/GObject.py", line 303, in type_from_name
    raise RuntimeError('unknown type name: %s' % name)
RuntimeError: unknown type name: GstCpuThrottlingClock
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 818, in __selected_changed_cb
    if not self.keyframe_curve and self.__controlled_property and \
           ^^^^^^^^^^^^^^^^^^^
AttributeError: 'AudioUriSource' object has no attribute 'keyframe_curve'
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 818, in __selected_changed_cb
    if not self.keyframe_curve and self.__controlled_property and \
           ^^^^^^^^^^^^^^^^^^^
AttributeError: 'AudioUriSource' object has no attribute 'keyframe_curve'

(pitivi:15600): GStreamer-CRITICAL **: 04:05:23.792: gst_object_unref: assertion 'object != NULL' failed

(pitivi:15600): GES-CRITICAL **: 04:05:23.792: ges_layer_get_auto_transition: assertion 'GES_IS_LAYER (layer)' failed

7. Save the project

8. Close Pitivi

9. pitivi

10. Open the project from recent projects list

11. Observe unexpected messages:

Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/editorperspective.py", line 485, in _project_manager_new_project_loaded_cb
    self.timeline_ui.set_project(project)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1607, in set_project
    self.timeline.set_project(project)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 507, in set_project
    self._add_layer(ges_layer)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1144, in _add_layer
    layer = Layer(ges_layer, self)
            ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/layer.py", line 322, in __init__
    self._add_clip(ges_clip)
  File "/usr/lib64/pitivi/python/pitivi/timeline/layer.py", line 396, in _add_clip
    widget = ui_type(self, ges_clip)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1527, in __init__
    SourceClip.__init__(self, layer, ges_clip)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1483, in __init__
    Clip.__init__(self, layer, ges_clip)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1202, in __init__
    self._add_child(ges_timeline_element)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1503, in _add_child
    widget = self._create_child_widget(ges_source)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1539, in _create_child_widget
    self.audio_widget = AudioUriSource(ges_source, self.timeline)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1105, in __init__
    TimelineElement.__init__(self, element, timeline)
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 664, in __init__
    self.previewer = self._get_previewer()
                     ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/elements.py", line 1109, in _get_previewer
    previewer = AudioPreviewer(self._ges_elem, self.timeline.app.settings.previewers_max_cpu)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1198, in __init__
    self.become_controlled()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 386, in become_controlled
    Previewer.manager.add_previewer(self)
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 310, in add_previewer
    self._start_previewer(previewer)
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 317, in _start_previewer
    previewer.start_generation()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1370, in start_generation
    self._start_levels_discovery()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1218, in _start_levels_discovery
    self._launch_pipeline()
  File "/usr/lib64/pitivi/python/pitivi/timeline/previewers.py", line 1244, in _launch_pipeline
    clock = GObject.new(GObject.type_from_name("GstCpuThrottlingClock"))
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gi/overrides/GObject.py", line 303, in type_from_name
    raise RuntimeError('unknown type name: %s' % name)
RuntimeError: unknown type name: GstCpuThrottlingClock
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/utils/pipeline.py", line 631, in _bus_message_cb
    self.app.gui.editor.timeline_ui.timeline.update_visible_overlays()
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 719, in update_visible_overlays
    self.app.gui.editor.viewer.overlay_stack.set_current_sources(sources)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 145, in set_current_sources
    overlay = self.__overlay_for_source(source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 87, in __overlay_for_source
    overlay = MoveScaleOverlay(self, self.app.action_log, source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/move_scale_overlay.py", line 300, in __init__
    Overlay.__init__(self, stack, source)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay.py", line 41, in __init__
    self._source.selected.connect("selected-changed", self.__source_selected_changed_cb)
    ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'VideoUriSource' object has no attribute 'selected'


ERROR 04:06:24 pipeline          pitivi+utils+pipeline+pipeline0 _async_done_not_received_cb: Async operation timed out after 5 seconds, aborting: set_simple_state: <enum GST_STATE_PAUSED of type Gst.State> (../../usr/lib64/pitivi/python/pitivi/utils/pipeline.py:303)
ERROR 04:06:24 pipeline          pitivi+utils+pipeline+pipeline0 _recover: Resetting pipeline because error detected during playback. Try 1 (../../usr/lib64/pitivi/python/pitivi/utils/pipeline.py:475)
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/utils/pipeline.py", line 631, in _bus_message_cb
    self.app.gui.editor.timeline_ui.timeline.update_visible_overlays()
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 719, in update_visible_overlays
    self.app.gui.editor.viewer.overlay_stack.set_current_sources(sources)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 145, in set_current_sources
    overlay = self.__overlay_for_source(source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 87, in __overlay_for_source
    overlay = MoveScaleOverlay(self, self.app.action_log, source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/move_scale_overlay.py", line 300, in __init__
    Overlay.__init__(self, stack, source)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay.py", line 41, in __init__
    self._source.selected.connect("selected-changed", self.__source_selected_changed_cb)
    ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'VideoUriSource' object has no attribute 'selected'

12. Expected mp4 is not on timeline anymore

13. Dragging the mp4 to timeline fails with

Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/utils/pipeline.py", line 631, in _bus_message_cb
    self.app.gui.editor.timeline_ui.timeline.update_visible_overlays()
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 719, in update_visible_overlays
    self.app.gui.editor.viewer.overlay_stack.set_current_sources(sources)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 145, in set_current_sources
    overlay = self.__overlay_for_source(source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 87, in __overlay_for_source
    overlay = MoveScaleOverlay(self, self.app.action_log, source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/move_scale_overlay.py", line 300, in __init__
    Overlay.__init__(self, stack, source)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay.py", line 41, in __init__
    self._source.selected.connect("selected-changed", self.__source_selected_changed_cb)
    ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'VideoUriSource' object has no attribute 'selected'
ERROR 04:07:29 pipeline          pitivi+utils+pipeline+pipeline0 _async_done_not_received_cb: Async operation timed out after 5 seconds, aborting: set_simple_state: <enum GST_STATE_PAUSED of type Gst.State> (../../usr/lib64/pitivi/python/pitivi/utils/pipeline.py:303)
ERROR 04:07:29 pipeline          pitivi+utils+pipeline+pipeline0 _recover: Resetting pipeline because error detected during playback. Try 2 (../../usr/lib64/pitivi/python/pitivi/utils/pipeline.py:475)
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/utils/pipeline.py", line 631, in _bus_message_cb
    self.app.gui.editor.timeline_ui.timeline.update_visible_overlays()
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 719, in update_visible_overlays
    self.app.gui.editor.viewer.overlay_stack.set_current_sources(sources)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 145, in set_current_sources
    overlay = self.__overlay_for_source(source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay_stack.py", line 87, in __overlay_for_source
    overlay = MoveScaleOverlay(self, self.app.action_log, source)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/viewer/move_scale_overlay.py", line 300, in __init__
    Overlay.__init__(self, stack, source)
  File "/usr/lib64/pitivi/python/pitivi/viewer/overlay.py", line 41, in __init__
    self._source.selected.connect("selected-changed", self.__source_selected_changed_cb)
    ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'VideoUriSource' object has no attribute 'selected'
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1336, in get_layer_at
    next_ges_layer = ges_layers[i + 1]
                     ~~~~~~~~~~^^^^^^^
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1044, in _drag_motion_cb
    self.__create_clips(x, y)
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 992, in __create_clips
    ges_layer, unused_on_sep = self.get_layer_at(y)
                               ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1340, in get_layer_at
    return ges_layer, self._separators[i + 1]
                      ~~~~~~~~~~~~~~~~^^^^^^^
IndexError: list index out of range
Traceback (most recent call last):
  File "/usr/lib64/pitivi/python/pitivi/timeline/timeline.py", line 1336, in get_layer_at
    next_ges_layer = ges_layers[i + 1]
                     ~~~~~~~~~~^^^^^^^
IndexError: list index out of range

During handling of the above exception, another exception occurred:

(repeats many times)
Comment 9 Alexander Lopatin 2024-03-01 20:20:57 UTC
Created attachment 886469 [details]
emerge-info.txt
Comment 10 Alexander Lopatin 2024-03-02 22:32:40 UTC
Looks like the issue is somewhere in media-libs/gst-plugins-bad.

Issue doesn't reproduce with =media-plugins/gst-transcoder-1.14.1-r1 (which was removed from portage tree after commit 38b155fa1bf907617067c98eb4ba3a5d0790eb1a).

Requires `addpredict /dev # Prevent sandbox violations bug #570624` fix from media-libs/gst-plugins-bad.

With obsolete gst-transcoder I see other messages though:

Missing soft dependency:
- debugutilsbad GStreamer plug-in not found on the system
    -> enables a watchdog in the GStreamer pipeline. Use to detect errors happening in GStreamer and recover from them

(pitivi:1248): Gtk-WARNING **: 06:29:00.552: Calling org.freedesktop.portal.Inhibit.Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Inhibit” on object at path /org/freedesktop/portal/desktop

(pitivi:1248): Gtk-CRITICAL **: 06:29:01.205: gtk_application_uninhibit: assertion 'cookie > 0' failed
Comment 11 Alexander Lopatin 2024-03-04 00:06:39 UTC
Fixed all issues besides

(pitivi:14890): Gtk-WARNING **: 08:05:14.276: Calling org.freedesktop.portal.Inhibit.Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Inhibit” on object at path /org/freedesktop/portal/desktop

(pitivi:14890): Gtk-CRITICAL **: 08:05:18.728: gtk_application_uninhibit: assertion 'cookie > 0' failed

in https://github.com/gentoo/gentoo/pull/35614

Please merge, thanks.