diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2020-12-18 11:16:38 +0000 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2020-12-18 11:28:10 +0000 |
commit | 00f5eed1d2390d204c83a2cb78a37531f6bbe49c (patch) | |
tree | b3c95338bd7d90127e904ac972859779a15b0e64 | |
parent | 5f3152a30b6d53def24b85a1b76c75c82edc3c08 (diff) | |
download | efl-00f5eed1d2390d204c83a2cb78a37531f6bbe49c.tar.gz |
evas - avif - fix for 0.8.2 libavif that broke api
also require 0.8.2 ... as well - no point trying to support older
versions forever and this is still experimental.
fixes T8844
@fix
-rw-r--r-- | src/lib/evas/meson.build | 2 | ||||
-rw-r--r-- | src/modules/evas/image_loaders/avif/evas_image_load_avif.c | 14 |
2 files changed, 5 insertions, 11 deletions
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build index 883a959aa2..8dcfd98713 100644 --- a/src/lib/evas/meson.build +++ b/src/lib/evas/meson.build @@ -10,7 +10,7 @@ giflib = cc.find_library('gif') webp = dependency('libwebp', version: ['>=0.5.0'], required: get_option('evas-loaders-disabler').contains('webp') == false) webpdemux = dependency('libwebpdemux', version: ['>=0.5.0'], required: get_option('evas-loaders-disabler').contains('webp') == false) libopenjp2 = dependency('libopenjp2', required: get_option('evas-loaders-disabler').contains('jp2k') == false) -libavif = dependency('libavif', required: get_option('evas-loaders-disabler').contains('avif') == false) +libavif = dependency('libavif', required: get_option('evas-loaders-disabler').contains('avif') == false, version: '>= 0.8.2') evas_image_loaders_file = [ ['avif', 'shared', [libavif]], diff --git a/src/modules/evas/image_loaders/avif/evas_image_load_avif.c b/src/modules/evas/image_loaders/avif/evas_image_load_avif.c index 34b6da9bd3..f7cfe0ef03 100644 --- a/src/modules/evas/image_loaders/avif/evas_image_load_avif.c +++ b/src/modules/evas/image_loaders/avif/evas_image_load_avif.c @@ -43,7 +43,6 @@ evas_image_load_file_head_avif_internal(Evas_Loader_Internal *loader, int *error) { Evas_Image_Animated *animated; - avifROData raw; avifDecoder *decoder; avifResult res; Eina_Bool ret; @@ -55,9 +54,6 @@ evas_image_load_file_head_avif_internal(Evas_Loader_Internal *loader, prop->h = 0; prop->alpha = EINA_FALSE; - raw.size = length; - raw.data = (const uint8_t *)map; - decoder = avifDecoderCreate(); if (!decoder) { @@ -65,7 +61,8 @@ evas_image_load_file_head_avif_internal(Evas_Loader_Internal *loader, return ret; } - res = avifDecoderParse(decoder, &raw); + avifDecoderSetIOMemory(decoder, (const uint8_t *)map, length); + res = avifDecoderParse(decoder); if (res != AVIF_RESULT_OK) { ERR("avif file format invalid"); @@ -141,7 +138,6 @@ evas_image_load_file_data_avif_internal(Evas_Loader_Internal *loader, decoder = loader->decoder; if (!decoder) { - avifROData raw; decoder = avifDecoderCreate(); if (!decoder) { @@ -149,10 +145,8 @@ evas_image_load_file_data_avif_internal(Evas_Loader_Internal *loader, return EINA_FALSE; } - raw.size = length; - raw.data = (const uint8_t *)map; - - res = avifDecoderParse(decoder, &raw); + avifDecoderSetIOMemory(decoder, (const uint8_t *)map, length); + res = avifDecoderParse(decoder); if (res != AVIF_RESULT_OK) { *error = EVAS_LOAD_ERROR_GENERIC; |