From f620e0edd17dc7ea3d93ac26146da2698b372d51 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 14 Jul 2020 10:54:57 +0100 Subject: [PATCH] Revert "Evas: add avif evas loader" This reverts commit dd23a6c84aee249aa5316b48af6956072233bb97. i didn't mean to push this yet... --- meson_options.txt | 4 +- po/POTFILES.in | 1 - src/lib/evas/common/evas_image_load.c | 4 +- src/lib/evas/file/evas_module.c | 4 - src/lib/evas/meson.build | 2 - .../image_loaders/avif/evas_image_load_avif.c | 290 ------------------ 6 files changed, 3 insertions(+), 302 deletions(-) delete mode 100644 src/modules/evas/image_loaders/avif/evas_image_load_avif.c diff --git a/meson_options.txt b/meson_options.txt index c891630f04..c6f749e1f7 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -189,8 +189,8 @@ option('unmount-path', option('evas-loaders-disabler', type : 'array', description : 'List of modular image/vector loaders to disable in efl', - choices : ['gst', 'pdf', 'ps', 'raw', 'svg', 'rsvg', 'xcf', 'bmp', 'dds', 'eet', 'generic', 'gif', 'ico', 'jp2k', 'jpeg', 'pmaps', 'png', 'psd', 'tga', 'tgv', 'tiff', 'wbmp', 'webp', 'xpm', 'json', 'avif'], - value : ['json', 'avif'] + choices : ['gst', 'pdf', 'ps', 'raw', 'svg', 'rsvg', 'xcf', 'bmp', 'dds', 'eet', 'generic', 'gif', 'ico', 'jp2k', 'jpeg', 'pmaps', 'png', 'psd', 'tga', 'tgv', 'tiff', 'wbmp', 'webp', 'xpm', 'json'], + value : ['json'] ) option('ecore-imf-loaders-disabler', diff --git a/po/POTFILES.in b/po/POTFILES.in index 9700d3c286..d6879babc1 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -495,7 +495,6 @@ src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c src/modules/evas/image_loaders/generic/evas_image_load_generic.c src/modules/evas/image_loaders/gif/evas_image_load_gif.c src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c -src/modules/evas/image_loaders/avif/evas_image_load_avif.c src/modules/evas/image_savers/jpeg/evas_image_save_jpeg.c src/modules/evas/image_savers/png/evas_image_save_png.c src/modules/evas/image_savers/tiff/evas_image_save_tiff.c diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c index 5d3e3aa30f..1d28253c7e 100644 --- a/src/lib/evas/common/evas_image_load.c +++ b/src/lib/evas/common/evas_image_load.c @@ -66,8 +66,6 @@ static const struct ext_loader_s loaders[] = MATCHING(".dds", "dds"), - MATCHING(".avif", "avif"), - /* xcf - gefenric */ MATCHING(".xcf", "generic"), MATCHING(".xcf.gz", "generic"), @@ -165,7 +163,7 @@ static const struct ext_loader_s loaders[] = static const char *loaders_name[] = { /* in order of most likely needed */ "png", "jpeg", "eet", "xpm", "tiff", "gif", "svg", "webp", "pmaps", - "bmp", "tga", "wbmp", "ico", "psd", "jp2k", "dds", "avif", "generic" + "bmp", "tga", "wbmp", "ico", "psd", "jp2k", "dds", "generic" }; struct evas_image_foreach_loader_data diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c index b99118698e..a1e8b623af 100644 --- a/src/lib/evas/file/evas_module.c +++ b/src/lib/evas/file/evas_module.c @@ -196,7 +196,6 @@ EVAS_EINA_STATIC_MODULE_DEFINE(vg_loader, json); #endif #if !EVAS_MODULE_NO_IMAGE_LOADERS -EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, avif); EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, bmp); EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, dds); EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, eet); @@ -288,9 +287,6 @@ static const struct { #endif #endif #if !EVAS_MODULE_NO_IMAGE_LOADERS -#ifdef EVAS_STATIC_BUILD_AVIF - EVAS_EINA_STATIC_MODULE_USE(image_loader, avif), -#endif #ifdef EVAS_STATIC_BUILD_BMP EVAS_EINA_STATIC_MODULE_USE(image_loader, bmp), #endif diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build index 315aa57a63..fca88309ad 100644 --- a/src/lib/evas/meson.build +++ b/src/lib/evas/meson.build @@ -10,10 +10,8 @@ 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) evas_image_loaders_file = [ - ['avif', 'shared', [libavif]], ['bmp', 'shared', []], ['eet', 'static', [eet]], ['generic', 'shared', [rt]], 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 deleted file mode 100644 index 88469ddf04..0000000000 --- a/src/modules/evas/image_loaders/avif/evas_image_load_avif.c +++ /dev/null @@ -1,290 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include - -#include "Evas_Loader.h" - -typedef struct _Evas_Loader_Internal Evas_Loader_Internal; -struct _Evas_Loader_Internal -{ - Eina_File *f; - Evas_Image_Load_Opts *opts; -}; - -static int _evas_loader_avif_log_dom = -1; - -#ifdef ERR -# undef ERR -#endif -#define ERR(...) EINA_LOG_DOM_ERR(_evas_loader_avif_log_dom, __VA_ARGS__) - -#ifdef WRN -# undef WRN -#endif -#define WRN(...) EINA_LOG_DOM_WARN(_evas_loader_avif_log_dom, __VA_ARGS__) - -#ifdef INF -# undef INF -#endif -#define INF(...) EINA_LOG_DOM_INFO(_evas_loader_avif_log_dom, __VA_ARGS__) - -static Eina_Bool -evas_image_load_file_head_avif_internal(unsigned int *w, unsigned int *h, - unsigned char *alpha, - void *map, size_t length, - int *error) -{ - avifROData raw; - avifDecoder *decoder; - avifImage *image; - avifResult res; - - raw.size = length; - raw.data = (const uint8_t *)map; - - decoder = avifDecoderCreate(); - if (!decoder) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - - image = avifImageCreateEmpty(); - if (!image) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - goto destroy_decoder; - } - - res = avifDecoderRead(decoder, image, &raw); - if (res != AVIF_RESULT_OK) - { - ERR("avif file format invalid"); - *error = EVAS_LOAD_ERROR_GENERIC; - goto destroy_image; - } - - *w = image->width; - *h = image->height; - *alpha = !!image->alphaPlane; - *error = EVAS_LOAD_ERROR_NONE; - - avifImageDestroy(image); - avifDecoderDestroy(decoder); - - return EINA_TRUE; - - destroy_image: - avifImageDestroy(image); - destroy_decoder: - avifDecoderDestroy(decoder); - - return EINA_FALSE; -} - -static Eina_Bool -evas_image_load_file_data_avif_internal(void *pixels, - void *map, size_t length, - int *error) -{ - avifRGBImage rgb; - avifROData raw; - avifDecoder *decoder; - avifImage *image; - avifResult res; - - raw.size = length; - raw.data = (const uint8_t *)map; - - decoder = avifDecoderCreate(); - if (!decoder) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - - image = avifImageCreateEmpty(); - if (!image) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - goto destroy_decoder; - } - - res = avifDecoderRead(decoder, image, &raw); - if (res != AVIF_RESULT_OK) - { - ERR("avif file format invalid"); - *error = EVAS_LOAD_ERROR_GENERIC; - goto destroy_image; - } - - avifRGBImageSetDefaults(&rgb, image); - rgb.format = AVIF_RGB_FORMAT_BGRA; - rgb.depth = 8; - rgb.pixels = pixels; - rgb.rowBytes = 4 * image->width; - - avifImageYUVToRGB(image, &rgb); - - *error = EVAS_LOAD_ERROR_NONE; - - avifImageDestroy(image); - avifDecoderDestroy(decoder); - - return EINA_TRUE; - - destroy_image: - avifImageDestroy(image); - destroy_decoder: - avifDecoderDestroy(decoder); - - return EINA_FALSE; -} - -static void * -evas_image_load_file_open_avif(Eina_File *f, Eina_Stringshare *key EINA_UNUSED, - Evas_Image_Load_Opts *opts, - Evas_Image_Animated *animated EINA_UNUSED, - int *error) -{ - Evas_Loader_Internal *loader; - - loader = calloc(1, sizeof (Evas_Loader_Internal)); - if (!loader) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return NULL; - } - - loader->f = f; - loader->opts = opts; - - return loader; -} - -static void -evas_image_load_file_close_avif(void *loader_data) -{ - free(loader_data); -} - -static Eina_Bool -evas_image_load_file_head_avif(void *loader_data, - Emile_Image_Property *prop, - int *error) -{ - Evas_Loader_Internal *loader = loader_data; - Eina_File *f; - void *map; - Eina_Bool val; - - f = loader->f; - - map = eina_file_map_all(f, EINA_FILE_RANDOM); - if (!map) - { - *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; - return EINA_FALSE; - } - - val = evas_image_load_file_head_avif_internal(&prop->w, &prop->h, - &prop->alpha, - map, eina_file_size_get(f), - error); - - eina_file_map_free(f, map); - - return val; -} - -static Eina_Bool -evas_image_load_file_data_avif(void *loader_data, - Emile_Image_Property *prop EINA_UNUSED, - void *pixels, - int *error) -{ - Evas_Loader_Internal *loader = loader_data; - Eina_File *f; - void *map; - Eina_Bool val = EINA_FALSE; - - f = loader->f; - - map = eina_file_map_all(f, EINA_FILE_WILLNEED); - if (!map) - { - *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; - goto on_error; - } - - val = evas_image_load_file_data_avif_internal(pixels, - map, eina_file_size_get(f), - error); - - eina_file_map_free(f, map); - - on_error: - return val; -} - -static Evas_Image_Load_Func evas_image_load_avif_func = -{ - EVAS_IMAGE_LOAD_VERSION, - evas_image_load_file_open_avif, - evas_image_load_file_close_avif, - (void*) evas_image_load_file_head_avif, - NULL, - (void*) evas_image_load_file_data_avif, - NULL, - EINA_TRUE, - EINA_TRUE -}; - -static int -module_open(Evas_Module *em) -{ - if (!em) return 0; - - _evas_loader_avif_log_dom = eina_log_domain_register("evas-avif", EINA_COLOR_BLUE); - if (_evas_loader_avif_log_dom < 0) - { - EINA_LOG_ERR("Can not create a module log domain."); - return 0; - } - - em->functions = (void *)(&evas_image_load_avif_func); - - return 1; -} - -static void -module_close(Evas_Module *em EINA_UNUSED) -{ - if (_evas_loader_avif_log_dom >= 0) - { - eina_log_domain_unregister(_evas_loader_avif_log_dom); - _evas_loader_avif_log_dom = -1; - } -} - -static Evas_Module_Api evas_modapi = -{ - EVAS_MODULE_API_VERSION, - "avif", - "none", - { - module_open, - module_close - } -}; - -EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, avif); - -#ifndef EVAS_STATIC_BUILD_AVIF -EVAS_EINA_MODULE_DEFINE(image_loader, avif); -#endif -