Skip to content

Instantly share code, notes, and snippets.

@lidgnulinux
Created April 3, 2026 04:18
Show Gist options
  • Select an option

  • Save lidgnulinux/7cc24081e0ecf9dc1a6afc2bb1993d67 to your computer and use it in GitHub Desktop.

Select an option

Save lidgnulinux/7cc24081e0ecf9dc1a6afc2bb1993d67 to your computer and use it in GitHub Desktop.
Fix error "unknown type name _AVVulkanDeviceContext_; did you mean _AVDRMDeviceContext_?" When build ffmpeg.

Some months ago and also today I met error when building ffmpeg. The error was :

...
fftools/ffplay_renderer.c:118:11: error: unknown type name _AVVulkanDeviceContext_; did you mean _AVDRMDeviceContext_?
  118 |     const AVVulkanDeviceContext *hwctx = avhwctx->hwctx;
      |           ^~~~~~~~~~~~~~~~~~~~~
      |           AVDRMDeviceContext
fftools/ffplay_renderer.c:121:10: error: request for member _lock_queue_ in something not a structure or union
  121 |     hwctx->lock_queue(avhwctx, qf, qidx);
      |          ^~
fftools/ffplay_renderer.c: In function _hwctx_unlock_queue_:
fftools/ffplay_renderer.c:129:11: error: unknown type name _AVVulkanDeviceContext_; did you mean _AVDRMDeviceContext_?
  129 |     const AVVulkanDeviceContext *hwctx = avhwctx->hwctx;
      |           ^~~~~~~~~~~~~~~~~~~~~
      |           AVDRMDeviceContext
fftools/ffplay_renderer.c:132:10: error: request for member _unlock_queue_ in something not a structure or union
  132 |     hwctx->unlock_queue(avhwctx, qf, qidx);
      |          ^~
fftools/ffplay_renderer.c: In function _create_vk_by_hwcontext_:
fftools/ffplay_renderer.c:208:5: error: unknown type name _AVVulkanDeviceContext_; did you mean _AVDRMDeviceContext_?
  208 |     AVVulkanDeviceContext *hwctx;
      |     ^~~~~~~~~~~~~~~~~~~~~
      |     AVDRMDeviceContext
fftools/ffplay_renderer.c:232:14: error: request for member _get_proc_addr_ in something not a structure or union
  232 |     if (hwctx->get_proc_addr != SDL_Vulkan_GetVkGetInstanceProcAddr()) {
      |              ^~
fftools/ffplay_renderer.c:239:31: error: request for member _get_proc_addr_ in something not a structure or union
  239 |     ctx->get_proc_addr = hwctx->get_proc_addr;
      |                               ^~
fftools/ffplay_renderer.c:240:22: error: request for member _inst_ in something not a structure or union
  240 |     ctx->inst = hwctx->inst;
      |                      ^~
fftools/ffplay_renderer.c:243:30: error: request for member _inst_ in something not a structure or union
  243 |             .
.....

After some research I tried some trial and I found the solution. The solution is :

  • Rebuild libplacebo with vulkan enabled.
  • build the ffmpeg with vulkan enabled.

It's really weird, because the previous ffmpeg build I disable vulkan and somehow ffplay still need it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment