Themaister/Granite

compile with GRANITE_FFMPEG GRANITE_FFMPEG_VULKAN failed

qq297110281 opened this issue · 1 comments

compile with the latest code,error come with some unkown member in ffmpeg hwcontext_vulkan.h:

/Users/xxx/workspace/Granite/video/ffmpeg_decode.cpp:892:9: error: no member named 'lock_queue' in 'AVVulkanDeviceContext'
vk->lock_queue = [](AVHWDeviceContext *ctx, int, int) {
~~ ^
/Users/xxx/workspace/Granite/video/ffmpeg_decode.cpp:897:9: error: no member named 'unlock_queue' in 'AVVulkanDeviceContext'
vk->unlock_queue = [](AVHWDeviceContext *ctx, int, int) {
~~ ^
/Users/xxx/workspace/Granite/video/ffmpeg_decode.cpp:949:11: error: no member named 'img_flags' in 'AVVulkanFramesContext'
vk->img_flags |= VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT;
~~ ^
/Users/xxx/workspace/Granite/video/ffmpeg_decode.cpp:1192:34: error: no member named 'lock_frame' in 'AVVulkanFramesContext'
inline void lock() const { vk->lock_frame(frames, vk_frame); }
~~ ^
/Users/xxx/workspace/Granite/video/ffmpeg_decode.cpp:1193:36: error: no member named 'unlock_frame' in 'AVVulkanFramesContext'
inline void unlock() const { vk->unlock_frame(frames, vk_frame); }
~~ ^
/Users/xxx/workspace/Granite/video/ffmpeg_decode.cpp:1207:19: error: no member named 'img_flags' in 'AVVulkanFramesContext'
info.flags = vk->img_flags;
~~ ^
/Users/panbin/workspace/Granite/video/ffmpeg_decode.cpp:1241:16: error: no member named 'queue_family' in 'AVVkFrame'
if (vk_frame->queue_family[0] != VK_QUEUE_FAMILY_IGNORED)

it might be a misuse of the headers from your system and the FFMpeg folder. It is not using the headers from the FFMpeg include folder. I used a toolbox and installed the ffmpeg vulkan decode branch to /usr/local/ and then built Granite in the toolbox. You can also build and install FFMPEG to your /usr/local on your machine.