Skip to content

Commit b3cb224

Browse files
committed
build(hwaccel): add libdrm 2.4.129
Adds libdrm 2.4.129 as a dependency for Linux platforms to support hardware acceleration via libva. The library is configured with minimal features enabled, disabling unnecessary drivers and test components.
1 parent 1ea11fd commit b3cb224

2 files changed

Lines changed: 34 additions & 1 deletion

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,13 @@ If you need complete FFmpeg with all filters, use the official FFmpeg distributi
8686
| FFmpeg | 8.0.1 | A complete, cross-platform solution to record, convert and stream audio and video |
8787
| dav1d | 1.5.2 | AV1 cross-platform decoder, open-source, and focused on speed, size and correctness|
8888
| glslang | 15.4.0 | Khronos-reference front end for GLSL/ESSL and a SPIR-V generator |
89+
| libdrm | 2.4.129 | Direct Rendering Manager library and headers |
90+
| libiconv | 1.18 | A character set conversion library (*macOS only*) |
8991
| libsrt | 1.5.5-rc.0a | A transport protocol for ultra low latency live video and audio streaming |
9092
| libvpl | 2.15.0 | Intel Video Processing Library (Intel VPL) API (*Linux only*) |
9193
| libvpx | 1.15.2 | High-quality, open video format for the web that's freely available to everyone |
9294
| libwebp | 1.6.0 | A modern image format providing superior lossless and lossy compression |
9395
| libxml2 | 2.15.1 | An XML parser and toolkit implemented in C |
94-
| libiconv | 1.18 | A character set conversion library (*macOS only*) |
9596
| mp3lame | 3.100 | A high quality MPEG Audio Layer III (MP3) encoder |
9697
| nv-codec-headers | 12.2.72.0 | Headers required to interface with Nvidias codec APIs (*Linux only*) |
9798
| openssl | 3.6.0 | Open Source Toolkit for the TLS, DTLS, and QUIC protocols. |

internal/builder/libraries.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var allLibraryDefinitions = []*Library{
2626
libxml2,
2727

2828
// Hardware acceleration
29+
libdrm,
2930
libvpl,
3031
nvcodecheaders,
3132
vulkanheaders,
@@ -288,6 +289,37 @@ var glslang = &Library{
288289
Dependencies: []*Library{vulkanheaders},
289290
}
290291

292+
// libdrm - Direct Rendering Manager library (Linux only, required by libva)
293+
var libdrm = &Library{
294+
Name: "libdrm",
295+
URL: "https://gitlab.freedesktop.org/mesa/drm/-/archive/libdrm-2.4.129/drm-libdrm-2.4.129.tar.gz",
296+
Platform: []string{"linux"},
297+
BuildSystem: &MesonBuild{},
298+
ConfigureArgs: func(os string) []string {
299+
return []string{
300+
// Note: -Ddefault_library=static is added automatically by MesonBuild
301+
"-Dintel=disabled",
302+
"-Dradeon=disabled",
303+
"-Damdgpu=disabled",
304+
"-Dnouveau=disabled",
305+
"-Dvmwgfx=disabled",
306+
"-Domap=disabled",
307+
"-Dexynos=disabled",
308+
"-Dfreedreno=disabled",
309+
"-Dtegra=disabled",
310+
"-Dvc4=disabled",
311+
"-Detnaviv=disabled",
312+
"-Dcairo-tests=disabled",
313+
"-Dman-pages=disabled",
314+
"-Dvalgrind=disabled",
315+
"-Dtests=false",
316+
"-Dinstall-test-programs=false",
317+
"-Dudev=false",
318+
}
319+
},
320+
LinkLibs: []string{"libdrm"},
321+
}
322+
291323
// libvpl - Intel VPL/oneVPL headers (Linux only, for QuickSync)
292324
var libvpl = &Library{
293325
Name: "libvpl",

0 commit comments

Comments
 (0)