Closed DI-HUO-MING-YI closed 3 months ago
I ran into this same issue, you need to rebuild the project. In my case running the cmake ..
and make
commands in the build directory again led to this error:
./linux-wallpaperengine/src/WallpaperEngine/Audio/CAudioStream.h:197:9: error: ‘AVFifoBuffer’ does not name a type; did you mean ‘AVBuffer’?
197 | AVFifoBuffer* packetList;
| ^~~~~~~~~~~~
| AVBuffer
This is fixed if you add
add_compile_definitions(FF_API_FIFO_OLD_API=1)
add_compile_definitions(FF_API_OLD_CHANNEL_LAYOUT=1)
in the CMakeLists.txt file. I'm not an expert in cmake or ffmepg or this project so that might be a terrible solution that has negative impacts, but it seems to build ok.
Although when I now run it, I get an eglGetPlatformDisplayEXT failed!
message which is probably a completely different issue
Just tested running inside a window and that works, so it seems like a display issue
I managed to fix it by replacing OPENGL_egl_LIBRARY
with EGL
in the CMakeLists.txt file:
if (WAYLAND_SUPPORT_FOUND)
target_link_libraries(linux-wallpaperengine PUBLIC
pthread
wayland-cursor
wayland-client
wayland-egl
EGL)
endif()
here's the patch file for the final changes:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 585a76e..1cd3407 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,6 +13,8 @@ set(OpenGL_GL_PREFERENCE "LEGACY")
set(DATADIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME})
set(PATCHESDIR ${DATADIR}/patches/)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+add_compile_definitions(FF_API_FIFO_OLD_API=1)
+add_compile_definitions(FF_API_OLD_CHANNEL_LAYOUT=1)
if(NOT ERRORONLY)
set(ERRORONLY 0)
@@ -454,7 +456,7 @@ if (WAYLAND_SUPPORT_FOUND)
wayland-cursor
wayland-client
wayland-egl
- ${OPENGL_egl_LIBRARY})
+ EGL)
endif()
if(X11_SUPPORT_FOUND)
OPENGL_egl_LIBRARY is set to /usr/local/bin/libEGL.so
whereas plain EGL is found at /usr/include/EGL
, not sure why the libEGL.so one breaks
It just works. Thank you so much.
I use archlinux, and I updated the package ffmpge. and I get the error: ./linux-wallpaperengine: error while loading shared libraries: libavcodec.so.60: cannot open shared object file: No such file or directory
And, I can only find libavcodec.so.61 in /usr/lib