c++ - 使用 OpenGL 渲染 VAAPI 表面?

标签 c++ c opengl ffmpeg vaapi

我的项目是使用与FFmpeg链接的VAAPI硬件加速。

我设法使用 VAAPI 进行解码,但是我希望能够使用 OpenGL 显示来自 VAAPI 的视频。

是否有允许这样做的功能?

我知道为此你必须使用 VAAPI 的表面 VASurfaceID但我不明白怎么...

最佳答案

您可以使用函数vaCreateSurfaceGLX() , vaCopySurfaceGLX()vaCopySurfaceGLX()为了这个目的。还有其他使用 DRM 和 EGL 的替代方案,但在我看来,实现起来要困难得多。您可以在 mpv source code 中找到使用 EGL 的示例。 .

关于c++ - 使用 OpenGL 渲染 VAAPI 表面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56322842/

相关文章:

c++ - 从 C++ dll 回调到 delphi 应用程序

android - 在 Android 上使用 OpenAL 录音

更改 C 函数中变量的值

c - 为什么允许 gcc 从结构中推测加载?

c++ - 为什么必须在何处以及为什么要放置"template"和"typename"关键字?

c++ - memcpy vector ?

c - 加法和乘法 C 语言

objective-c - Objective C (GNUStep) 中的简单 2D 图形

opengl - 在 OpenGL 中同时使用可编程和固定管道功能

openGL像素坐标