We are getting a crashloop on aarch64 on Fedora 40 Beta: https://bugzilla.redhat.com/show_bug.cgi?id=2271326 . According to the backtrace, it's crashing in epoll_pwait()
. Is this the same issue?
...
Core was generated by `/usr/libexec/tracker-extract-3 --socket-fd 3'.
Program terminated with signal SIGSYS, Bad system call.
#0 0x0000ffffb83e14d0 in __GI_epoll_pwait (epfd=6, events=events@entry=0xffffb400e4e8, maxevents=maxevents@entry=1, timeout=timeout@entry=0, set=set@entry=0x0) at ../sysdeps/unix/sysv/linux/epoll_pwait.c:40
40 return SYSCALL_CANCEL (epoll_pwait, epfd, events, maxevents,
[Current thread is 1 (Thread 0xffffb400f080 (LWP 4984))]
Thread 1 (Thread 0xffffb400f080 (LWP 4984)):
#0 0x0000ffffb83e14d0 in __GI_epoll_pwait (epfd=6, events=events@entry=0xffffb400e4e8, maxevents=maxevents@entry=1, timeout=timeout@entry=0, set=set@entry=0x0) at ../sysdeps/unix/sysv/linux/epoll_pwait.c:40
sc_ret = 6
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x0000ffffb83e165c in epoll_wait (epfd=<optimized out>, events=events@entry=0xffffb400e4e8, maxevents=maxevents@entry=1, timeout=timeout@entry=0) at ../sysdeps/unix/sysv/linux/epoll_wait.c:32
No locals.
#2 0x0000ffffb7b3d0d4 in monitor_modify_epoll (mn=mn@entry=0xffffa4001b90, me=<optimized out>, enable=enable@entry=1) at libmount/src/monitor.c:621
events = {{events = 3090738660, data = {ptr = 0x10, fd = 16, u32 = 16, u64 = 16}}}
ev = {events = 2147483649, data = {ptr = 0xffffa4001bc0, fd = -1543496768, u32 = 2751470528, u64 = 281473433213888}}
fd = 7
__PRETTY_FUNCTION__ = "monitor_modify_epoll"
#3 0x0000ffffb7b3dab8 in mnt_monitor_get_fd (mn=0xffffa4001b90) at libmount/src/monitor.c:710
itr = {p = 0xffffa4001c48, head = 0xffffa4001b98, direction = 0}
me = <optimized out>
rc = <optimized out>
itr = <optimized out>
me = <optimized out>
rc = <optimized out>
err = <optimized out>
#4 mnt_monitor_get_fd (mn=0xffffa4001b90) at libmount/src/monitor.c:688
itr = <optimized out>
me = <optimized out>
rc = 0
err = <optimized out>
#5 0x0000ffffb88e46f8 in mount_monitor_start () at ../gio/gunixmounts.c:2062
proc_mounts_channel = 0x0
error = 0x0
ret = <optimized out>
mtab_path = 0xffffb8993950 "/proc/self/mountinfo"
file = <optimized out>
#6 0x0000ffffb8851d08 in g_context_specific_group_change_state (user_data=user_data@entry=0xffffb8a11738 <mount_monitor_group>) at ../gio/gcontextspecificgroup.c:105
group = 0xffffb8a11738 <mount_monitor_group>
#7 0x0000ffffb8ad7594 in g_idle_dispatch (source=0xaaab046d68e0, callback=0xffffb8851cd0 <g_context_specific_group_change_state>, user_data=0xffffb8a11738 <mount_monitor_group>) at ../glib/gmain.c:6150
idle_source = 0xaaab046d68e0
again = <optimized out>
#8 0x0000ffffb8ad0994 in g_main_dispatch (context=0xaaab046e8bc0) at ../glib/gmain.c:3344
dispatch = 0xffffb8ad7560 <g_idle_dispatch>
prev_source = <optimized out>
begin_time_nsec = 1680709137737
was_in_call = 0
user_data = 0xffffb8a11738 <mount_monitor_group>
callback = 0xffffb8851cd0 <g_context_specific_group_change_state>
cb_funcs = 0xffffb8bf02e0 <g_source_callback_funcs>
cb_data = 0xaaab046d6a70
need_destroy = <optimized out>
source = 0xaaab046d68e0
current = 0xffffa4000bb0
i = <optimized out>
__func__ = <optimized out>
#9 g_main_context_dispatch_unlocked (context=0xaaab046e8bc0) at ../glib/gmain.c:4152
No locals.
#10 0x0000ffffb8b35898 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0xaaab046e8bc0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217
max_priority = 2147483647
timeout = -1
some_ready = 1
nfds = <optimized out>
allocated_nfds = 1
fds = 0xaaab046e8de0
begin_time_nsec = <optimized out>
#11 0x0000ffffb8ad2064 in g_main_context_iteration (context=0xaaab046e8bc0, may_block=may_block@entry=1) at ../glib/gmain.c:4282
retval = <optimized out>
#12 0x0000ffffb8ad20cc in glib_worker_main (data=<optimized out>) at ../glib/gmain.c:6442
No locals.
#13 0x0000ffffb8b0243c in g_thread_proxy (data=0xaaab046e5ab0) at ../glib/gthread.c:835
thread = 0xaaab046e5ab0
__func__ = "g_thread_proxy"
#14 0x0000ffffb8375e38 in start_thread (arg=0xffffb400f080) at pthread_create.c:447
ret = <optimized out>
pd = 0xffffb400f080
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473693319168, 8388608, 281473701701816, 281473781855872, 281473772378816, 0, 281473693253632, 8448320, 281473781854016, 281473693253632, 281473701701904, 3841579475369573959, 0, 3841579475437486707, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#15 0x0000ffffb83e118c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76
No locals.
...
I can confirm this is no longer reproducible on Fedora 40 with ncurses 20240127. Thanks again for detailed analysis!
No, that printf
has no effect. But disabling mouse support via
use_mouse=OFF
in ~/.tin/tinrc
does fix the annoying messages and makes q
and L
work correctly.
Thanks for the details, @egmontkob . They are really enlightening. I'll point tin upstream at this.
It's as if the arrow keys and q
key send extra/wrong codes not recognized by tin or its keyboard input library. Things work fine under xterm
.
Steps to reproduce:
sudo dnf -y install tin
NNTPSERVER=news.tin.org rtin
The issues I can reproduce are:
Bad command. Type 'h' for help.
is displayed almost all the time.q
) key to leave groups brings up Do you want to abort this operation? (y/N)
message, but only if you pressed some other key earlier (e.g. moved up or down to a different group). Entering/leaving the same group works.q
key doesn't work. Repeated pressing of q
brings up Save configuration before continuing? (Y/n)
message. Q
(capital q) works, but it quits without saving current configuration.q
key is working correctly, L
(capital ell) is not. In xterm
, it invokes the Enter Message-ID to go to:
correctly, but under GNOME Terminal it only shows Bad command. Type 'h' to help.
.Distribution: Fedora 39 (38 also affected) Component versions:
gnome-terminal-3.50.1-1.fc39.x86_64
vte291-0.74.2-1.fc39.x86_64
tin-2.6.2-5.fc39.x86_64
Downstream bug reports: Fedora bug #2251437
Downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=2250729 .
gnome-shell-45.2-1.fc39.x86_64
)When trying to log in to GNOME (on Wayland session) from GDM, I get returned to the GDM login screen almost immediately. Upon investigation in a working GNOME on Xorg session, it turns out that gnome-shell crashes with SIGSEGV. This looks similar to #7309 .
Log in to GNOME (on Wayland) session.
GNOME Shell crashes.
Session is launched successfully.
Stack trace from core dump:
Core was generated by `/usr/bin/gnome-shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fc35376ecc4 in g_rw_lock_get_impl (lock=0x78) at ../glib/gthread-posix.c:468
468 pthread_rwlock_t *impl = g_atomic_pointer_get (&lock->p);
[Current thread is 1 (Thread 0x7fc325bfe6c0 (LWP 11051))]
(gdb) where
#0 0x00007fc35376ecc4 in g_rw_lock_get_impl (lock=0x78) at ../glib/gthread-posix.c:468
#1 g_rw_lock_writer_lock (rw_lock=0x78) at ../glib/gthread-posix.c:554
#2 0x00007fc352d82fb3 in update_internal_xkb_state (device=device@entry=0x55de69caaef0,
new_latched_mask=new_latched_mask@entry=0, new_locked_mask=new_locked_mask@entry=0)
at ../src/backends/native/meta-input-device-native.c:491
#3 0x00007fc352d83646 in meta_input_device_native_apply_kbd_a11y_settings_in_impl (device=0x55de69caaef0,
settings=0x7fc325bfcee0) at ../src/backends/native/meta-input-device-native.c:1275
#4 0x00007fc352daecd2 in evdev_add_device (libinput_device=0x7fc310072e20, seat_impl=<optimized out>)
at ../src/backends/native/meta-seat-impl.c:1708
#5 process_base_event (event=0x7fc310077480, seat_impl=0x55de69ca8670) at ../src/backends/native/meta-seat-impl.c:1766
#6 process_event (event=0x7fc310077480, seat_impl=0x55de69ca8670) at ../src/backends/native/meta-seat-impl.c:2642
#7 process_events (seat_impl=seat_impl@entry=0x55de69ca8670) at ../src/backends/native/meta-seat-impl.c:2658
#8 0x00007fc352db12e7 in init_libinput (error=0x7fc325bfcf60, seat_impl=0x55de69ca8670)
at ../src/backends/native/meta-seat-impl.c:2828
#9 input_thread (seat_impl=0x55de69ca8670) at ../src/backends/native/meta-seat-impl.c:2902
#10 0x00007fc353745523 in g_thread_proxy (data=0x55de69b3bfc0) at ../glib/gthread.c:831
#11 0x00007fc352aac897 in start_thread (arg=<optimized out>) at pthread_create.c:444
#12 0x00007fc352b336fc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb)
My monitor, Philips 346P1CRH, sends 3440x1440@60Hz mode in EDID, but actually supports 3440x1440@100Hz. Its manual even mentions that specifically. So, I use cvt12 to generate a higher-refresh mode line with low pixel clock with CVT 1.2 reduced blanking. Now, it's not a big deal with my desktop GPU and that monitor if I get 3440x1440@60Hz. It has 600MHz pixel clock bandwith. However, I have a laptop with Intel HD Graphics 4000 GPU that has a 225MHz pixel clock limit on HDMI output. It becomes an issue if I can't use CVT 1.2 RB modes. With a custom CVT 1.2 RB modeline, I can get the native 3440x1440 mode with 43.48Hz refresh. Without a custom modeline, I get only 2560x1440@30Hz or 1920x1200@60Hz. Obviously, no monitor includes such specific CVT 1.2 RB modes in EDID, so custom Modelines are a must-have feature for my use case.
Also reproducible on F39 with gdm 44.1.
gdm displays only usernames instead of their display names for any users with display names longer than 25 characters.
Reproducible: Always
Steps to Reproduce:
Actual Results: Any display name longer than 25 characters is not shown. Instead only username is displayed.
Expected Results:
All display names, including those longer than 25 characters should be displayed. Longer names could be truncated with … (U+2026) replacing the part that doesn't fit.
Additional Info: This is on Fedora 38 with gdm-44.1-1.fc38. Originally reported as #2237846
Dominik Mierzejewski (7c4ee7fc) at 25 Jul 15:19
There's an extra parentheses in examples/media_player_gtkmm/player_window.cc:141 causing compilation error when building for MinGW (GDK_WINDOWING_WIN32
is defined):
make[2]: Entering directory '/builddir/build/BUILD/gstreamermm-1.10.0/build_win32/examples'
/bin/sh ../libtool --tag=CXX --mode=link i686-w64-mingw32-g++ -Wall -std=c++11 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -fstack-protector -lssp -o dynamic_changing_element/example.exe dynamic_changing_element/main.o -lgiomm-2.4 -lglibmm-2.4 -lsigc-2.0 -lgstcheck-1.0 -lgstcontroller-1.0 -lgstnet-1.0 -lgstallocators-1.0 -lgstapp-1.0 -lgstfft-1.0 -lgstpbutils-1.0 -lgstaudio-1.0 -lgstriff-1.0 -lgstrtp-1.0 -lgstrtsp-1.0 -lgio-2.0 -lgstsdp-1.0 -lgsttag-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lintl ../gstreamer/gstreamermm/libgstreamermm-1.0.la
libtool: link: i686-w64-mingw32-g++ -Wall -std=c++11 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -fstack-protector -o dynamic_changing_element/.libs/example.exe dynamic_changing_element/main.o ../gstreamer/gstreamermm/.libs/libgstreamermm-1.0.dll.a -lssp -lgiomm-2.4 -lglibmm-2.4 -lsigc-2.0 -lgstcheck-1.0 -lgstcontroller-1.0 -lgstnet-1.0 -lgstallocators-1.0 -lgstapp-1.0 -lgstfft-1.0 -lgstpbutils-1.0 -lgstaudio-1.0 -lgstriff-1.0 -lgstrtp-1.0 -lgstrtsp-1.0 -lgio-2.0 -lgstsdp-1.0 -lgsttag-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lintl -L/usr/i686-w64-mingw32/sys-root/mingw/lib
libtool: error: Could not determine the host path corresponding to
libtool: error: '/builddir/build/BUILD/gstreamermm-1.10.0/build_win32/gstreamer/gstreamermm/.libs'
libtool: error: Continuing, but uninstalled executables may not work.
libtool: error: Could not determine the host path corresponding to
libtool: error: '/builddir/build/BUILD/gstreamermm-1.10.0/build_win32/gstreamer/gstreamermm/.libs:/usr/i686-w64-mingw32/sys-root/mingw/lib:/usr/i686-w64-mingw32/sys-root/mingw/bin'
libtool: error: Continuing, but uninstalled executables may not work.
make[2]: Leaving directory '/builddir/build/BUILD/gstreamermm-1.10.0/build_win32/examples'
make[2]: Entering directory '/builddir/build/BUILD/gstreamermm-1.10.0/build_win32/examples'
depbase=`echo media_player_gtkmm/player_window.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
i686-w64-mingw32-g++ -DHAVE_CONFIG_H -I.. -I../gstreamer -I../../gstreamer -I/usr/i686-w64-mingw32/sys-root/mingw/include/giomm-2.4 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/giomm-2.4/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/glibmm-2.4 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/glibmm-2.4/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/sigc++-2.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/sigc++-2.0/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/gstreamer-1.0 -I/usr/i686-w64-mingw32/sys-root/mingw/include/orc-0.4 -mms-bitfields -I/usr/i686-w64-mingw32/sys-root/mingw/include/giomm-2.4 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/giomm-2.4/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/glibmm-2.4 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/glibmm-2.4/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/sigc++-2.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/sigc++-2.0/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/gstreamer-1.0 -I/usr/i686-w64-mingw32/sys-root/mingw/include/orc-0.4 -I/usr/i686-w64-mingw32/sys-root/mingw/include/gtkmm-3.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/gtkmm-3.0/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0 -I/usr/i686-w64-mingw32/sys-root/mingw/include/pango-1.0 -I/usr/i686-w64-mingw32/sys-root/mingw/include/harfbuzz -I/usr/i686-w64-mingw32/sys-root/mingw/include/freetype2 -I/usr/i686-w64-mingw32/sys-root/mingw/include/libpng16 -I/usr/i686-w64-mingw32/sys-root/mingw/include/fribidi -I/usr/i686-w64-mingw32/sys-root/mingw/include/cairo -I/usr/i686-w64-mingw32/sys-root/mingw/include/pixman-1 -I/usr/i686-w64-mingw32/sys-root/mingw/include/gdk-pixbuf-2.0 -I/usr/i686-w64-mingw32/sys-root/mingw/include/atk-1.0 -I/usr/i686-w64-mingw32/sys-root/mingw/include/cairomm-1.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/cairomm-1.0/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/pangomm-1.4 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/pangomm-1.4/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/atkmm-1.6 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/atkmm-1.6/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/gdkmm-3.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/gdkmm-3.0/include -mms-bitfields -Wall -std=c++11 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -MT media_player_gtkmm/player_window.o -MD -MP -MF $depbase.Tpo -c -o media_player_gtkmm/player_window.o ../../examples/media_player_gtkmm/player_window.cc &&\
mv -f $depbase.Tpo $depbase.Po
../../examples/media_player_gtkmm/player_window.cc:464:2: error: unterminated argument list invoking macro "GDK_WINDOW_HWND"
464 | }
| ^
../../examples/media_player_gtkmm/player_window.cc: In member function 'void PlayerWindow::on_video_area_realize()':
../../examples/media_player_gtkmm/player_window.cc:141:20: error: 'GDK_WINDOW_HWND' was not declared in this scope
141 | window_handler = GDK_WINDOW_HWND ((m_video_area.get_window()->gobj());
| ^~~~~~~~~~~~~~~
../../examples/media_player_gtkmm/player_window.cc:141:35: error: expected '}' at end of input
141 | window_handler = GDK_WINDOW_HWND ((m_video_area.get_window()->gobj());
| ^
../../examples/media_player_gtkmm/player_window.cc:133:1: note: to match this '{'
133 | {
| ^
make[2]: *** [Makefile:824: media_player_gtkmm/player_window.o] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/gstreamermm-1.10.0/build_win32/examples'
Once that is fixed, we get another error:
In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gdk/gdkwin32.h:37,
from ../../examples/media_player_gtkmm/player_window.cc:26:
../../examples/media_player_gtkmm/player_window.cc: In member function 'void PlayerWindow::on_video_area_realize()':
/usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gdk/win32/gdkwin32misc.h:50:57: error: invalid conversion from 'HGDIOBJ' {aka 'void*'} to 'gulong' {aka 'long unsigned int'} [-fpermissive]
50 | #define GDK_WINDOW_HWND(d) (gdk_win32_window_get_handle (d))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
| |
| HGDIOBJ {aka void*}
../../examples/media_player_gtkmm/player_window.cc:141:20: note: in expansion of macro 'GDK_WINDOW_HWND'
141 | window_handler = GDK_WINDOW_HWND (m_video_area.get_window()->gobj());
| ^~~~~~~~~~~~~~~
I found a similar code example here: https://gstreamer.freedesktop.org/documentation/video/gstvideooverlay.html?gi-language=c#gstvideooverlay-and-gtk and I'll submit a PR based on that shortly.
@mkolny ping.
@tpm Could you review and merge?
Still reproducible with GNOME (Shell) 44 on Fedora 38:
$ gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.freedesktop.DBus.Properties.Get 'org.gnome.Shell' 'ShellVersion'
(<'44.0'>,)
$ gnome-shell --version
GNOME Shell 44.0
And, just like Dennis said in #2072 (comment 1598578) , it starts showing correctly after a while.
@dnovomesky !905 (merged) does solve the problem, thank you very much!
Note: the libheif in GIMP build environment has libde265 and x265 codecs disabled, but they are installed at runtime.
Actually, there's a valid use case for building with support for all codecs enabled even if they're not installed at build-time. Fedora Linux cannot distribute the libde265 decoder and x265 encoder in the official repositories for legal reasons, so the libheif build has those disabled. There's a third-party repository which distributes the missing codecs separately, so that they can be available at runtime if user installs them. However, as GIMP is distributed via official repositories in Fedora, its build environment has libheif without those two codecs at build time. That combination makes GIMP build its HEIF plugin without support for the two codecs and then it's not possible to add them at runtime, if I understand correctly. See #9395 (closed) .
The HEIF file input plugin in GIMP fails to recognize a HEVC-encoded HEIF image:
$ file image1.heic
image1.heic: ISO Media, HEIF Image HEVC Main or Main Still Picture Profile
When trying to import this file in GIMP, I get an error dialog saying "Opening image1.heic failed: Unknown file type". This happens with libheif-1.15.1 with the libde265 decoder compiled as plugin (/usr/lib64/libheif/libheif-libde265.so):
If I downgrade libheif to 1.13.0 (which has libde265 decoder built-in), opening the same image works.
Is the bug reproducible? Always
Reproduction steps:
…
Expected result: Image is imported successfully.
Actual result: Import fails with "Unknown file type".
I found a similar issue in libheif's heif-thumbnailer tool and reported it there: https://github.com/strukturag/libheif/issues/825 . Following upstream fix, I tried adding the heif_init()/heif_deinit()
calls to file-heif plugin like this:
diff -up gimp-2.10.34/plug-ins/common/file-heif.c.orig gimp-2.10.34/plug-ins/common/file-heif.c
--- gimp-2.10.34/plug-ins/common/file-heif.c.orig 2023-02-21 20:56:19.000000000 +0100
+++ gimp-2.10.34/plug-ins/common/file-heif.c 2023-04-24 10:15:10.341889165 +0200
@@ -74,7 +74,7 @@ static gboolean save_dialog (SavePa
GimpPlugInInfo PLUG_IN_INFO =
{
init, /* init_proc */
- NULL, /* quit_proc */
+ heif_deinit, /* quit_proc */
NULL, /* query_proc */
run, /* run_proc */
};
@@ -109,6 +109,8 @@ init (void)
{ GIMP_PDB_INT32, "quality", "Quality factor (range: 0-100. 0 = worst, 100 = best)" },
{ GIMP_PDB_INT32, "lossless", "Use lossless compression (0 = lossy, 1 = lossless)" }
};
+
+ heif_init(NULL);
if (heif_have_decoder_for_format (heif_compression_HEVC)
#if LIBHEIF_HAVE_VERSION(1,8,0)
but I still get an error, although a different one (Unsupported codec):
Great, thanks for the reference.