summaryrefslogtreecommitdiff
path: root/src/gd_heif.c
diff options
context:
space:
mode:
authorMartin Reboredo <39890836+YakoYakoYokuYoku@users.noreply.github.com>2021-03-16 12:53:16 -0300
committerGitHub <noreply@github.com>2021-03-16 11:53:16 -0400
commitf7d12c91fa8bb0313dfc9d5ca827674c49a7bc9d (patch)
tree5aa1a920503fc2102e8a8dcd33e18d641c05358e /src/gd_heif.c
parent048cb47f20cb56c2d3b064f6ae1d24f89243e124 (diff)
downloadlibgd-f7d12c91fa8bb0313dfc9d5ca827674c49a7bc9d.tar.gz
Permit compilation with libheif version 1.7.0 (#686)
libheif versions that came before 1.9.0 don't support changing the output image chroma. I did not notice that and it resulted with tests failures across other OSes that don't have a much newer libheif. See #678. Supersedes #685.
Diffstat (limited to 'src/gd_heif.c')
-rw-r--r--src/gd_heif.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/gd_heif.c b/src/gd_heif.c
index 3b00a6c..47ecd7a 100644
--- a/src/gd_heif.c
+++ b/src/gd_heif.c
@@ -321,12 +321,14 @@ static int _gdImageHeifCtx(gdImagePtr im, gdIOCtx *outfile, int quality, gdHeifC
return GD_FALSE;
}
- err = heif_encoder_set_parameter_string(heif_enc, "chroma", chroma);
- if (err.code != heif_error_Ok) {
- gd_error("gd-heif invalid chroma subsampling parameter\n");
- heif_encoder_release(heif_enc);
- heif_context_free(heif_ctx);
- return GD_FALSE;
+ if (heif_get_version_number_major() >= 1 && heif_get_version_number_minor() >= 9) {
+ err = heif_encoder_set_parameter_string(heif_enc, "chroma", chroma);
+ if (err.code != heif_error_Ok) {
+ gd_error("gd-heif invalid chroma subsampling parameter\n");
+ heif_encoder_release(heif_enc);
+ heif_context_free(heif_ctx);
+ return GD_FALSE;
+ }
}
err = heif_image_create(gdImageSX(im), gdImageSY(im), heif_colorspace_RGB, heif_chroma_interleaved_RGBA, &heif_im);