Commit 78b08e21 for libheif
commit 78b08e21f0d5fdb743649287edc3487437764716
Author: Dirk Farin <dirk.farin@gmail.com>
Date: Thu Jun 25 13:51:04 2026 +0200
SVT: added ms-ssim tune parameter (#1836)
diff --git a/libheif/plugins/encoder_svt.cc b/libheif/plugins/encoder_svt.cc
index 842f94ab..c17c5c60 100644
--- a/libheif/plugins/encoder_svt.cc
+++ b/libheif/plugins/encoder_svt.cc
@@ -70,7 +70,8 @@ struct encoder_struct_svt
Tune_PSNR = 1,
Tune_SSIM = 2,
#if SVT_AV1_CHECK_VERSION(4, 0, 0)
- Tune_IQ = 3
+ Tune_IQ = 3,
+ Tune_MS_SSIM = 4
#endif
};
@@ -118,7 +119,7 @@ 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};
+static const char* const kParam_tune_valid_values[] = {"vq", "psnr", "ssim", "iq", "ms-ssim", nullptr};
#else
static const char* const kParam_tune_valid_values[] = {"vq", "psnr", "ssim", nullptr};
#endif
@@ -572,6 +573,10 @@ heif_error svt_set_parameter_string(void* encoder_raw, const char* name, const c
encoder->tune = encoder_struct_svt::Tune_IQ;
return heif_error_ok;
}
+ else if (strcmp(value, "ms-ssim") == 0) {
+ encoder->tune = encoder_struct_svt::Tune_MS_SSIM;
+ return heif_error_ok;
+ }
#endif
}
#endif
@@ -631,6 +636,9 @@ heif_error svt_get_parameter_string(void* encoder_raw, const char* name,
case encoder_struct_svt::Tune_IQ:
save_strcpy(value, value_size, "iq");
break;
+ case encoder_struct_svt::Tune_MS_SSIM:
+ save_strcpy(value, value_size, "ms-ssim");
+ break;
#endif
default:
assert(false);