detached cc61e77

fix(media): correct VA plugin package names in diagnostics hints

commit
cc61e7769adeea011389b8fae2c260407464a074
author
bnema · · 2025-12-18 19:06 UTC
parent
1618c29
signature
unsigned
1 file · +5 -4
M internal/infrastructure/media/diagnostics.go +5 -4
@@ -62,7 +62,8 @@ func (a *Adapter) checkGStreamerPlugins(ctx context.Context, r *port.MediaDiagno
6262 }
6363 r.GStreamerAvailable = true
6464
65- // Check 'va' plugin (modern stateless decoders in gst-plugins-bad)
65+ // Check 'va' plugin (modern stateless decoders)
66+ // Package: gst-plugin-va (Arch) or gstreamer1.0-plugins-bad (Debian/Ubuntu)
6667 if out, err := exec.CommandContext(ctx, gstInspect, "va").Output(); err == nil {
6768 r.HasVAPlugin = true
6869 a.parseVADecoders(string(out), r)
@@ -224,9 +225,9 @@ func (a *Adapter) generateWarnings(r *port.MediaDiagnosticsResult) {
224225 r.Warnings = append(r.Warnings,
225226 "No hardware video acceleration detected. Video will use software decoding (higher CPU).")
226227 r.Warnings = append(r.Warnings,
227- "Install gst-plugins-bad for VA decoders, plus VA-API driver for your GPU:")
228+ "Install VA plugin: gst-plugin-va (Arch) or gstreamer1.0-plugins-bad (Debian/Ubuntu)")
228229 r.Warnings = append(r.Warnings,
229- " AMD: libva-mesa-driver | Intel: intel-media-driver | NVIDIA: nvidia-vaapi-driver")
230+ "Install VA-API driver: libva-mesa-driver (AMD) | intel-media-driver (Intel) | nvidia-vaapi-driver (NVIDIA)")
230231 }
231232
232233 // AV1 is the preferred codec - warn if not available
@@ -244,6 +245,6 @@ func (a *Adapter) generateWarnings(r *port.MediaDiagnosticsResult) {
244245 // Prefer modern VA plugin over legacy VAAPI
245246 if r.HasVAAPIPlugin && !r.HasVAPlugin {
246247 r.Warnings = append(r.Warnings,
247- "Using legacy gstreamer-vaapi. Consider gst-plugins-bad for newer VA stateless decoders.")
248+ "Using legacy gstreamer-vaapi. Install gst-plugin-va (Arch) or gstreamer1.0-plugins-bad (Debian/Ubuntu) for modern VA stateless decoders.")
248249 }
249250 }
@@ -62,7 +62,8 @@ func (a *Adapter) checkGStreamerPlugins(ctx context.Context, r *port.MediaDiagno
62 }62 }
63 r.GStreamerAvailable = true63 r.GStreamerAvailable = true
64 64
65- // Check 'va' plugin (modern stateless decoders in gst-plugins-bad)65+ // Check 'va' plugin (modern stateless decoders)
66+ // Package: gst-plugin-va (Arch) or gstreamer1.0-plugins-bad (Debian/Ubuntu)
66 if out, err := exec.CommandContext(ctx, gstInspect, "va").Output(); err == nil {67 if out, err := exec.CommandContext(ctx, gstInspect, "va").Output(); err == nil {
67 r.HasVAPlugin = true68 r.HasVAPlugin = true
68 a.parseVADecoders(string(out), r)69 a.parseVADecoders(string(out), r)
@@ -224,9 +225,9 @@ func (a *Adapter) generateWarnings(r *port.MediaDiagnosticsResult) {
224 r.Warnings = append(r.Warnings,225 r.Warnings = append(r.Warnings,
225 "No hardware video acceleration detected. Video will use software decoding (higher CPU).")226 "No hardware video acceleration detected. Video will use software decoding (higher CPU).")
226 r.Warnings = append(r.Warnings,227 r.Warnings = append(r.Warnings,
227- "Install gst-plugins-bad for VA decoders, plus VA-API driver for your GPU:")228+ "Install VA plugin: gst-plugin-va (Arch) or gstreamer1.0-plugins-bad (Debian/Ubuntu)")
228 r.Warnings = append(r.Warnings,229 r.Warnings = append(r.Warnings,
229- " AMD: libva-mesa-driver | Intel: intel-media-driver | NVIDIA: nvidia-vaapi-driver")230+ "Install VA-API driver: libva-mesa-driver (AMD) | intel-media-driver (Intel) | nvidia-vaapi-driver (NVIDIA)")
230 }231 }
231 232
232 // AV1 is the preferred codec - warn if not available233 // AV1 is the preferred codec - warn if not available
@@ -244,6 +245,6 @@ func (a *Adapter) generateWarnings(r *port.MediaDiagnosticsResult) {
244 // Prefer modern VA plugin over legacy VAAPI245 // Prefer modern VA plugin over legacy VAAPI
245 if r.HasVAAPIPlugin && !r.HasVAPlugin {246 if r.HasVAAPIPlugin && !r.HasVAPlugin {
246 r.Warnings = append(r.Warnings,247 r.Warnings = append(r.Warnings,
247- "Using legacy gstreamer-vaapi. Consider gst-plugins-bad for newer VA stateless decoders.")248+ "Using legacy gstreamer-vaapi. Install gst-plugin-va (Arch) or gstreamer1.0-plugins-bad (Debian/Ubuntu) for modern VA stateless decoders.")
248 }249 }
249 }250 }

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close