You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.3 KiB
36 lines
1.3 KiB
From bef5f0f49f9024957189b5b465cd4d07078cd06f Mon Sep 17 00:00:00 2001 |
|
From: Brad Hards <bradh@frogmouth.net> |
|
Date: Sat, 6 Jan 2024 13:59:21 +1100 |
|
Subject: [PATCH] kvazaar: protect against unexpected chroma values |
|
|
|
Resolves #1089 |
|
--- |
|
libheif/plugins/encoder_kvazaar.cc | 8 ++++++++ |
|
1 file changed, 8 insertions(+) |
|
|
|
diff --git a/libheif/plugins/encoder_kvazaar.cc b/libheif/plugins/encoder_kvazaar.cc |
|
index 408f1bf84d..eada77f9fe 100644 |
|
--- a/libheif/plugins/encoder_kvazaar.cc |
|
+++ b/libheif/plugins/encoder_kvazaar.cc |
|
@@ -35,6 +35,7 @@ extern "C" { |
|
|
|
static const char* kError_unspecified_error = "Unspecified encoder error"; |
|
static const char* kError_unsupported_bit_depth = "Bit depth not supported by kvazaar"; |
|
+static const char* kError_unsupported_chroma = "Unsupported chroma type"; |
|
//static const char* kError_unsupported_image_size = "Images smaller than 16 pixels are not supported"; |
|
|
|
|
|
@@ -492,6 +493,13 @@ static struct heif_error kvazaar_encode_image(void* encoder_raw, const struct he |
|
input_chroma_width = input_width; |
|
input_chroma_height = input_height; |
|
} |
|
+ else { |
|
+ return heif_error{ |
|
+ heif_error_Encoder_plugin_error, |
|
+ heif_suberror_Unsupported_image_type, |
|
+ kError_unsupported_chroma |
|
+ }; |
|
+ } |
|
|
|
if (chroma != heif_chroma_monochrome) { |
|
int w = heif_image_get_width(image, heif_channel_Y);
|
|
|