From 365f79b7eea393bdecf3c20f60ccb5945919da74 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 6 Dec 2016 16:23:59 -0800 Subject: evas: use emile and evas new infrastructure to interrupt decoding of JPEG early. --- src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/modules') diff --git a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c index 6813358c88..b749638e5f 100644 --- a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c +++ b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c @@ -84,6 +84,14 @@ evas_image_load_file_head_jpeg(void *loader_data, return ret; } +static Eina_Bool +_evas_image_load_jpeg_cancelled(void *data EINA_UNUSED, + Emile_Image *image EINA_UNUSED, + Emile_Action action EINA_UNUSED) +{ + return evas_module_task_cancelled(); +} + Eina_Bool evas_image_load_file_data_jpeg(void *loader_data, Evas_Image_Property *prop, @@ -94,6 +102,9 @@ evas_image_load_file_data_jpeg(void *loader_data, Emile_Image_Load_Error image_error; Eina_Bool ret; + emile_image_register(loader->image, + _evas_image_load_jpeg_cancelled, + EMILE_ACTION_CANCELLED, NULL); ret = emile_image_data(loader->image, prop, sizeof (*prop), pixels, @@ -142,4 +153,3 @@ EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, jpeg); #ifndef EVAS_STATIC_BUILD_JPEG EVAS_EINA_MODULE_DEFINE(image_loader, jpeg); #endif - -- cgit v1.2.1