h265dec: gallium driver doesn't allow surfaceless contexts
When i try playback a h265 video with command line below. it says "no valid frames found" and don't play.
gst-launch-1.0 -v filesrc location=./h265inmp4.mp4 ! qtdemux ! vaapidecodebin ! glimagesink
this is the video i used h265inmp4
My environment :
AMD 3550H CPU
Ubuntu 20.04
AMDGPU-PRO-Driver 20.20
Gstreamer 1.18.1
VAINFO is vainfo.log
Full log with GST_DEBUG="vaapi*:6,*:5" bug.log
what weird is i try to use vlc and mpv play the video with vaapi hardware accerlation. they all work. And i try to use gstreamer-vappi play a h264, there is no problem.
those are the logs.
VLC log is
`VLC media player 3.0.9.2 Vetinari (revision 3.0.9.2-0-gd4c1aefe4d)
[0000563a9e6b25c0] main libvlc: 正在以默认界面运行 vlc。使用“cvlc”可以无界面模式使用 vlc。
[00007f7f28003480] egl_x11 gl error: cannot select OpenGL API
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
[00007f7f3cc107c0] avcodec decoder: Using Mesa Gallium driver 20.0.5 for AMD RAVEN (DRM 3.37.0, 5.4.0-54-generic, LLVM 10.0.0) for hardware decoding
[00007f7f28321990] vaapi_filters filter error: vaDeriveImage: operation failed
^CQObject::~QObject: Timers cannot be stopped from another thread
`
MPV log is mpv.log
What is causing this problem ? Thanks for reply.