Commit 9fa4cf13 for libheif
commit 9fa4cf1353c2d6f408808b86f0ff7bf9a829f992
Author: Przemysław Sobala <przemyslaw.sobala@grupawp.pl>
Date: Fri Jun 5 10:33:04 2026 +0200
SVT-AV1: add tune=iq encoder parameter
diff --git a/libheif/plugins/encoder_svt.cc b/libheif/plugins/encoder_svt.cc
index b794c8c7..842f94ab 100644
--- a/libheif/plugins/encoder_svt.cc
+++ b/libheif/plugins/encoder_svt.cc
@@ -68,7 +68,10 @@ struct encoder_struct_svt
{
Tune_VQ = 0,
Tune_PSNR = 1,
- Tune_SSIM = 2
+ Tune_SSIM = 2,
+#if SVT_AV1_CHECK_VERSION(4, 0, 0)
+ Tune_IQ = 3
+#endif
};
uint8_t tune = Tune_PSNR;
@@ -114,8 +117,12 @@ static const char* kParam_speed = "speed";
#if SVT_AV1_CHECK_VERSION(0, 9, 1)
static const char* kParam_tune = "tune";
+#if SVT_AV1_CHECK_VERSION(4, 0, 0)
+static const char* const kParam_tune_valid_values[] = {"vq", "psnr", "ssim", "iq", nullptr};
+#else
static const char* const kParam_tune_valid_values[] = {"vq", "psnr", "ssim", nullptr};
#endif
+#endif
/*
static const char* kParam_chroma = "chroma";
@@ -560,6 +567,12 @@ heif_error svt_set_parameter_string(void* encoder_raw, const char* name, const c
encoder->tune = encoder_struct_svt::Tune_SSIM;
return heif_error_ok;
}
+#if SVT_AV1_CHECK_VERSION(4, 0, 0)
+ else if (strcmp(value, "iq") == 0) {
+ encoder->tune = encoder_struct_svt::Tune_IQ;
+ return heif_error_ok;
+ }
+#endif
}
#endif
@@ -614,6 +627,11 @@ heif_error svt_get_parameter_string(void* encoder_raw, const char* name,
case encoder_struct_svt::Tune_SSIM:
save_strcpy(value, value_size, "ssim");
break;
+#if SVT_AV1_CHECK_VERSION(4, 0, 0)
+ case encoder_struct_svt::Tune_IQ:
+ save_strcpy(value, value_size, "iq");
+ break;
+#endif
default:
assert(false);