Bug 1203855

Summary: ffmpeg-4 built without nvidia hardware encoding/decoding support
Product: [openSUSE] openSUSE Distribution Reporter: Predrag Ivanović <predivan>
Component: X11 ApplicationsAssignee: Jan Engelhardt <jengelh>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: Andreas.Stieger, jengelh
Version: Leap 15.4   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Predrag Ivanović 2022-09-28 19:06:18 UTC
For a while now, ffmpeg-4 is built without NVIDIA hardware encoding/decoding support.

Spec file from SUSE:SLE-15-SP4:GA/ffmpeg-4 
---
# nvcodec headers only present after leap15
%bcond_with nvcodec
%if 0%{?suse_version} > 1500
%bcond_without nvcodec
%endif
---

Apart from fix for that, multimedia:libs/ffmpeg-4 package
also ships slightly updated(4.4.2) bug-fix release, so it would be very 
nice if it could be available in 15.4
Comment 1 Jan Engelhardt 2022-10-04 15:27:24 UTC
When the FFmpeg libraries are built with h264_cuvid, ffmpeg will advertise this through its API. The command-line equivalent is this:

  $ ffmpeg -codecs
  ...
  D.V.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264_cuvid ) (encoders: )

When "h264_cuvid" fails to initialize or fails to decode a frame, then the browser OR ffmpeg (I don't know which exactly) will try other decoders - but only for "h264".

If no decoders for "h264" were successful, then browsers like firefox go into a stupid mode and stop the entire <video> element (leaving it black / showing "broken video" icon / or something), and not try playback of alternate stream formats like VP8 even if such is present in the <video> element.

In short, video playback becomes broken for all the stock openSUSE users that do not have NVIDIA hardware.

Therefore, *_cuvid decoders are disabled if no corresponding software decoder for the same frame format is enabled.

*** This bug has been marked as a duplicate of bug 1041794 ***