moonlight-stream / moonlight-qt

GameStream client for PCs (Windows, Mac, Linux, and Steam Link)
GNU General Public License v3.0
10.11k stars 591 forks source link

AMD FirePro D700 Hardware Video Acceleration Not Detected #921

Open CiDisguise opened 1 year ago

CiDisguise commented 1 year ago

Describe the bug Moonlight client reports an inability to detect hardware accelerated video decoding on startup and uses software decoding when a session is opened.

Steps to reproduce Run Moonlight client on affected hardware.

Moonlight settings (please complete the following information)

Client PC details (please complete the following information)

Moonlight Logs (please attach) Moonlight-1672114413.log

Additional context This does not appear to be an upstream bug in ffmpeg. The h264 decoder is listed as having videotoolbox hwaccel support on this hardware.

cgutman commented 1 year ago

This does not appear to be an upstream bug in ffmpeg. The h264 decoder is listed as having videotoolbox hwaccel support on this hardware.

Eh, I'm not convinced. The hardware does claim to have VideoToolbox support, but so we try to use it and it fail to decode our test frame. I believe someone has reported this issue before on similarly ancient AMD hardware.

00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] nal_unit_type: 7(SPS), nal_ref_idc: 3
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] nal_unit_type: 8(PPS), nal_ref_idc: 3
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] nal_unit_type: 5(IDR), nal_ref_idc: 3
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] nal_unit_type: 5(IDR), nal_ref_idc: 3
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] nal_unit_type: 5(IDR), nal_ref_idc: 3
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] nal_unit_type: 5(IDR), nal_ref_idc: 3
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld chosen by get_format().
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld requires hwaccel initialisation.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] VideoToolbox session not available.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Failed setup for format videotoolbox_vld: hwaccel initialisation returned error.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld not usable, retrying get_format() without it.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] decode_slice_header error
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld chosen by get_format().
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld requires hwaccel initialisation.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] VideoToolbox session not available.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Failed setup for format videotoolbox_vld: hwaccel initialisation returned error.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld not usable, retrying get_format() without it.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] decode_slice_header error
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld chosen by get_format().
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld requires hwaccel initialisation.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] VideoToolbox session not available.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Failed setup for format videotoolbox_vld: hwaccel initialisation returned error.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld not usable, retrying get_format() without it.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] decode_slice_header error
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld chosen by get_format().
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld requires hwaccel initialisation.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] VideoToolbox session not available.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Failed setup for format videotoolbox_vld: hwaccel initialisation returned error.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] Format videotoolbox_vld not usable, retrying get_format() without it.
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] decode_slice_header error
00:00:01 - FFmpeg: [h264 @ 0x7f8333be68c0] no frame!
00:00:01 - SDL Warn (0): Test decode failed (avcodec_send_packet): Invalid data found when processing input

Can you show that VideoToolbox actually works with FFmpeg, HandBrake, or similar?