vah264dec + glimagesink: Green taint on video
Describe your issue
The issue first occurred with Clapper using the new va
plugins for VAAPI; see https://github.com/Rafostar/clapper/issues/258#issuecomment-1126699510 but Rafostar then provided a minimal test case that can be reproduced with bothglimagesink
and clappersink
(currently available in git master of Clapper) videosinks.
The entire video has a green taint while playing. The older VAAPI decoder plugin vaapidecodebin
seems to have no such issues.
Expected Behavior
To play the video using vah264dec without any green taint.
Observed Behavior
Entire video is green tainted.
Setup
- Operating System: Arch Linux
- Device: Computer
- GStreamer Version: 1.20.2
- Command line:
Steps to reproduce the bug
The minimal test case for glimagesink
and vah264dec
- Run either
$ GST_PLUGIN_FEATURE_RANK=vah264dec:300 gst-play-1.0 --videosink=glimagesink file.mp4
or with--videosink=clappersink
and see green taint on entire video.
What works ie. no green taint:
GST_PLUGIN_FEATURE_RANK=vaapidecodebin:300 gst-play-1.0 --videosink=glimagesink file.mp4
How reproducible is the bug?
Always
Screenshots if relevant
See the linked GitHub comment.
Solutions you have tried
None
Related non-duplicate issues
Maybe related gst-plugins-bad#1513 but unlike that report the issue happens to the entire video for me.
Additional Information
This is the file information from ffprobe
:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/file.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.9.100
Duration: 02:10:07.35, start: 0.000000, bitrate: 1191 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1280x682 [SAR 1023:1024 DAR 15:8], 1050 kb/s, 23.98 fps, 23.98 tbr, 13978 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 134 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
gst-inspect-1.0 vaapi
Plugin Details:
Name vaapi
Description VA-API based elements
Filename /usr/lib/gstreamer-1.0/libgstvaapi.so
Version 1.20.2
License LGPL
Source module gstreamer-vaapi
Source release date 2022-05-02
Binary package gstreamer-vaapi
Origin URL Unknown package origin
vaapidecodebin: VA-API Decode Bin
vaapih264dec: VA-API H264 decoder
vaapih264enc: VA-API H264 encoder
vaapih265dec: VA-API H265 decoder
vaapijpegdec: VA-API JPEG decoder
vaapimpeg2dec: VA-API MPEG2 decoder
vaapipostproc: VA-API video postprocessing
vaapisink: VA-API sink
vaapivc1dec: VA-API VC1 decoder
9 features:
+-- 9 elements
vainfo
vainfo: VA-API version: 1.14 (libva 2.14.0)
vainfo: Driver version: Mesa Gallium driver 22.0.3 for AMD STONEY (LLVM 13.0.1, DRM 3.44, 5.17.7-arch1-1)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
I can't provide the file as it is quite large, if needed I can extract a few seconds from it. Please ask if anything else is required.