diff --git a/media-libs/libavif/Manifest b/media-libs/libavif/Manifest
index 2d98518572bee..fc1789bca102d 100644
--- a/media-libs/libavif/Manifest
+++ b/media-libs/libavif/Manifest
@@ -1 +1,2 @@
DIST libavif-1.1.1.tar.gz 13644189 BLAKE2B c0a473b172206ea32358c28e7b94d8038b24030e4845611341076518cd82fd2bea78eb8e22e5481062b893ffb70789619ce4f85129a94a0db70a667c000f4fd0 SHA512 ba72b8d02b098f361643a073361fccafd22eaac14e46dd06378d5e7acd9853538c5d166473e1de0b020de62dac25be83e42bd57ba51f675d11e2ddf155fbfa21
+DIST libavif-1.2.0.tar.gz 13939380 BLAKE2B 272d855bec6568dc15f2a953fdf79ec1df190e151c2f265ea00f680f2c828780e0875580d72000fb56a0252c7ae06ef115f2b609db23ec3afc9e8a1c4bac4197 SHA512 f88eda1c699910a20e63a0aa0bcf782fb67b477c4d99aa88723628a53b0d849f35f73ff6a2e8bb53e170dc77662bde4a5c5c38b655f5adcfb73ddcf7ec264805
diff --git a/media-libs/libavif/libavif-1.2.0.ebuild b/media-libs/libavif/libavif-1.2.0.ebuild
new file mode 100644
index 0000000000000..bcae76648e567
--- /dev/null
+++ b/media-libs/libavif/libavif-1.2.0.ebuild
@@ -0,0 +1,113 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib gnome2-utils
+
+DESCRIPTION="Library for encoding and decoding .avif files"
+HOMEPAGE="https://github.com/AOMediaCodec/libavif"
+SRC_URI="
+ https://github.com/AOMediaCodec/libavif/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz
+"
+
+LICENSE="BSD-2"
+# See bug #822336 re subslot
+SLOT="0/16.1.1"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc64 ~riscv ~sparc ~x86"
+IUSE="+aom dav1d examples extras gdk-pixbuf rav1e svt-av1 libyuv test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="|| ( aom dav1d )"
+
+DEPEND="
+ media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
+ media-libs/libpng:=[${MULTILIB_USEDEP}]
+ aom? ( >=media-libs/libaom-3.3.0:=[${MULTILIB_USEDEP}] )
+ dav1d? ( >=media-libs/dav1d-1.0.0:=[${MULTILIB_USEDEP}] )
+ extras? (
+ test? (
+ dev-cpp/gtest
+ media-gfx/imagemagick[lcms]
+ )
+ )
+ gdk-pixbuf? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}]
+ )
+ rav1e? ( >=media-video/rav1e-0.5.1:=[capi] )
+ svt-av1? ( >=media-libs/svt-av1-0.9.1:= )
+ libyuv? ( media-libs/libyuv:= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DAVIF_CODEC_LIBGAV1=OFF
+
+ # Use system libraries.
+ -DAVIF_CODEC_AOM=$(usex aom SYSTEM OFF)
+ -DAVIF_CODEC_DAV1D=$(usex dav1d SYSTEM OFF)
+ -DAVIF_ZLIBPNG=SYSTEM
+ -DAVIF_JPEG=SYSTEM
+ -DAVIF_LIBYUV=$(usex libyuv SYSTEM OFF)
+
+ -DAVIF_BUILD_GDK_PIXBUF=$(usex gdk-pixbuf ON OFF)
+
+ -DAVIF_ENABLE_WERROR=OFF
+ )
+
+ if multilib_is_native_abi; then
+ mycmakeargs+=(
+ -DAVIF_CODEC_RAV1E=$(usex rav1e SYSTEM OFF)
+ -DAVIF_CODEC_SVT=$(usex svt-av1 SYSTEM OFF)
+
+ -DAVIF_BUILD_EXAMPLES=$(usex examples ON OFF)
+ -DAVIF_BUILD_APPS=$(usex extras ON OFF)
+ -DAVIF_BUILD_TESTS=$(usex test ON OFF)
+ -DAVIF_ENABLE_GTEST=$(usex extras $(usex test ON OFF) OFF)
+ -DAVIF_GTEST=$(usex extras $(usex test SYSTEM OFF) OFF)
+ )
+ else
+ mycmakeargs+=(
+ -DAVIF_CODEC_RAV1E=OFF
+ -DAVIF_CODEC_SVT=OFF
+
+ -DAVIF_BUILD_EXAMPLES=OFF
+ -DAVIF_BUILD_APPS=OFF
+ -DAVIF_BUILD_TESTS=OFF
+ -DAVIF_ENABLE_GTEST=OFF
+ -DAVIF_GTEST=OFF
+ )
+
+ if ! use aom ; then
+ if use rav1e || use svt-av1 ; then
+ ewarn "libavif on ${MULTILIB_ABI_FLAG} will work in read-only mode."
+ ewarn "Support for rav1e and/or svt-av1 is is not available on ${MULTILIB_ABI_FLAG}"
+ ewarn "Enable aom flag for full support on ${MULTILIB_ABI_FLAG}"
+ fi
+ fi
+ fi
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ if ! use aom && ! use rav1e && ! use svt-av1 ; then
+ ewarn "No AV1 encoder is set,"
+ ewarn "libavif will work in read-only mode."
+ ewarn "Enable aom, rav1e or svt-av1 flag if you want to save .AVIF files."
+ fi
+
+ use gdk-pixbuf && multilib_foreach_abi gnome2_gdk_pixbuf_update
+}
+
+pkg_postrm() {
+ use gdk-pixbuf && multilib_foreach_abi gnome2_gdk_pixbuf_update
+}
diff --git a/media-libs/libavif/libavif-9999.ebuild b/media-libs/libavif/libavif-9999.ebuild
index 1b5831110d646..1f9b5b6e2724b 100644
--- a/media-libs/libavif/libavif-9999.ebuild
+++ b/media-libs/libavif/libavif-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Gentoo Authors
+# Copyright 2020-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,7 +12,7 @@ EGIT_REPO_URI="https://github.com/AOMediaCodec/libavif.git"
LICENSE="BSD-2"
# See bug #822336 re subslot
SLOT="0/${PV}"
-IUSE="+aom dav1d examples extras gdk-pixbuf rav1e svt-av1 test"
+IUSE="+aom dav1d examples extras gdk-pixbuf rav1e svt-av1 libyuv test"
RESTRICT="!test? ( test )"
REQUIRED_USE="|| ( aom dav1d )"
@@ -33,6 +33,7 @@ DEPEND="
)
rav1e? ( >=media-video/rav1e-0.5.1:=[capi] )
svt-av1? ( >=media-libs/svt-av1-0.9.1:= )
+ libyuv? ( media-libs/libyuv:= )
"
RDEPEND="
${DEPEND}
@@ -46,14 +47,12 @@ multilib_src_configure() {
-DBUILD_SHARED_LIBS=ON
-DAVIF_CODEC_LIBGAV1=OFF
- # bug 916948
- -DAVIF_LIBYUV=OFF
-
# Use system libraries.
-DAVIF_CODEC_AOM=$(usex aom SYSTEM OFF)
-DAVIF_CODEC_DAV1D=$(usex dav1d SYSTEM OFF)
-DAVIF_ZLIBPNG=SYSTEM
-DAVIF_JPEG=SYSTEM
+ -DAVIF_LIBYUV=$(usex libyuv SYSTEM OFF)
-DAVIF_BUILD_GDK_PIXBUF=$(usex gdk-pixbuf ON OFF)
diff --git a/media-libs/libavif/metadata.xml b/media-libs/libavif/metadata.xml
index fc327ca39df86..2b6e2784c5887 100644
--- a/media-libs/libavif/metadata.xml
+++ b/media-libs/libavif/metadata.xml
@@ -16,6 +16,7 @@
Build a gdk-pixbuf loader
Enable support for the rav1e codec encoding
Enable support for the SVT-AV1 encoder
+ Enable fast YUV conversion via libyuv
https://github.com/AOMediaCodec/libavif/issues
diff --git a/profiles/arch/alpha/package.use.mask b/profiles/arch/alpha/package.use.mask
index cf81f08e67aff..45599e072898c 100644
--- a/profiles/arch/alpha/package.use.mask
+++ b/profiles/arch/alpha/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Ionen Wolkens (2025-03-10)
# media-libs/libopenmpt is not keyworded here
media-video/ffmpeg openmpt
diff --git a/profiles/arch/arm/package.use.mask b/profiles/arch/arm/package.use.mask
index 058f253aab597..b87e9fbb55097 100644
--- a/profiles/arch/arm/package.use.mask
+++ b/profiles/arch/arm/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Andreas Sturmlechner (2025-03-08)
# Needs kde-frameworks/{kwallet,ki18n,kconfig} stable
dev-vcs/subversion kwallet
diff --git a/profiles/arch/arm64/package.use.mask b/profiles/arch/arm64/package.use.mask
index 5783d4f0fa0a3..25819edb77e64 100644
--- a/profiles/arch/arm64/package.use.mask
+++ b/profiles/arch/arm64/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Sam James (2025-03-11)
# The COBOL frontend only allows building on a small number of platforms
# for now until more testing and integration is done.
diff --git a/profiles/arch/hppa/package.use.mask b/profiles/arch/hppa/package.use.mask
index f63c5033acd6d..6addbe2889f8c 100644
--- a/profiles/arch/hppa/package.use.mask
+++ b/profiles/arch/hppa/package.use.mask
@@ -4,6 +4,10 @@
# NOTE: When masking a USE flag due to missing keywords, please file a keyword
# request bug for the hppa arch.
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Sam James (2025-03-17)
# dev-util/babeltrace is not keyworded here
dev-debug/gdb babeltrace
diff --git a/profiles/arch/loong/package.use.mask b/profiles/arch/loong/package.use.mask
index 7137aff1f1f1a..66b93085792b9 100644
--- a/profiles/arch/loong/package.use.mask
+++ b/profiles/arch/loong/package.use.mask
@@ -5,6 +5,10 @@
# media-libs/libebur128 not keyworded here
media-video/pipewire loudness
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Ionen Wolkens (2025-03-10)
# media-libs/libopenmpt is not keyworded here
media-video/ffmpeg openmpt
diff --git a/profiles/arch/mips/package.use.mask b/profiles/arch/mips/package.use.mask
index c3e92b477c813..ac2883d105533 100644
--- a/profiles/arch/mips/package.use.mask
+++ b/profiles/arch/mips/package.use.mask
@@ -10,6 +10,10 @@ media-video/pipewire loudness
# Spidermonkey still declares llvm-17 compat on other arches.
dev-lang/spidermonkey llvm_slot_17
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Sam James (2025-03-17)
# dev-util/babeltrace is not keyworded here
dev-debug/gdb babeltrace
diff --git a/profiles/arch/powerpc/ppc64/package.use.mask b/profiles/arch/powerpc/ppc64/package.use.mask
index 3515d9dbdede9..1790b4b950949 100644
--- a/profiles/arch/powerpc/ppc64/package.use.mask
+++ b/profiles/arch/powerpc/ppc64/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Alfred Wingate (2025-02-22)
# media-libs/zint is not keyworded here
media-libs/zxing-cpp experimental
diff --git a/profiles/arch/riscv/package.use.mask b/profiles/arch/riscv/package.use.mask
index 46bdf7ed26717..1e4ad4ea51218 100644
--- a/profiles/arch/riscv/package.use.mask
+++ b/profiles/arch/riscv/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 2019-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Alexey Shvetsov (2024-11-21)
# sci-ml/caffe2 is not keyworded on riscv
sci-chemistry/gromacs nnpot
diff --git a/profiles/arch/sparc/package.use.mask b/profiles/arch/sparc/package.use.mask
index c7544ff4acef4..d00fdb2c733db 100644
--- a/profiles/arch/sparc/package.use.mask
+++ b/profiles/arch/sparc/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Sam James (2025-03-17)
# dev-util/babeltrace is not keyworded here
dev-debug/gdb babeltrace
diff --git a/profiles/arch/x86/package.use.mask b/profiles/arch/x86/package.use.mask
index 8d1d325157a78..bef6a6fe1e189 100644
--- a/profiles/arch/x86/package.use.mask
+++ b/profiles/arch/x86/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# NRK (2025-03-17)
+# media-libs/libyuv is not keyworded
+media-libs/libavif libyuv
+
# Thibaud CANALE (2025-03-09)
# Google DNS dependencies available (bug 949851)
app-crypt/certbot -certbot-dns-google