summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2016-12-06 16:23:59 -0800
committerCedric BAIL <cedric@osg.samsung.com>2016-12-06 16:34:48 -0800
commit365f79b7eea393bdecf3c20f60ccb5945919da74 (patch)
tree02448c909499fc608d3f117f1fe25907665ff56f
parentc8fef4a5567526eb2af9326c24f3a330645e59a0 (diff)
downloadefl-365f79b7eea393bdecf3c20f60ccb5945919da74.tar.gz
evas: use emile and evas new infrastructure to interrupt decoding of JPEG early.
-rw-r--r--src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c12
1 files changed, 11 insertions, 1 deletions
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
-