Skip to content

Commit

Permalink
Added Hardware Decoding with VAAPI and QSV
Browse files Browse the repository at this point in the history
LibVA - implementation for VAAPI
LibVPL - Intel Video Processing Library
  • Loading branch information
Ryan Clark authored and wader committed Sep 26, 2024
1 parent cab74fb commit 7422fe6
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 3 deletions.
55 changes: 52 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,12 @@ RUN apk add --no-cache $APK_OPTS \
xz-dev xz-static \
python3 py3-packaging \
linux-headers \
curl
curl \
libdrm-dev

# linux-headers need by rtmpdump
# python3 py3-packaging needed by glib

# -O3 makes sure we compile with optimization. setting CFLAGS/CXXFLAGS seems to override
# default automake cflags.
# -static-libgcc is needed to make gcc not include gcc_s as "as-needed" shared library which
Expand Down Expand Up @@ -1044,6 +1045,51 @@ RUN \
--enable-static && \
make -j$(nproc) install

# requires libdrm
# bump: libva /LIBVA_VERSION=([\d.]+)/ https://github.com/intel/libva.git|^2
# bump: libva after ./hashupdate Dockerfile LIBVA $LATEST
# bump: libva link "Changelog" https://github.com/intel/libva/blob/master/NEWS
ARG LIBVA_VERSION=2.22.0
ARG LIBVA_URL="https://github.com/intel/libva/archive/refs/tags/${LIBVA_VERSION}.tar.gz"
ARG LIBVA_SHA256=467c418c2640a178c6baad5be2e00d569842123763b80507721ab87eb7af8735
RUN \
wget $WGET_OPTS -O libva.tar.gz "$LIBVA_URL" && \
echo "$LIBVA_SHA256 libva.tar.gz" | sha256sum -c - && \
tar $TAR_OPTS libva.tar.gz && cd libva-* && \
meson setup build \
-Dbuildtype=release \
-Ddefault_library=static \
-Ddisable_drm=false \
-Dwith_x11=no \
-Dwith_glx=no \
-Dwith_wayland=no \
-Dwith_win32=no \
-Dwith_legacy=[] \
-Denable_docs=false && \
ninja -j$(nproc) -vC build install

# bump: libvpl /LIBVPL_VERSION=([\d.]+)/ https://github.com/intel/libvpl.git|^2
# bump: libvpl after ./hashupdate Dockerfile LIBVPL $LATEST
# bump: libvpl link "Changelog" https://github.com/intel/libvpl/blob/main/CHANGELOG.md
ARG LIBVPL_VERSION=2.13.0
ARG LIBVPL_URL="https://github.com/intel/libvpl/archive/refs/tags/v${LIBVPL_VERSION}.tar.gz"
ARG LIBVPL_SHA256=1c740e2b58f7853f56b618bdb7d4a7e5d37f8c1a9b30105a0b79ba80873e1cbd
RUN \
wget $WGET_OPTS -O libvpl.tar.gz "$LIBVPL_URL" && \
echo "$LIBVPL_SHA256 libvpl.tar.gz" | sha256sum -c - && \
tar $TAR_OPTS libvpl.tar.gz && cd libvpl-* && \
cmake -B build \
-G"Unix Makefiles" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTS=OFF \
-DENABLE_WARNING_AS_ERROR=ON && \
cmake --build build -j$(nproc) && \
cmake --install build

# bump: ffmpeg /FFMPEG_VERSION=([\d.]+)/ https://github.com/FFmpeg/FFmpeg.git|*
# bump: ffmpeg after ./hashupdate Dockerfile FFMPEG $LATEST
# bump: ffmpeg link "Changelog" https://github.com/FFmpeg/FFmpeg/blob/n$LATEST/Changelog
Expand Down Expand Up @@ -1093,6 +1139,7 @@ RUN \
--enable-libgme \
--enable-libgsm \
--enable-libharfbuzz \
--enable-libjxl \
--enable-libkvazaar \
--enable-libmodplug \
--enable-libmp3lame \
Expand Down Expand Up @@ -1120,6 +1167,7 @@ RUN \
--enable-libvmaf \
--enable-libvo-amrwbenc \
--enable-libvorbis \
--enable-libvpl \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
Expand All @@ -1132,7 +1180,6 @@ RUN \
--enable-libzimg \
--enable-libzmq \
--enable-openssl \
--enable-libjxl \
|| (cat ffbuild/config.log ; false) \
&& make -j$(nproc) install

Expand Down Expand Up @@ -1192,10 +1239,12 @@ RUN \
libtheora: env.THEORA_VERSION, \
libtwolame: env.TWOLAME_VERSION, \
libuavs3d: env.UAVS3D_COMMIT, \
libva: env.LIBVA_VERSION, \
libvidstab: env.VIDSTAB_VERSION, \
libvmaf: env.VMAF_VERSION, \
libvo_amrwbenc: env.LIBVO_AMRWBENC_VERSION, \
libvorbis: env.VORBIS_VERSION, \
libvpl: env.LIBVPL_VERSION, \
libvpx: env.VPX_VERSION, \
libwebp: env.LIBWEBP_VERSION, \
libx264: env.X264_VERSION, \
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,12 @@ alias ffprobe='docker run -i --rm -u $UID:$GROUPS -v "$PWD:$PWD" -w "$PWD" --ent
- [libtheora](https://github.com/xiph/theora)
- [libtwolame](https://github.com/njh/twolame)
- [libuavs3d](https://github.com/uavs3/uavs3d)
- [libva](https://github.com/intel/libva)
- [libvidstab](https://github.com/georgmartius/vid.stab)
- [libvmaf](https://github.com/Netflix/vmaf)
- [libvo-amrwbenc](https://github.com/mstorsjo/vo-amrwbenc)
- [libvorbis](https://github.com/xiph/vorbis)
- [libvpl](https://github.com/intel/libvpl)
- [libvpx](https://github.com/webmproject/libvpx)
- [libwebp](https://chromium.googlesource.com/webm/libwebp)
- [libx264](https://www.videolan.org/developers/x264.html)
Expand Down

0 comments on commit 7422fe6

Please sign in to comment.