Seek forward breaks playback on some H.265 MKVs
If I play some Matroska H.265 videos from start everything works fine but if I use seek forward (or choose any point in the timeline) playback stops and video freeze on the last frame before seeking. It acts as if the video was paused but I cannot resume it.
Seeking forward works fine in VLC (I can see hardware video acceleration in intel_gpu_top
). I can seek forward with H.264 videos through gstreamer as well.
Most of my videos have that issue, I found an H.265 1080p (medium bitrate) demo mkv that acts similarly but here it does not freeze in every case. You must seek more that one minute soon after video starts. gst-play-1.0 H.265\ HVEC\ Test\ 1.mkv
and then right arrow on the keyboard works probably best to reproduce this issue.
Logs
gst-discoverer-1.0 video.mkv
Topology:
container: Matroska
subtitles: PGS subtitles
audio: MPEG-4 AAC
video: H.265 (Main Profile)
Properties:
Duration: 0:22:58.368000000
Seekable: yes
Live: no
Tags:
title: S01E01
container format: Matroska
language code: en
audio codec: MPEG-4 AAC audio
bitrate: 128457
extended comment: DURATION=00:22:58.368000000
video codec: HEVC
output of GST_DEBUG=vaapi*:5,*:4 gst-play-1.0 movie.mkv
vainfo
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_5
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.7.1)
vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.4.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSlice
VAProfileVP9Profile2 : VAEntrypointVLD
gst-inspect-1.0 vaapi
Plugin Details:
Name vaapi
Description VA-API based elements
Filename /usr/lib64/gstreamer-1.0/libgstvaapi.so
Version 1.16.2
License LGPL
Source module gstreamer-vaapi
Source release date 2019-12-03
Binary package gstreamer-vaapi
Origin URL http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
vaapijpegdec: VA-API JPEG decoder
vaapimpeg2dec: VA-API MPEG2 decoder
vaapih264dec: VA-API H264 decoder
vaapivc1dec: VA-API VC1 decoder
vaapivp8dec: VA-API VP8 decoder
vaapivp9dec: VA-API VP9 decoder
vaapih265dec: VA-API H265 decoder
vaapipostproc: VA-API video postprocessing
vaapidecodebin: VA-API Decode Bin
vaapisink: VA-API sink
vaapimpeg2enc: VA-API MPEG-2 encoder
vaapih265enc: VA-API H265 encoder
vaapivp8enc: VA-API VP8 encoder
vaapivp9enc: VA-API VP9 encoder
vaapijpegenc: VA-API JPEG encoder
vaapih264enc: VA-API H264 encoder
16 features:
+-- 16 elements