Menu

#97 Black screen with VAAPI on intel-media-driver 22.3.1

CVS head
open
None
5
2023-11-06
2023-11-04
Interlude
No

I'm using 2.2.0+git20231014-81-e2192b6 with intel-media-driver 22.3.1 on a Jammy-based Ubuntu (Kernel 6.2)
Hardware is the IGP of an Intel N100M.

When executing vdr-sxfe--hud --syslog xvdr+tcp://127.0.0.1 everything works, except it's software-decoded with a massive CPU load.

When executing vdr-sxfe --video=vaapi --hud --syslog xvdr+tcp://127.0.0.1 I see only a black screen with the audio playing. The menu is visible, useable and hardware-accelerated (confirmed by intel_gpu_tp).

libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()

Discussion

  • Interlude

    Interlude - 2023-11-04

    Verbose excerpt from syslog
    Source is a 720p DVB-S2 stream from a Astra 19.2E channel.

    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  sxfe_display_open(width=720, height=576, fullscreen=1, display=(null))
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  sxfe_display_open: Enabling HUD OSD
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  Display size : 508 x 285 mm
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]                 1920 x 1080 pixels
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]                 96dpi / 96dpi
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  Display ratio: 3789.473684/3779.527559 = 1.000000
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [scrnsaver] Error: The name org.gnome.SessionManager was not provided by any .service files
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [scrnsaver] Error: The name org.gnome.ScreenSaver was not provided by any .service files
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  opening HUD OSD window...
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  find_argb_visual: iteration 0 of 24
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    Using xine-lib config file /home/vdr/.xine/config_xineliboutput
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    Detected 4 CPUs
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    Enabling FFmpeg multithreaded video decoding
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] SysLogLevel found : value 3
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] LogToSysLog found : value yes
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] init class succeeded
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] vdr_class_get_instance
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] vdr_class_get_instance done.
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] vdr_plugin_open_net xvdr+tcp://127.0.0.1
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] Connecting (control) to tcp://127.0.0.1:37890 ...
    Nov  4 16:23:01 vdr vdr: [1450] [xine..put] Client 0 connected: 127.0.0.1:49664
    Nov  4 16:23:01 vdr vdr: [1450] loading /var/lib/vdr/plugins/xineliboutput/allowed_hosts.conf
    Nov  4 16:23:01 vdr vdr: [1450] [xine..put] setsockopt(SO_SNDBUF): got 262144 bytes
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] Server greeting: VDR-2.6.1 xineliboutput-2.2.0 OSDSTREAM READY
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] Got Client-ID: 0
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] Connected (control) to tcp://127.0.0.1:37890
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] Connecting (data) to tcp://127.0.0.1:37890 ...
    Nov  4 16:23:01 vdr vdr: [1450] [xine..put] Client 1 connected: 127.0.0.1:49678
    Nov  4 16:23:01 vdr vdr: [1450] loading /var/lib/vdr/plugins/xineliboutput/allowed_hosts.conf
    Nov  4 16:23:01 vdr vdr: [1450] [xine..put] setsockopt(SO_SNDBUF): got 262144 bytes
    Nov  4 16:23:01 vdr vdr: [1450] [xine..put] Data connection (TCP) requested
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [input_vdr] Data stream connected (TCP)
    Nov  4 16:23:01 vdr vdr: [1450] [xine..put] cBackgroundWriterI initialized (buffer 2048 kb)
    Nov  4 16:23:01 vdr vdr: [1450] [xine..put] cTcpWriter initialized (buffer 2048 kb)
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [input_vdr] Control thread started
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using MPEG video decoder "mpeg2"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using H.264      decoder "vdpau_h264_alter"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using HEVC       decoder "ffmpegvideo"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using VC-1       decoder "vdpau_vc1"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using MPEG audio decoder "mad"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using AC-3       decoder "a/52_spdif"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using AAC        decoder "faad"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using DTS        decoder "dts"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using LPCM       decoder "pcm"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using E-AC-3     decoder "ffmpegaudio"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [demux_vdr] Using AAC LATM   decoder "ffmpegaudio"
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    re-wiring post plugins
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    Event: INFO WINDOW 1920x1080
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  sxfe_xine_play: Enabling HUD OSD
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    Event: INFO ARGBOSD RLE
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3092] [input_vdr] XVDR_EVENT: INFO WINDOW 1920x1080#015
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3095] [input_vdr] read_block waiting for configuration data
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3096] [hdmi-cec]  started
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3092] [input_vdr] XVDR_EVENT: INFO ARGBOSD RLE#015
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3097] [console]   read_key: read(stdin) failed: no stdin
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3097] [console]   Keyboard thread terminating
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3097] [console]   Keyboard thread terminated
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3096] [hdmi-cec]  WARNING: CEC HDMI port not given and edid reading/parsing failed
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3096] [hdmi-cec]  No HDMI-CEC adapters found
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [input_vdr] ARGB OSD supported by video driver
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    opening post plugin: tvtime:method=Greedy2Frame,cheap_mode=0,pulldown=vector,framerate_mode=full,judder_correction=1,use_progressive_frame_flag=1,chroma_filter=0,enabled=1
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [xine-post]   * enable post tvtime --> not found, no action
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [xine-post]   * loading post tvtime:method=Greedy2Frame,cheap_mode=0,pulldown=vector,framerate_mode=full,judder_correction=1,use_progressive_frame_flag=1,chroma_filter=0,enabled=1
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [xine-post]     loaded plugins (type 1.0): tvtime 
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [xine-post]   * enable post tvtime --> found, enabled
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [xine-post]         wiring     tvtime[out] -> [in]video_out
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [xine-post]         wiring     stream[out] -> [in]tvtime    
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    Post plugin tvtime loaded and wired
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    closing post plugin: upmix
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    closing post plugin: autocrop
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    closing post plugin: swscale
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    closing post plugin: pp
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    closing post plugin: unsharp
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [vdr-fe]    closing post plugin: denoise3d
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3094] [input_vdr] WARNING: xine-engine setting "engine.buffers.video_num_frames":22 is too small for some HD channels
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3095] [demux_vdr] PMT changed, resetting demuxer
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3095] [demux_vdr] ts2es: reset, dropping buffer
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: message repeated 8 times: [ [3095] [demux_vdr] ts2es: reset, dropping buffer]
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3095] [demux_vdr] detect_recovery_point: found SPS at 7
    Nov  4 16:23:01 vdr vdr-sxfe[3085]: [3095] [demux_vdr] audio stream changed: 00000000 -> 03010000
    Nov  4 16:23:02 vdr vdr: [906] OSD size changed to 1920x1080 @ 1
    Nov  4 16:23:02 vdr vdr-sxfe[3085]: [3086] [lastpts  ] stream changed from (nil) to 0x557c682d26e0
    Nov  4 16:23:02 vdr vdr-sxfe[3085]: [3086] [lastpts  ] new stream is vdr stream
    Nov  4 16:23:04 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    Keypress: XKeySym m  
    Nov  4 16:23:04 vdr vdr-sxfe[3085]: [3092] [input_vdr] XVDR_EVENT: KEY XKeySym m  #015
    Nov  4 16:23:05 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    Keypress: XKeySym m  
    Nov  4 16:23:05 vdr vdr-sxfe[3085]: [3092] [input_vdr] XVDR_EVENT: KEY XKeySym m  #015
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3095] [demux_vdr] ts2es: flushing buffer
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3095] [demux_vdr] ts2es: flushing buffer
    N´ov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    unwiring audio post plugins
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    unwiring video post plugins
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [demux_vdr] demux_xvdr_dispose()
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] vdr_plugin_dispose
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Shutdown control
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Shutdown data
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3094] [input_vdr] Control thread terminated
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Cancel control thread ...
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Threads joined
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Disposing event queues
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Destroying mutexes
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Closing data connection
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Closing control connection
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Connections closed.
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] Disposing fifos
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] flush_all_fifos(full)
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [input_vdr] dispose done.
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3098] [hdmi-cec]  unregistering all CEC clients
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [vdr-fe]    unloading post plugins
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [vdr-sxfe]  closing hud window...
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [scrnsaver] Error: The name org.gnome.SessionManager was not provided by any .service files
    Nov  4 16:23:06 vdr vdr-sxfe[3085]: [3085] [scrnsaver] Error: The name org.gnome.ScreenSaver was not provided by any .service files
    Nov  4 16:23:06 vdr vdr: [1450] [xine..put] Closing connection
    
     
  • Interlude

    Interlude - 2023-11-05

    The problems seems to be xine and/or iHD driver related.
    A xine -V vaapi "xvdr+tcp://127.0.0.1:37890#nocache" shows a black screen as well.
    Attached is the verbose log.

    Let me know in case I should report this at the xine repository instead (not sure, since you're active as contributor there, too)

     

    Last edit: Interlude 2023-11-05
  • Petri Hintukainen

    Is this with "real" X11 or Wayland+XWayland ? Xine's vaapi video output doesn't work with XWayland.

    You could also try if xine can play recordings with vaapi:
    xine -V vaapi /path/to/some/recording.ts

     
  • Interlude

    Interlude - 2023-11-05

    Real X11 - it's the Xfce edition of Linux Mint 21.2.

    I tried xine -V vaapi with a VDR TS recording from yesterday, same result: black screen, only audio.

    Attached you can find the verbose log.

     
  • Petri Hintukainen

    https://github.com/intel/libva/issues/677

    Yes, I think it is the same issue.

    One possible solution is using opengl2 video output with VAAPI decoding. It should be used automatically when EGL is used. With X11 one can "force" EGL instead of GLX by removing xine GLX plugin:

    /usr/lib/x86_64-linux-gnu/xine/plugins/2.11/xineplug_vo_gl_glx.so .

    After this, verbose log should show something like this:

    va_display_x11: Using libva 1.19
    vaapi: Vendor : Intel iHD driver for Intel(R) Gen Graphics - 23.2.3 ()
    vaapi: Context width 1920 height 1080
    vaapi_egl: VAAPI EGL interop enabled
    video_out_opengl2: Enabled hardware decoding.

     

Log in to post a comment.