SkAndroidCodec: Use SkAndroidCodecAdapter with libavif
If SK_CODEC_DECODES_AVIF is defined, we don't have to use
SkSampledCodec since SkAvifCodec can handle scaling internally
unlike SkHeifCodec.
Note that this is currently a no-op on the Android tree since
we have not yet enabled SK_CODEC_DECODES_AVIF on Android.
Bug: b/240344467
Test: Android AVIF cts tests pass with this change applied on the
android tree.
Change-Id: Ibc6fe07a8b98f739f88f50748060d96de0ebeca3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/566440
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
diff --git a/src/codec/SkAndroidCodec.cpp b/src/codec/SkAndroidCodec.cpp
index e955b9a..85079f5 100644
--- a/src/codec/SkAndroidCodec.cpp
+++ b/src/codec/SkAndroidCodec.cpp
@@ -83,7 +83,9 @@
case SkEncodedImageFormat::kBMP:
case SkEncodedImageFormat::kWBMP:
case SkEncodedImageFormat::kHEIF:
+#ifndef SK_CODEC_DECODES_AVIF
case SkEncodedImageFormat::kAVIF:
+#endif
return std::make_unique<SkSampledCodec>(codec.release());
#ifdef SK_HAS_WUFFS_LIBRARY
case SkEncodedImageFormat::kGIF:
@@ -94,7 +96,11 @@
#ifdef SK_CODEC_DECODES_RAW
case SkEncodedImageFormat::kDNG:
#endif
-#if defined(SK_CODEC_DECODES_WEBP) || defined(SK_CODEC_DECODES_RAW) || defined(SK_HAS_WUFFS_LIBRARY)
+#ifdef SK_CODEC_DECODES_AVIF
+ case SkEncodedImageFormat::kAVIF:
+#endif
+#if defined(SK_CODEC_DECODES_WEBP) || defined(SK_CODEC_DECODES_RAW) || \
+ defined(SK_HAS_WUFFS_LIBRARY) || defined(SK_CODEC_DECODES_AVIF)
return std::make_unique<SkAndroidCodecAdapter>(codec.release());
#endif