Evas: add avif evas loader
authorVincent Torri <vincent.torri@gmail.com>
Sat, 11 Jul 2020 10:34:01 +0000 (11:34 +0100)
committerJongmin Lee <jm105.lee@samsung.com>
Tue, 14 Jul 2020 22:28:59 +0000 (07:28 +0900)
Summary: Add AV1 image file loader to Evas

Test Plan: test executable with avif files found in libavif project

Reviewers: raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12051

meson_options.txt
po/POTFILES.in
src/lib/evas/common/evas_image_load.c
src/lib/evas/file/evas_module.c
src/lib/evas/meson.build
src/modules/evas/image_loaders/avif/evas_image_load_avif.c [new file with mode: 0644]

index 2f5d4ce..cb1f8a9 100644 (file)
@@ -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'],
-  value : ['json']
+  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']
 )
 
 option('ecore-imf-loaders-disabler',
index 9431715..11b1b79 100644 (file)
@@ -86,16 +86,1217 @@ src/edje_external/elementary/elm_panes.c
 src/edje_external/elementary/elm_photocam.c
 src/edje_external/elementary/elm_progressbar.c
 src/edje_external/elementary/elm_radio.c
-src/edje_external/elementary/elm_scroller.c
-src/edje_external/elementary/elm_slider.c
-src/edje_external/elementary/elm_slideshow.c
-src/edje_external/elementary/elm_spinner.c
-src/edje_external/elementary/elm_thumb.c
-src/edje_external/elementary/elm_toolbar.c
-src/lib/elementary/elc_ctxpopup.c
-src/lib/elementary/elc_fileselector.c
-src/lib/elementary/elc_fileselector_button.c
-src/lib/elementary/elc_fileselector_entry.c
+src/edje_external/elementary/elm_label.c
+src/edje_external/elementary/elm_bg.c
+src/edje_external/elementary/elm_hoversel.c
+src/edje_external/elementary/elm_map.c
+src/edje_external/elementary/elm_index.c
+src/edje_external/elementary/elm_fileselector_entry.c
+src/edje_external/elementary/elm_list.c
+src/edje_external/elementary/elm_naviframe.c
+src/tests/eolian_js/eolian_js_test_constructor_method_impl.c
+src/tests/eolian_js/eolian_js_test_test_object_impl.c
+src/tests/efl_mono/dummy_child.c
+src/tests/efl_mono/dummy_hidden_object.c
+src/tests/efl_mono/dummy_numberwrapper.c
+src/tests/efl_mono/dummy_interfaces.c
+src/tests/efl_mono/dummy_inherit_helper.c
+src/tests/efl_mono/dummy_constructible_object.c
+src/tests/efl_mono/dummy_test_object.c
+src/tests/efl_mono/dummy_part_holder.c
+src/tests/efl_mono/dummy_event_manager.c
+src/tests/elput/elput_suite.c
+src/tests/elput/elput_test_elput.c
+src/tests/ecore_con/ecore_con_suite.c
+src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c
+src/tests/ecore_con/ecore_con_test_ecore_con.c
+src/tests/ecore_con/ecore_con_test_ecore_con_url.c
+src/tests/ecore_con/ecore_con_test_ecore_con_eet.c
+src/tests/edje/edje_test_features.c
+src/tests/edje/edje_test_signal.c
+src/tests/edje/edje_test_edje.c
+src/tests/edje/edje_test_text.c
+src/tests/edje/edje_suite.c
+src/tests/edje/efl_test_layout3.c
+src/tests/edje/efl_test_layout.c
+src/tests/edje/efl_test_layout2.c
+src/tests/edje/edje_test_container.c
+src/tests/edje/edje_test_swallow.c
+src/tests/eolian/eolian_generation.c
+src/tests/eolian/eolian_generated_future.c
+src/tests/eolian/data/class_simple_ref.c
+src/tests/eolian/data/function_as_argument_ref.c
+src/tests/eolian/data/object_impl_add_ref.c
+src/tests/eolian/data/override_ref.c
+src/tests/eolian/data/owning_ref.c
+src/tests/eolian/data/object_impl_ref.c
+src/tests/eolian/data/function_as_argument_impl_ref.c
+src/tests/eolian/eolian_parsing.c
+src/tests/eolian/eolian_static.c
+src/tests/eolian/eolian_aux.c
+src/tests/eolian/eolian_suite.c
+src/tests/eina_cxx/simple.c
+src/tests/ecore/ecore_test_ecore_fb.c
+src/tests/ecore/ecore_test_ecore_thread_eina_thread_queue.c
+src/tests/ecore/efl_app_test_loop_fd.c
+src/tests/ecore/ecore_test_ecore_audio.c
+src/tests/ecore/ecore_test_ecore_evas_selection.c
+src/tests/ecore/efl_app_test_loop.c
+src/tests/ecore/efl_app_test_promise.c
+src/tests/ecore/ecore_test_poller.c
+src/tests/ecore/ecore_test_ecore.c
+src/tests/ecore/efl_app_test_cml.c
+src/tests/ecore/ecore_test_args.c
+src/tests/ecore/ecore_test_animator.c
+src/tests/ecore/ecore_test_ecore_evas.c
+src/tests/ecore/ecore_test_ecore_imf.c
+src/tests/ecore/efl_app_test_loop_timer.c
+src/tests/ecore/ecore_test_idle.c
+src/tests/ecore/ecore_test_ecore_input.c
+src/tests/ecore/ecore_test_job.c
+src/tests/ecore/ecore_test_ecore_file.c
+src/tests/ecore/ecore_test_timer.c
+src/tests/ecore/ecore_suite.c
+src/tests/ecore/ecore_test_pipe.c
+src/tests/ecore/efl_app_test_env.c
+src/tests/ecore/efl_app_suite.c
+src/tests/ecore/ecore_test_ecore_x.c
+src/tests/eo/composite_objects/composite_objects_main.c
+src/tests/eo/composite_objects/composite_objects_comp.c
+src/tests/eo/composite_objects/composite_objects_simple.c
+src/tests/eo/signals/signals_simple.c
+src/tests/eo/signals/signals_main.c
+src/tests/eo/constructors/constructors_simple7.c
+src/tests/eo/constructors/constructors_simple.c
+src/tests/eo/constructors/constructors_simple4.c
+src/tests/eo/constructors/constructors_simple6.c
+src/tests/eo/constructors/constructors_mixin.c
+src/tests/eo/constructors/constructors_main.c
+src/tests/eo/constructors/constructors_simple5.c
+src/tests/eo/constructors/constructors_simple2.c
+src/tests/eo/constructors/constructors_simple3.c
+src/tests/eo/children/children_simple.c
+src/tests/eo/children/children_main.c
+src/tests/eo/suite/eo_test_class_simple.c
+src/tests/eo/suite/eo_test_class_errors.c
+src/tests/eo/suite/eo_test_lifecycle.c
+src/tests/eo/suite/eo_test_class_behaviour_errors.c
+src/tests/eo/suite/eo_error_msgs.c
+src/tests/eo/suite/eo_test_general.c
+src/tests/eo/suite/eo_test_value.c
+src/tests/eo/suite/eo_test_init.c
+src/tests/eo/suite/eo_test_event.c
+src/tests/eo/suite/eo_test_threaded_calls.c
+src/tests/eo/suite/eo_test_domain.c
+src/tests/eo/suite/eo_test_class_singleton.c
+src/tests/eo/suite/eo_test_reflection_complex_class_structure.c
+src/tests/eo/suite/eo_suite.c
+src/tests/eo/suite/eo_test_reflection.c
+src/tests/eo/suite/eo_test_call_errors.c
+src/tests/eo/interface/interface_main.c
+src/tests/eo/interface/interface_interface.c
+src/tests/eo/interface/interface_simple.c
+src/tests/eo/interface/interface_interface2.c
+src/tests/eo/mixin/mixin_mixin.c
+src/tests/eo/mixin/mixin_inherit.c
+src/tests/eo/mixin/mixin_mixin2.c
+src/tests/eo/mixin/mixin_simple.c
+src/tests/eo/mixin/mixin_mixin3.c
+src/tests/eo/mixin/mixin_mixin4.c
+src/tests/eo/mixin/mixin_main.c
+src/tests/eo/access/access_simple.c
+src/tests/eo/access/access_main.c
+src/tests/eo/access/access_inherit.c
+src/tests/eo/function_overrides/function_overrides_inherit2.c
+src/tests/eo/function_overrides/function_overrides_simple.c
+src/tests/eo/function_overrides/function_overrides_inherit.c
+src/tests/eo/function_overrides/function_overrides_inherit3.c
+src/tests/eo/function_overrides/function_overrides_main.c
+src/tests/eet/eet_test_common.c
+src/tests/eet/eet_test_cache.c
+src/tests/eet/eet_suite.c
+src/tests/eet/eet_test_connection.c
+src/tests/eet/eet_test_init.c
+src/tests/eet/eet_test_cipher.c
+src/tests/eet/eet_test_identity.c
+src/tests/eet/eet_test_image.c
+src/tests/eet/eet_test_file.c
+src/tests/eet/eet_test_data.c
+src/tests/efreet/ef_locale.c
+src/tests/efreet/main.c
+src/tests/efreet/ef_icon_theme.c
+src/tests/efreet/efreet_spec_test.c
+src/tests/efreet/ef_cache.c
+src/tests/efreet/ef_mime.c
+src/tests/efreet/ef_desktop.c
+src/tests/efreet/ef_menu.c
+src/tests/efreet/efreet_user_dir.c
+src/tests/efreet/efreet_test_efreet_cache.c
+src/tests/efreet/ef_ini.c
+src/tests/efreet/efreet_async_test.c
+src/tests/efreet/efreet_icon_cache_dump.c
+src/tests/efreet/ef_utils.c
+src/tests/efreet/efreet_suite.c
+src/tests/efreet/efreet_test_efreet.c
+src/tests/efreet/ef_data_dirs.c
+src/tests/efreet/compare/efreet_alloc.c
+src/tests/efreet/compare/efreet_menu_alloc.c
+src/tests/evas/efl_test_canvas2.c
+src/tests/evas/efl_test_canvas3.c
+src/tests/evas/evas_test_text.c
+src/tests/evas/evas_test_events.c
+src/tests/evas/evas_test_evasgl.c
+src/tests/evas/evas_buffer_helper.c
+src/tests/evas/evas_test_image.c
+src/tests/evas/evas_test_filters.c
+src/tests/evas/evas_test_textblock.c
+src/tests/evas/efl_canvas_animation.c
+src/tests/evas/evas_suite.c
+src/tests/evas/evas_test_callbacks.c
+src/tests/evas/efl_test_canvas.c
+src/tests/evas/evas_test_mask.c
+src/tests/evas/evas_test_new.c
+src/tests/evas/evas_test_init.c
+src/tests/evas/evas_test_render_engines.c
+src/tests/evas/evas_test_object_smart.c
+src/tests/evas/evas_test_object.c
+src/tests/evas/evas_test_focus.c
+src/tests/emotion/emotion_test_main.c
+src/tests/emotion/emotion_test_main-eo.c
+src/tests/elementary/elm_test_bubble.c
+src/tests/elementary/elm_test_index.c
+src/tests/elementary/elm_test_flip.c
+src/tests/elementary/elm_test_slideshow.c
+src/tests/elementary/elm_test_atspi.c
+src/tests/elementary/elm_code_test_parse.c
+src/tests/elementary/efl_ui_test_radio_group.c
+src/tests/elementary/efl_ui_test_slider.c
+src/tests/elementary/efl_ui_test_image.c
+src/tests/elementary/elm_code_test_widget_undo.c
+src/tests/elementary/efl_ui_test_grid.c
+src/tests/elementary/efl_ui_window_cnp_dnd_slave.c
+src/tests/elementary/efl_ui_test_timepicker.c
+src/tests/elementary/elm_code_test_indent.c
+src/tests/elementary/efl_ui_test_vg_animation.c
+src/tests/elementary/elm_test_list.c
+src/tests/elementary/elm_test_web.c
+src/tests/elementary/elm_code_test_widget_text.c
+src/tests/elementary/efl_ui_test_select_model.c
+src/tests/elementary/elm_test_thumb.c
+src/tests/elementary/elm_test_popup.c
+src/tests/elementary/elm_test_menu.c
+src/tests/elementary/efl_ui_test_box_flow.c
+src/tests/elementary/elm_test_map.c
+src/tests/elementary/efl_ui_test_list_collection.c
+src/tests/elementary/efl_ui_test_widget.c
+src/tests/elementary/elm_test_fileselector.c
+src/tests/elementary/elm_test_multibuttonentry.c
+src/tests/elementary/elm_test_hoversel.c
+src/tests/elementary/efl_ui_test_scroller.c
+src/tests/elementary/elm_test_slider.c
+src/tests/elementary/efl_ui_test_view_model.c
+src/tests/elementary/efl_ui_test_atspi.c
+src/tests/elementary/elm_test_inwin.c
+src/tests/elementary/elm_test_entry.c
+src/tests/elementary/elm_code_file_test_memory.c
+src/tests/elementary/elm_test_icon.c
+src/tests/elementary/elm_test_image.c
+src/tests/elementary/elm_test_spinner.c
+src/tests/elementary/efl_ui_test_progressbar.c
+src/tests/elementary/efl_ui_test_popup.c
+src/tests/elementary/elm_test_calendar.c
+src/tests/elementary/elm_test_widget_basics.c
+src/tests/elementary/efl_ui_test_image_zoomable.c
+src/tests/elementary/efl_ui_test_box_stack.c
+src/tests/elementary/efl_ui_test_focus.c
+src/tests/elementary/elm_code_test_syntax.c
+src/tests/elementary/custom_recognizer.c
+src/tests/elementary/elm_code_file_test_load.c
+src/tests/elementary/elm_test_panel.c
+src/tests/elementary/efl_ui_test_box.c
+src/tests/elementary/efl_ui_suite.c
+src/tests/elementary/elm_test_conformant.c
+src/tests/elementary/elm_test_button.c
+src/tests/elementary/elm_test_notify.c
+src/tests/elementary/efl_ui_test_collection_view.c
+src/tests/elementary/elm_code_test_basic.c
+src/tests/elementary/efl_ui_test_win.c
+src/tests/elementary/elm_test_toolbar.c
+src/tests/elementary/elm_test_player.c
+src/tests/elementary/elm_test_photo.c
+src/tests/elementary/elm_test_label.c
+src/tests/elementary/elm_test_colorselector.c
+src/tests/elementary/elm_test_grid.c
+src/tests/elementary/elm_test_layout.c
+src/tests/elementary/elm_test_panes.c
+src/tests/elementary/efl_ui_model.c
+src/tests/elementary/elm_test_naviframe.c
+src/tests/elementary/elm_test_mapbuf.c
+src/tests/elementary/efl_ui_test_focus_common.c
+src/tests/elementary/elm_test_datetime.c
+src/tests/elementary/elm_test_progressbar.c
+src/tests/elementary/efl_ui_test_callback.c
+src/tests/elementary/elm_test_check.c
+src/tests/elementary/efl_ui_test_grid_collection.c
+src/tests/elementary/efl_ui_test_config.c
+src/tests/elementary/efl_ui_test_position_manager_common.c
+src/tests/elementary/suite_helpers.c
+src/tests/elementary/elm_test_diskselector.c
+src/tests/elementary/elm_test_hover.c
+src/tests/elementary/elm_code_test_widget_selection.c
+src/tests/elementary/elm_suite_build.c
+src/tests/elementary/elm_test_radio.c
+src/tests/elementary/elm_code_test_text.c
+src/tests/elementary/efl_ui_test_check.c
+src/tests/elementary/elm_test_table.c
+src/tests/elementary/efl_ui_test_relative_container.c
+src/tests/elementary/efl_ui_test_gesture.c
+src/tests/elementary/elm_test_genlist.c
+src/tests/elementary/elm_test_actionslider.c
+src/tests/elementary/custom_gesture.c
+src/tests/elementary/elm_test_plug.c
+src/tests/elementary/elm_test_flipselector.c
+src/tests/elementary/spec/efl_test_content.c
+src/tests/elementary/spec/efl_test_selectable.c
+src/tests/elementary/spec/efl_test_gfx_view.c
+src/tests/elementary/spec/efl_test_container.c
+src/tests/elementary/spec/efl_ui_spec_suite.c
+src/tests/elementary/spec/efl_test_ui_view.c
+src/tests/elementary/spec/efl_test_range_display.c
+src/tests/elementary/spec/efl_test_basics.c
+src/tests/elementary/spec/efl_test_range_interactive.c
+src/tests/elementary/spec/efl_test_clickable.c
+src/tests/elementary/spec/efl_test_format.c
+src/tests/elementary/spec/efl_test_pack.c
+src/tests/elementary/spec/efl_test_multi_selectable.c
+src/tests/elementary/spec/efl_test_gfx_arrangement.c
+src/tests/elementary/spec/efl_test_single_selectable.c
+src/tests/elementary/spec/efl_test_pack_linear.c
+src/tests/elementary/elm_test_fileselector_button.c
+src/tests/elementary/efl_ui_test_layout.c
+src/tests/elementary/elm_test_separator.c
+src/tests/elementary/elm_test_fileselector_entry.c
+src/tests/elementary/elm_test_dayselector.c
+src/tests/elementary/elm_test_gengrid.c
+src/tests/elementary/efl_ui_test_group_item.c
+src/tests/elementary/efl_ui_test_text.c
+src/tests/elementary/elm_test_bg.c
+src/tests/elementary/efl_ui_test_collection.c
+src/tests/elementary/elm_test_config.c
+src/tests/elementary/elm_test_widget_focus.c
+src/tests/elementary/elm_test_prefs.c
+src/tests/elementary/elm_test_video.c
+src/tests/elementary/elm_test_ctxpopup.c
+src/tests/elementary/efl_ui_test_spotlight.c
+src/tests/elementary/efl_ui_test_spin_button.c
+src/tests/elementary/elm_suite.c
+src/tests/elementary/elm_test_frame.c
+src/tests/elementary/elm_test_glview.c
+src/tests/elementary/elm_test_photocam.c
+src/tests/elementary/efl_ui_build.c
+src/tests/elementary/elm_code_test_line.c
+src/tests/elementary/efl_ui_test_collection_common.c
+src/tests/elementary/efl_ui_compile_test.c
+src/tests/elementary/efl_ui_test_focus_sub.c
+src/tests/elementary/efl_ui_test_table.c
+src/tests/elementary/elm_test_init.c
+src/tests/elementary/custom_recognizer2.c
+src/tests/elementary/elm_code_test_widget.c
+src/tests/elementary/efl_ui_test_spin.c
+src/tests/elementary/elm_test_clock.c
+src/tests/elementary/elm_test_segmentcontrol.c
+src/tests/elementary/elm_test_box.c
+src/tests/elementary/elm_test_win.c
+src/tests/elementary/elm_test_scroller.c
+src/tests/eeze/eeze_test_net.c
+src/tests/eeze/eeze_test_udev.c
+src/tests/eeze/eeze_test_init.c
+src/tests/eeze/eeze_suite.c
+src/tests/eeze/eeze_test_sensor.c
+src/tests/ector/suite/ector_test_init.c
+src/tests/ector/suite/ector_suite.c
+src/tests/eolian_cxx/simple.c
+src/tests/eolian_cxx/generic.c
+src/tests/eolian_cxx/name1_name2_type_generation.c
+src/tests/eolian_cxx/c.c
+src/tests/eolian_cxx/a.c
+src/tests/eolian_cxx/complex.c
+src/tests/eolian_cxx/b.c
+src/tests/eolian_cxx/name_name.c
+src/tests/elua/elua_suite.c
+src/tests/elua/elua_lib.c
+src/tests/eina/eina_test_barrier.c
+src/tests/eina/eina_test_tiler.c
+src/tests/eina/eina_test_debug.c
+src/tests/eina/eina_test_accessor.c
+src/tests/eina/eina_test_log.c
+src/tests/eina/eina_test_error.c
+src/tests/eina/eina_test_array.c
+src/tests/eina/eina_test_freeq.c
+src/tests/eina/eina_test_slice.c
+src/tests/eina/eina_suite.c
+src/tests/eina/eina_test_cow.c
+src/tests/eina/eina_test_sched.c
+src/tests/eina/eina_test_benchmark.c
+src/tests/eina/eina_test_crc.c
+src/tests/eina/eina_test_binshare.c
+src/tests/eina/eina_test_inlist.c
+src/tests/eina/eina_test_simple_xml_parser.c
+src/tests/eina/eina_test_vector.c
+src/tests/eina/eina_test_module_dummy.c
+src/tests/eina/eina_test_util.c
+src/tests/eina/eina_test_convert.c
+src/tests/eina/eina_test_clist.c
+src/tests/eina/eina_test_counter.c
+src/tests/eina/eina_test_vpath.c
+src/tests/eina/eina_test_rectangle.c
+src/tests/eina/eina_test_value.c
+src/tests/eina/eina_test_fp.c
+src/tests/eina/eina_test_magic.c
+src/tests/eina/eina_test_hash.c
+src/tests/eina/eina_test_abi.c
+src/tests/eina/eina_test_xattr.c
+src/tests/eina/eina_test_rbtree.c
+src/tests/eina/eina_test_safepointer.c
+src/tests/eina/eina_test_matrix.c
+src/tests/eina/eina_test_binbuf.c
+src/tests/eina/eina_test_ustr.c
+src/tests/eina/eina_test_range.c
+src/tests/eina/eina_test_list.c
+src/tests/eina/eina_test_stringshare.c
+src/tests/eina/eina_test_abstract_content.c
+src/tests/eina/eina_test_ustringshare.c
+src/tests/eina/eina_test_inarray.c
+src/tests/eina/eina_test_matrixsparse.c
+src/tests/eina/eina_test_quaternion.c
+src/tests/eina/eina_test_strbuf.c
+src/tests/eina/eina_test_lalloc.c
+src/tests/eina/eina_test_bezier.c
+src/tests/eina/eina_test_file.c
+src/tests/eina/eina_test_tmpstr.c
+src/tests/eina/eina_test_slstr.c
+src/tests/eina/eina_test_str.c
+src/tests/eina/eina_test_iterator.c
+src/tests/eina/eina_test_trash.c
+src/tests/eina/eina_test_main.c
+src/tests/eina/eina_test_quadtree.c
+src/tests/eina/eina_test_module.c
+src/tests/eina/eina_test_lock.c
+src/tests/eina/eina_test_mempool.c
+src/tests/eina/eina_test_quad.c
+src/tests/evil/evil_test_main.c
+src/tests/evil/evil_test_stdio.c
+src/tests/evil/evil_suite.c
+src/tests/evil/evil_test_unistd.c
+src/tests/evil/evil_test_stdlib.c
+src/tests/evil/evil_test_dlfcn.c
+src/tests/efl/efl_test_container_model.c
+src/tests/efl/efl_suite.c
+src/tests/efl/efl_test_composite_model.c
+src/tests/eio/eio_test_manager.c
+src/tests/eio/eio_test_monitor.c
+src/tests/eio/eio_test_manager_xattr.c
+src/tests/eio/eio_test_file.c
+src/tests/eio/eio_test_common.c
+src/tests/eio/efl_io_model_test_monitor_add.c
+src/tests/eio/eio_test_eet.c
+src/tests/eio/eio_test_sentry.c
+src/tests/eio/eio_test_xattr.c
+src/tests/eio/eio_suite.c
+src/tests/eio/eio_test_map.c
+src/tests/eio/efl_io_model_test_file.c
+src/tests/timeout.c
+src/tests/emile/emile_test_base.c
+src/tests/emile/emile_test_base64.c
+src/tests/emile/emile_suite.c
+src/tests/ecore_wl2/ecore_wl2_test_output.c
+src/tests/ecore_wl2/ecore_wl2_test_display.c
+src/tests/ecore_wl2/ecore_wl2_test_input.c
+src/tests/ecore_wl2/ecore_wl2_test_window.c
+src/tests/ecore_wl2/ecore_wl2_test_ecore_wl2.c
+src/tests/ecore_wl2/ecore_wl2_suite.c
+src/tests/eldbus/eldbus_test_eldbus_pending_cancel.c
+src/tests/eldbus/eldbus_test_eldbus_model_object.c
+src/tests/eldbus/eldbus_test_eldbus_object.c
+src/tests/eldbus/eldbus_test_eldbus_init.c
+src/tests/eldbus/eldbus_test_eldbus_proxy.c
+src/tests/eldbus/eldbus_test_eldbus_model.c
+src/tests/eldbus/eldbus_test_eldbus_pending_data.c
+src/tests/eldbus/eldbus_test_eldbus_model_signal.c
+src/tests/eldbus/eldbus_test_eldbus_model_method.c
+src/tests/eldbus/eldbus_suite.c
+src/tests/eldbus/eldbus_test_eldbus_signal_handler.c
+src/tests/eldbus/eldbus_test_eldbus_message.c
+src/tests/eldbus/eldbus_test_eldbus_model_connection.c
+src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c
+src/tests/eldbus/eldbus_test_eldbus_model_proxy.c
+src/tests/eldbus/eldbus_fake_server.c
+src/modules/ecore/system/systemd/ecore_system_systemd.c
+src/modules/ecore/system/tizen/ecore_system_tizen.c
+src/modules/ecore/system/upower/ecore_system_upower.c
+src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c
+src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
+src/modules/evas/image_loaders/dds/evas_image_load_dds.c
+src/modules/evas/image_loaders/dds/s3tc_decoder.c
+src/modules/evas/image_loaders/tga/evas_image_load_tga.c
+src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
+src/modules/evas/image_loaders/psd/evas_image_load_psd.c
+src/modules/evas/image_loaders/png/evas_image_load_png.c
+src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c
+src/modules/evas/image_loaders/eet/evas_image_load_eet.c
+src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c
+src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c
+src/modules/evas/image_loaders/webp/evas_image_load_webp.c
+src/modules/evas/image_loaders/ico/evas_image_load_ico.c
+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
+src/modules/evas/image_savers/eet/evas_image_save_eet.c
+src/modules/evas/image_savers/webp/evas_image_save_webp.c
+src/modules/evas/image_savers/tgv/evas_image_save_tgv.c
+src/modules/evas/vg_loaders/json/evas_vg_load_json.c
+src/modules/evas/vg_loaders/eet/evas_vg_load_eet.c
+src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c
+src/modules/evas/engines/eglfs/evas_outbuf.c
+src/modules/evas/engines/eglfs/evas_engine.c
+src/modules/evas/engines/gl_x11/evas_x_main.c
+src/modules/evas/engines/gl_x11/evas_engine.c
+src/modules/evas/engines/software_x11/evas_x_egl.c
+src/modules/evas/engines/software_x11/evas_xlib_color.c
+src/modules/evas/engines/software_x11/evas_xlib_swapper.c
+src/modules/evas/engines/software_x11/evas_xlib_buffer.c
+src/modules/evas/engines/software_x11/evas_xlib_outbuf.c
+src/modules/evas/engines/software_x11/evas_xlib_main.c
+src/modules/evas/engines/software_x11/evas_xlib_dri_image.c
+src/modules/evas/engines/software_x11/evas_xlib_image.c
+src/modules/evas/engines/software_x11/evas_xlib_swapbuf.c
+src/modules/evas/engines/software_x11/evas_engine.c
+src/modules/evas/engines/gl_common/evas_gl_api_gles1.c
+src/modules/evas/engines/gl_common/evas_gl_file_cache.c
+src/modules/evas/engines/gl_common/evas_gl_api_ext.c
+src/modules/evas/engines/gl_common/evas_gl_rectangle.c
+src/modules/evas/engines/gl_common/evas_gl_image.c
+src/modules/evas/engines/gl_common/evas_gl_context.c
+src/modules/evas/engines/gl_common/evas_gl_texture.c
+src/modules/evas/engines/gl_common/evas_gl_core.c
+src/modules/evas/engines/gl_common/evas_gl_preload.c
+src/modules/evas/engines/gl_common/evas_gl_line.c
+src/modules/evas/engines/gl_common/evas_gl_polygon.c
+src/modules/evas/engines/gl_common/evas_gl_api.c
+src/modules/evas/engines/gl_common/evas_gl_shader.c
+src/modules/evas/engines/gl_common/evas_gl_font.c
+src/modules/evas/engines/gl_sdl/evas_engine.c
+src/modules/evas/engines/wayland_shm/evas_outbuf.c
+src/modules/evas/engines/wayland_shm/evas_engine.c
+src/modules/evas/engines/software_gdi/evas_gdi_buffer.c
+src/modules/evas/engines/software_gdi/evas_gdi_main.c
+src/modules/evas/engines/software_gdi/evas_outbuf.c
+src/modules/evas/engines/software_gdi/evas_engine.c
+src/modules/evas/engines/drm/evas_outbuf.c
+src/modules/evas/engines/drm/evas_engine.c
+src/modules/evas/engines/wayland_egl/evas_engine.c
+src/modules/evas/engines/wayland_egl/evas_wl_main.c
+src/modules/evas/engines/gl_drm/evas_outbuf.c
+src/modules/evas/engines/gl_drm/evas_engine.c
+src/modules/evas/engines/software_ddraw/evas_outbuf.c
+src/modules/evas/engines/software_ddraw/evas_engine.c
+src/modules/evas/engines/software_ddraw/evas_ddraw_buffer.c
+src/modules/evas/engines/buffer/evas_outbuf.c
+src/modules/evas/engines/buffer/evas_engine.c
+src/modules/evas/engines/gl_cocoa/evas_engine.c
+src/modules/evas/engines/gl_generic/evas_ector_gl_buffer.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_blend.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_curve.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_grayscale.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_displace.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_fill.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_mask.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_blur.c
+src/modules/evas/engines/gl_generic/filters/gl_filter_inverse_color.c
+src/modules/evas/engines/gl_generic/evas_engine.c
+src/modules/evas/engines/gl_generic/evas_ector_gl_image_buffer.c
+src/modules/evas/engines/fb/evas_outbuf.c
+src/modules/evas/engines/fb/evas_engine.c
+src/modules/evas/engines/fb/evas_fb_main.c
+src/modules/evas/engines/software_generic/evas_native_tbm.c
+src/modules/evas/engines/software_generic/evas_ector_software_buffer.c
+src/modules/evas/engines/software_generic/evas_native_dmabuf.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_alpha_sse3.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_alpha_i386.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_alpha_.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_alpha_neon.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_rgba_sse3.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_rgba_i386.c
+src/modules/evas/engines/software_generic/filters/blur/blur_gaussian_rgba_.c
+src/modules/evas/engines/software_generic/filters/blur/blur_gaussian_alpha_.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_rgba_neon.c
+src/modules/evas/engines/software_generic/filters/blur/blur_box_rgba_.c
+src/modules/evas/engines/software_generic/filters/evas_filter_mask.c
+src/modules/evas/engines/software_generic/filters/evas_filter_blend.c
+src/modules/evas/engines/software_generic/filters/evas_filter_inverse_color.c
+src/modules/evas/engines/software_generic/filters/evas_filter_fill.c
+src/modules/evas/engines/software_generic/filters/evas_filter_curve.c
+src/modules/evas/engines/software_generic/filters/evas_filter_blur.c
+src/modules/evas/engines/software_generic/filters/evas_filter_displace.c
+src/modules/evas/engines/software_generic/filters/evas_filter_bump.c
+src/modules/evas/engines/software_generic/filters/evas_filter_grayscale.c
+src/modules/evas/engines/software_generic/filters/evas_filter_transform.c
+src/modules/evas/engines/software_generic/evas_engine.c
+src/modules/evas/vg_savers/eet/evas_vg_save_eet.c
+src/modules/evas/vg_savers/svg/evas_vg_save_svg.c
+src/modules/emotion/gstreamer1/emotion_convert.c
+src/modules/emotion/gstreamer1/emotion_alloc.c
+src/modules/emotion/gstreamer1/emotion_gstreamer.c
+src/modules/emotion/gstreamer1/emotion_sink.c
+src/modules/elementary/prefs/elm_button.c
+src/modules/elementary/prefs/elm_slider.c
+src/modules/elementary/prefs/elm_swallow.c
+src/modules/elementary/prefs/elm_check.c
+src/modules/elementary/prefs/elm_horizontal_frame.c
+src/modules/elementary/prefs/elm_entry.c
+src/modules/elementary/prefs/elm_spinner.c
+src/modules/elementary/prefs/elm_horizontal_box.c
+src/modules/elementary/prefs/elm_datetime.c
+src/modules/elementary/prefs/prefs_iface.c
+src/modules/elementary/prefs/elm_vertical_box.c
+src/modules/elementary/prefs/elm_vertical_frame.c
+src/modules/elementary/prefs/elm_label.c
+src/modules/elementary/prefs/elm_separator.c
+src/modules/elementary/test_map/mod.c
+src/modules/elementary/test_entry/mod.c
+src/modules/elementary/access_output/mod.c
+src/modules/elementary/web/none/elm_web_none.c
+src/modules/elementary/web/none/elm_web_none_eo.c
+src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c
+src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c
+src/modules/ecore_buffer/shm/ecore_buffer_shm.c
+src/modules/eeze/sensor/fake/fake.c
+src/modules/eeze/sensor/udev/udev.c
+src/modules/ethumb/emotion/emotion.c
+src/modules/eina/mp/pass_through/eina_pass_through.c
+src/modules/eina/mp/one_big/eina_one_big.c
+src/modules/eina/mp/chained_pool/eina_chained_mempool.c
+src/modules/ecore_imf/ibus/ibus_imcontext.c
+src/modules/ecore_imf/ibus/ibus_module.c
+src/modules/ecore_imf/wayland/wayland_module.c
+src/modules/ecore_imf/wayland/wayland_imcontext.c
+src/modules/ecore_imf/xim/ecore_imf_xim.c
+src/modules/ecore_wl2/engines/dmabuf/ecore_wl2_surface_module_dmabuf.c
+src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.c
+src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
+src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c
+src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+src/modules/ecore_evas/engines/x/ecore_evas_x.c
+src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+src/modules/ecore_evas/engines/win32/ecore_evas_win32.c
+src/modules/ecore_evas/engines/sdl/ecore_evas_sdl.c
+src/modules/ecore_evas/engines/fb/ecore_evas_fb.c
+src/modules/ecore_evas/engines/extn/ecore_evas_extn_buf.c
+src/modules/ecore_evas/engines/extn/ecore_evas_extn.c
+src/static_libs/lz4/xxhash.c
+src/static_libs/lz4/lz4frame.c
+src/static_libs/lz4/lz4hc.c
+src/static_libs/lz4/lz4.c
+src/static_libs/freetype/sw_ft_stroker.c
+src/static_libs/freetype/sw_ft_math.c
+src/static_libs/freetype/sw_ft_raster.c
+src/static_libs/vg_common/vg_common_json.c
+src/static_libs/vg_common/vg_common_svg.c
+src/static_libs/http-parser/test.c
+src/static_libs/http-parser/contrib/parsertrace.c
+src/static_libs/http-parser/contrib/url_parser.c
+src/static_libs/http-parser/http_parser.c
+src/static_libs/libunibreak/linebreakdata.c
+src/static_libs/libunibreak/linebreakdef.c
+src/static_libs/libunibreak/graphemebreak.c
+src/static_libs/libunibreak/unibreakbase.c
+src/static_libs/libunibreak/graphemebreakdata.c
+src/static_libs/libunibreak/unibreakdef.c
+src/static_libs/libunibreak/linebreak.c
+src/static_libs/libunibreak/wordbreak.c
+src/static_libs/libunibreak/wordbreakdata.c
+src/static_libs/rg_etc/etc2_encoder.c
+src/static_libs/rg_etc/rg_etc1.c
+src/static_libs/rg_etc/rg_etc2.c
+src/static_libs/buildsystem/buildsystem_autotools.c
+src/static_libs/buildsystem/buildsystem_meson.c
+src/static_libs/draw/draw_convert.c
+src/static_libs/draw/draw_main_sse2.c
+src/static_libs/draw/draw_alpha_main.c
+src/static_libs/draw/draw_main_neon.c
+src/static_libs/draw/draw_main.c
+src/static_libs/triangulator/triangulator_stroker.c
+src/static_libs/triangulator/triangulator_simple.c
+src/lib/ecore_sdl/ecore_sdl.c
+src/lib/efl_mono/efl_mono_model_internal.c
+src/lib/efl_mono/efl_custom_exports_mono.c
+src/lib/efl_mono/efl_mono_accessors.c
+src/lib/elput/elput_logind.c
+src/lib/elput/elput_manager.c
+src/lib/elput/elput.c
+src/lib/elput/elput_evdev.c
+src/lib/elput/elput_touch.c
+src/lib/elput/elput_input.c
+src/lib/ecore_con/ecore_con_local_win32.c
+src/lib/ecore_con/ecore_con_eet_client_obj_eo.c
+src/lib/ecore_con/efl_net_dialer_tcp.c
+src/lib/ecore_con/ecore_con_local.c
+src/lib/ecore_con/efl_net_server_tcp.c
+src/lib/ecore_con/ecore_con_socks.c
+src/lib/ecore_con/efl_net_socket.c
+src/lib/ecore_con/ecore_con_eet_server_obj_eo.c
+src/lib/ecore_con/efl_net_session-none.c
+src/lib/ecore_con/efl_net_session-connman.c
+src/lib/ecore_con/efl_net_ssl_context.c
+src/lib/ecore_con/efl_net_dialer_http.c
+src/lib/ecore_con/efl_net_socket_udp.c
+src/lib/ecore_con/efl_net_ssl_ctx-none.c
+src/lib/ecore_con/efl_net_server_ssl.c
+src/lib/ecore_con/efl_net_socket_fd.c
+src/lib/ecore_con/ecore_con_eet_base_eo.c
+src/lib/ecore_con/efl_net_control_technology-connman.c
+src/lib/ecore_con/efl_net_dialer_unix.c
+src/lib/ecore_con/efl_net_control-none.c
+src/lib/ecore_con/ecore_con_alloc.c
+src/lib/ecore_con/efl_net_dialer_websocket.c
+src/lib/ecore_con/efl_net_dialer_simple.c
+src/lib/ecore_con/ecore_con_legacy.c
+src/lib/ecore_con/efl_net_ssl_conn-gnutls.c
+src/lib/ecore_con/efl_net_server_ip.c
+src/lib/ecore_con/efl_net_control-connman.c
+src/lib/ecore_con/efl_net_socket_unix.c
+src/lib/ecore_con/efl_net_socket_windows.c
+src/lib/ecore_con/efl_net_ssl_ctx-openssl.c
+src/lib/ecore_con/ecore_con_url.c
+src/lib/ecore_con/efl_net_socket_simple.c
+src/lib/ecore_con/ecore_con_url_curl.c
+src/lib/ecore_con/efl_net_ssl_ctx-gnutls.c
+src/lib/ecore_con/efl_net_ssl_conn-none.c
+src/lib/ecore_con/efl_net_socket_ssl.c
+src/lib/ecore_con/efl_net_control_technology-none.c
+src/lib/ecore_con/efl_net_server.c
+src/lib/ecore_con/ecore_con_eet_base_eo.legacy.c
+src/lib/ecore_con/ecore_con_eet.c
+src/lib/ecore_con/efl_net_server_windows.c
+src/lib/ecore_con/efl_net_dialer_ssl.c
+src/lib/ecore_con/efl_net_control_access_point-connman.c
+src/lib/ecore_con/efl_net_server_simple.c
+src/lib/ecore_con/efl_net_ssl_conn-openssl.c
+src/lib/ecore_con/efl_net_control_access_point-none.c
+src/lib/ecore_con/efl_net_dialer_windows.c
+src/lib/ecore_con/efl_net_socket_tcp.c
+src/lib/ecore_con/efl_net_dialer.c
+src/lib/ecore_con/efl_net_dialer_udp.c
+src/lib/ecore_con/efl_net_server_udp.c
+src/lib/ecore_con/ecore_con_proxy_helper.c
+src/lib/ecore_con/ecore_con.c
+src/lib/ecore_con/efl_net_server_unix.c
+src/lib/ecore_con/efl_net_server_udp_client.c
+src/lib/ecore_con/efl_net_server_fd.c
+src/lib/ecore_con/efl_net_ip_address.c
+src/lib/ecore_con/efl_net-connman.c
+src/lib/edje/edje_calc.c
+src/lib/edje/edje_part_external.c
+src/lib/edje/edje_cache.c
+src/lib/edje/edje_lua.c
+src/lib/edje/edje_legacy.c
+src/lib/edje/edje_lua2.c
+src/lib/edje/edje_part_text.c
+src/lib/edje/edje_var.c
+src/lib/edje/edje_textblock.c
+src/lib/edje/edje_embryo.c
+src/lib/edje/edje_signal.c
+src/lib/edje/edje_module.c
+src/lib/edje/efl_layout_group_eo.legacy.c
+src/lib/edje/edje_part.c
+src/lib/edje/edje_match.c
+src/lib/edje/efl_canvas_layout_eo.legacy.c
+src/lib/edje/edje_edit.c
+src/lib/edje/edje_smart.c
+src/lib/edje/edje_part_swallow.c
+src/lib/edje/edje_box_layout.c
+src/lib/edje/edje_program.c
+src/lib/edje/edje_main.c
+src/lib/edje/edje_external.c
+src/lib/edje/edje_part_box.c
+src/lib/edje/edje_textblock_styles.c
+src/lib/edje/edje_lua_script_only.c
+src/lib/edje/edje_multisense.c
+src/lib/edje/edje_data.c
+src/lib/edje/edje_load.c
+src/lib/edje/edje_util.c
+src/lib/edje/edje_misc.c
+src/lib/edje/edje_message_queue.c
+src/lib/edje/edje_entry.c
+src/lib/edje/edje_edit_eo.c
+src/lib/edje/edje_convert.c
+src/lib/edje/edje_callbacks.c
+src/lib/edje/edje_text.c
+src/lib/edje/edje_part_invalid.c
+src/lib/edje/edje_part_table.c
+src/lib/ecore_avahi/ecore_avahi.c
+src/lib/eolian/database_implement_api.c
+src/lib/eolian/database_var.c
+src/lib/eolian/database_expr_api.c
+src/lib/eolian/eolian_database.c
+src/lib/eolian/database_function_parameter_api.c
+src/lib/eolian/eo_parser.c
+src/lib/eolian/database_class.c
+src/lib/eolian/database_function_api.c
+src/lib/eolian/database_function.c
+src/lib/eolian/database_type_api.c
+src/lib/eolian/database_type.c
+src/lib/eolian/database_function_parameter.c
+src/lib/eolian/database_event_api.c
+src/lib/eolian/database_validate.c
+src/lib/eolian/eo_lexer.c
+src/lib/eolian/database_constructor_api.c
+src/lib/eolian/database_part_api.c
+src/lib/eolian/database_constructor.c
+src/lib/eolian/database_class_api.c
+src/lib/eolian/database_event.c
+src/lib/eolian/database_expr.c
+src/lib/eolian/database_var_api.c
+src/lib/eolian/eolian_aux.c
+src/lib/eolian/database_implement.c
+src/lib/eolian/eolian.c
+src/lib/eolian/database_check.c
+src/lib/eolian/database_part.c
+src/lib/ecore/efl_composite_model.c
+src/lib/ecore/efl_loop_consumer.c
+src/lib/ecore/efl_core_proc_env.c
+src/lib/ecore/efl_io_stdout.c
+src/lib/ecore/efl_loop_message_future.c
+src/lib/ecore/efl_loop.c
+src/lib/ecore/ecore_anim.c
+src/lib/ecore/efl_filter_model.c
+src/lib/ecore/efl_io_writer_fd.c
+src/lib/ecore/ecore_throttle.c
+src/lib/ecore/efl_boolean_model.c
+src/lib/ecore/ecore_idler.c
+src/lib/ecore/ecore_timer.c
+src/lib/ecore/efl_io_copier.c
+src/lib/ecore/efl_io_sizer_fd.c
+src/lib/ecore/ecore_thread.c
+src/lib/ecore/efl_loop_fd.c
+src/lib/ecore/efl_cubic_bezier_interpolator.c
+src/lib/ecore/efl_loop_handler.c
+src/lib/ecore/efl_divisor_interpolator.c
+src/lib/ecore/efl_decelerate_interpolator.c
+src/lib/ecore/ecore_app.c
+src/lib/ecore/efl_loop_timer_eo.legacy.c
+src/lib/ecore/efl_loop_message_future_handler.c
+src/lib/ecore/ecore_alloc.c
+src/lib/ecore/efl_loop_model.c
+src/lib/ecore/efl_loop_message.c
+src/lib/ecore/ecore_exe_posix.c
+src/lib/ecore/efl_thread.c
+src/lib/ecore/efl_spring_interpolator.c
+src/lib/ecore/ecore_poller.c
+src/lib/ecore/ecore_exe_win32.c
+src/lib/ecore/efl_app.c
+src/lib/ecore/efl_exe.c
+src/lib/ecore/ecore_signal.c
+src/lib/ecore/ecore_events.c
+src/lib/ecore/efl_io_positioner_fd.c
+src/lib/ecore/ecore.c
+src/lib/ecore/efl_bounce_interpolator.c
+src/lib/ecore/ecore_main.c
+src/lib/ecore/efl_generic_model.c
+src/lib/ecore/ecore_exe_eo.c
+src/lib/ecore/efl_threadio.c
+src/lib/ecore/efl_io_stderr.c
+src/lib/ecore/ecore_time.c
+src/lib/ecore/ecore_event_message_handler.c
+src/lib/ecore/efl_io_stdin.c
+src/lib/ecore/efl_io_closer_fd.c
+src/lib/ecore/ecore_getopt.c
+src/lib/ecore/efl_loop_message_handler.c
+src/lib/ecore/ecore_job.c
+src/lib/ecore/ecore_main_timechanges.c
+src/lib/ecore/ecore_idle_exiter.c
+src/lib/ecore/efl_io_buffered_stream.c
+src/lib/ecore/ecore_glib.c
+src/lib/ecore/efl_task.c
+src/lib/ecore/ecore_idle_enterer.c
+src/lib/ecore/efl_sinusoidal_interpolator.c
+src/lib/ecore/efl_core_env.c
+src/lib/ecore/efl_linear_interpolator.c
+src/lib/ecore/efl_accelerate_interpolator.c
+src/lib/ecore/efl_core_command_line.c
+src/lib/ecore/efl_io_reader_fd.c
+src/lib/ecore/ecore_event_message.c
+src/lib/ecore/efl_container_model.c
+src/lib/ecore/efl_io_file.c
+src/lib/ecore/ecore_pipe.c
+src/lib/ecore/efl_appthread.c
+src/lib/ecore/ecore_exe.c
+src/lib/eo/eo_class_class.c
+src/lib/eo/eo_ptr_indirection.c
+src/lib/eo/eo_add_fallback.c
+src/lib/eo/eo.c
+src/lib/eo/eo_base_class.c
+src/lib/eet/eet_connection.c
+src/lib/eet/eet_cipher.c
+src/lib/eet/eet_dictionary.c
+src/lib/eet/eet_lib.c
+src/lib/eet/eet_data.c
+src/lib/eet/eet_alloc.c
+src/lib/eet/eet_utils.c
+src/lib/eet/eet_image.c
+src/lib/eet/eet_node.c
+src/lib/efreet/efreet_cache.c
+src/lib/efreet/efreet_ini.c
+src/lib/efreet/efreet_utils.c
+src/lib/efreet/efreet_uri.c
+src/lib/efreet/efreet_mime.c
+src/lib/efreet/efreet_icon.c
+src/lib/efreet/efreet_menu.c
+src/lib/efreet/efreet_base.c
+src/lib/efreet/efreet_xml.c
+src/lib/efreet/efreet_trash.c
+src/lib/efreet/efreet.c
+src/lib/efreet/efreet_desktop_command.c
+src/lib/efreet/efreet_desktop.c
+src/lib/ecore_audio/ecore_audio_obj_out.c
+src/lib/ecore_audio/ecore_audio_obj.c
+src/lib/ecore_audio/ecore_audio_obj_out_wasapi.c
+src/lib/ecore_audio/ecore_audio_obj_in.c
+src/lib/ecore_audio/ecore_audio_obj_in_tone.c
+src/lib/ecore_audio/ecore_audio_custom.c
+src/lib/ecore_audio/ecore_audio_alsa.c
+src/lib/ecore_audio/ecore_audio_obj_out_pulse.c
+src/lib/ecore_audio/ecore_audio.c
+src/lib/ecore_audio/ecore_audio_sndfile_vio.c
+src/lib/ecore_audio/ecore_audio_obj_in_sndfile.c
+src/lib/ecore_audio/ecore_audio_obj_out_sndfile.c
+src/lib/ecore_audio/ecore_audio_pulse_ml.c
+src/lib/ecore_audio/ecore_audio_pulse.c
+src/lib/ecore_ipc/ecore_ipc.c
+src/lib/evas/cache/evas_cache_image.c
+src/lib/evas/cache/evas_cache_engine_image.c
+src/lib/evas/cache/evas_preload.c
+src/lib/evas/common/evas_image_save.c
+src/lib/evas/common/evas_convert_gry_1.c
+src/lib/evas/common/evas_op_blend/op_blend_color_neon.c
+src/lib/evas/common/evas_op_blend/op_blend_master_sse3.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_color_sse3.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_mask_i386.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_color_i386.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_.c
+src/lib/evas/common/evas_op_blend/op_blend_mask_color_.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_mask_sse3.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_sse3.c
+src/lib/evas/common/evas_op_blend/op_blend_color_sse3.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_mask_.c
+src/lib/evas/common/evas_op_blend/op_blend_color_i386.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_mask_neon.c
+src/lib/evas/common/evas_op_blend/op_blend_mask_color_i386.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_color_neon.c
+src/lib/evas/common/evas_op_blend/op_blend_mask_color_neon.c
+src/lib/evas/common/evas_op_blend/op_blend_color_.c
+src/lib/evas/common/evas_op_blend/op_blend_mask_color_sse3.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_i386.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_neon.c
+src/lib/evas/common/evas_op_blend/op_blend_pixel_color_.c
+src/lib/evas/common/evas_image_scalecache.c
+src/lib/evas/common/evas_op_mul/op_mul_pixel_color_.c
+src/lib/evas/common/evas_op_mul/op_mul_mask_color_.c
+src/lib/evas/common/evas_op_mul/op_mul_pixel_.c
+src/lib/evas/common/evas_op_mul/op_mul_color_.c
+src/lib/evas/common/evas_op_mul/op_mul_color_i386.c
+src/lib/evas/common/evas_op_mul/op_mul_pixel_i386.c
+src/lib/evas/common/evas_op_mul/op_mul_pixel_mask_.c
+src/lib/evas/common/evas_op_mul/op_mul_pixel_color_i386.c
+src/lib/evas/common/evas_op_mul/op_mul_pixel_mask_i386.c
+src/lib/evas/common/evas_op_mul/op_mul_mask_color_i386.c
+src/lib/evas/common/evas_font_draw.c
+src/lib/evas/common/evas_scale_smooth_scaler_downx.c
+src/lib/evas/common/evas_image_load.c
+src/lib/evas/common/evas_map_image.c
+src/lib/evas/common/evas_polygon_main.c
+src/lib/evas/common/evas_scale_smooth_scaler_down.c
+src/lib/evas/common/evas_op_sub_main_.c
+src/lib/evas/common/evas_op_mul_main_.c
+src/lib/evas/common/evas_op_add/op_add_pixel_mask_i386.c
+src/lib/evas/common/evas_op_add/op_add_pixel_.c
+src/lib/evas/common/evas_op_add/op_add_mask_color_i386.c
+src/lib/evas/common/evas_op_add/op_add_pixel_mask_.c
+src/lib/evas/common/evas_op_add/op_add_pixel_i386.c
+src/lib/evas/common/evas_op_add/op_add_color_.c
+src/lib/evas/common/evas_op_add/op_add_mask_color_.c
+src/lib/evas/common/evas_op_add/op_add_pixel_color_.c
+src/lib/evas/common/evas_op_add/op_add_pixel_color_i386.c
+src/lib/evas/common/evas_op_add/op_add_color_i386.c
+src/lib/evas/common/evas_map_image_internal.c
+src/lib/evas/common/evas_image_data.c
+src/lib/evas/common/evas_map_image_internal_high.c
+src/lib/evas/common/evas_map_image_core.c
+src/lib/evas/common/evas_scale_smooth_scaler_downx_downy.c
+src/lib/evas/common/evas_convert_colorspace.c
+src/lib/evas/common/evas_map_image_loop.c
+src/lib/evas/common/evas_scale_smooth_scaler.c
+src/lib/evas/common/evas_scale_smooth_scaler_noscale.c
+src/lib/evas/common/evas_scale_smooth.c
+src/lib/evas/common/evas_convert_rgb_8.c
+src/lib/evas/common/evas_rectangle_main.c
+src/lib/evas/common/evas_convert_rgb_16.c
+src/lib/evas/common/evas_blend_main.c
+src/lib/evas/common/evas_convert_color.c
+src/lib/evas/common/evas_font_query.c
+src/lib/evas/common/evas_scale_main.c
+src/lib/evas/common/evas_op_mask_main_.c
+src/lib/evas/common/evas_draw_main.c
+src/lib/evas/common/evas_op_add_main_.c
+src/lib/evas/common/evas_convert_main.c
+src/lib/evas/common/evas_op_copy_main_.c
+src/lib/evas/common/evas_font_compress_draw.c
+src/lib/evas/common/evas_op_blend_main_.c
+src/lib/evas/common/evas_common_generic_cache.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_color_neon.c
+src/lib/evas/common/evas_op_copy/op_copy_mask_color_.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_mask_i386.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_neon.c
+src/lib/evas/common/evas_op_copy/op_copy_color_i386.c
+src/lib/evas/common/evas_op_copy/op_copy_color_neon.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_i386.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_mask_neon.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_color_.c
+src/lib/evas/common/evas_op_copy/op_copy_mask_color_neon.c
+src/lib/evas/common/evas_op_copy/op_copy_color_.c
+src/lib/evas/common/evas_op_copy/op_copy_mask_color_i386.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_mask_.c
+src/lib/evas/common/evas_op_copy/op_copy_pixel_color_i386.c
+src/lib/evas/common/evas_convert_rgb_24.c
+src/lib/evas/common/evas_op_mask/op_mask_pixel_mask_i386.c
+src/lib/evas/common/evas_op_mask/op_mask_pixel_color_i386.c
+src/lib/evas/common/evas_op_mask/op_mask_pixel_mask_.c
+src/lib/evas/common/evas_op_mask/op_mask_mask_color_i386.c
+src/lib/evas/common/evas_op_mask/op_mask_mask_color_.c
+src/lib/evas/common/evas_op_mask/op_mask_pixel_.c
+src/lib/evas/common/evas_op_mask/op_mask_pixel_color_.c
+src/lib/evas/common/evas_op_mask/op_mask_pixel_i386.c
+src/lib/evas/common/evas_op_mask/op_mask_color_.c
+src/lib/evas/common/evas_op_mask/op_mask_color_i386.c
+src/lib/evas/common/evas_cpu.c
+src/lib/evas/common/evas_font_load.c
+src/lib/evas/common/evas_op_sub/op_sub_pixel_color_i386.c
+src/lib/evas/common/evas_op_sub/op_sub_pixel_i386.c
+src/lib/evas/common/evas_op_sub/op_sub_color_.c
+src/lib/evas/common/evas_op_sub/op_sub_mask_color_i386.c
+src/lib/evas/common/evas_op_sub/op_sub_pixel_mask_i386.c
+src/lib/evas/common/evas_op_sub/op_sub_pixel_color_.c
+src/lib/evas/common/evas_op_sub/op_sub_mask_color_.c
+src/lib/evas/common/evas_op_sub/op_sub_color_i386.c
+src/lib/evas/common/evas_op_sub/op_sub_pixel_mask_.c
+src/lib/evas/common/evas_op_sub/op_sub_pixel_.c
+src/lib/evas/common/evas_text_utils.c
+src/lib/evas/common/evas_font_compress.c
+src/lib/evas/common/region.c
+src/lib/evas/common/evas_scale_smooth_scaler_up.c
+src/lib/evas/common/evas_blit_main.c
+src/lib/evas/common/evas_thread_render.c
+src/lib/evas/common/evas_convert_gry_8.c
+src/lib/evas/common/evas_scale_sample.c
+src/lib/evas/common/language/evas_bidi_utils.c
+src/lib/evas/common/language/evas_language_utils.c
+src/lib/evas/common/evas_scale_span.c
+src/lib/evas/common/evas_image_main.c
+src/lib/evas/common/evas_scale_smooth_scaler_downy.c
+src/lib/evas/common/evas_convert_yuv.c
+src/lib/evas/common/evas_font_ot.c
+src/lib/evas/common/evas_font_main.c
+src/lib/evas/common/evas_convert_grypal_6.c
+src/lib/evas/common/evas_tiler.c
+src/lib/evas/common/evas_line_main.c
+src/lib/evas/common/evas_convert_rgb_32.c
+src/lib/evas/common/evas_pipe.c
+src/lib/evas/main.c
+src/lib/evas/canvas/evas_rectangle.c
+src/lib/evas/canvas/efl_canvas_surface_x11.c
+src/lib/evas/canvas/evas_filter_mixin.c
+src/lib/evas/canvas/evas_stats.c
+src/lib/evas/canvas/evas_key.c
+src/lib/evas/canvas/evas_table_eo.c
+src/lib/evas/canvas/evas_object_intercept.c
+src/lib/evas/canvas/efl_canvas_vg_gradient.c
+src/lib/evas/canvas/evas_grid_eo.c
+src/lib/evas/canvas/efl_canvas_rotate_animation.c
+src/lib/evas/canvas/evas_map.c
+src/lib/evas/canvas/efl_canvas_translate_animation.c
+src/lib/evas/canvas/efl_canvas_textblock_eo.legacy.c
+src/lib/evas/canvas/efl_canvas_object_eo.legacy.c
+src/lib/evas/canvas/efl_canvas_alpha_animation.c
+src/lib/evas/canvas/evas_object_table.c
+src/lib/evas/canvas/evas_out.c
+src/lib/evas/canvas/efl_canvas_vg_gradient_radial.c
+src/lib/evas/canvas/efl_canvas_event_grabber.c
+src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.c
+src/lib/evas/canvas/evas_object_text.c
+src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.c
+src/lib/evas/canvas/evas_object_inform.c
+src/lib/evas/canvas/efl_canvas_vg_object.c
+src/lib/evas/canvas/evas_object_image.c
+src/lib/evas/canvas/evas_image_eo.c
+src/lib/evas/canvas/evas_image_legacy.c
+src/lib/evas/canvas/efl_canvas_proxy.c
+src/lib/evas/canvas/evas_name.c
+src/lib/evas/canvas/efl_canvas_surface_wayland.c
+src/lib/evas/canvas/efl_canvas_group_eo.legacy.c
+src/lib/evas/canvas/efl_input_event.c
+src/lib/evas/canvas/evas_object_rectangle.c
+src/lib/evas/canvas/efl_gfx_vg_value_provider.c
+src/lib/evas/canvas/evas_object_main.c
+src/lib/evas/canvas/efl_text_formatter.c
+src/lib/evas/canvas/evas_callbacks.c
+src/lib/evas/canvas/evas_font_dir.c
+src/lib/evas/canvas/efl_canvas_vg_shape.c
+src/lib/evas/canvas/evas_grid_eo.legacy.c
+src/lib/evas/canvas/evas_line_eo.c
+src/lib/evas/canvas/evas_object_smart.c
+src/lib/evas/canvas/evas_render.c
+src/lib/evas/canvas/efl_canvas_object_animation.c
+src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.c
+src/lib/evas/canvas/evas_object_line.c
+src/lib/evas/canvas/evas_box_eo.legacy.c
+src/lib/evas/canvas/evas_clip.c
+src/lib/evas/canvas/evas_key_grab.c
+src/lib/evas/canvas/efl_canvas_animation.c
+src/lib/evas/canvas/evas_events.c
+src/lib/evas/canvas/efl_canvas_group_animation.c
+src/lib/evas/canvas/evas_object_textblock.c
+src/lib/evas/canvas/evas_device.c
+src/lib/evas/canvas/efl_input_hold.c
+src/lib/evas/canvas/efl_canvas_vg_image.c
+src/lib/evas/canvas/evas_events_legacy.c
+src/lib/evas/canvas/evas_data.c
+src/lib/evas/canvas/evas_text_eo.legacy.c
+src/lib/evas/canvas/efl_input_device.c
+src/lib/evas/canvas/efl_canvas_scale_animation.c
+src/lib/evas/canvas/efl_canvas_parallel_group_animation.c
+src/lib/evas/canvas/efl_input_key.c
+src/lib/evas/canvas/efl_canvas_vg_node.c
+src/lib/evas/canvas/efl_canvas_surface_tbm.c
+src/lib/evas/canvas/efl_gfx_mapping.c
+src/lib/evas/canvas/efl_input_focus.c
+src/lib/evas/canvas/evas_object_textgrid.c
+src/lib/evas/canvas/evas_canvas_eo.c
+src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.c
+src/lib/evas/canvas/evas_layer.c
+src/lib/evas/canvas/evas_box_eo.c
+src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.c
+src/lib/evas/canvas/evas_line_eo.legacy.c
+src/lib/evas/canvas/evas_focus.c
+src/lib/evas/canvas/evas_touch_point.c
+src/lib/evas/canvas/evas_gl.c
+src/lib/evas/canvas/evas_text_eo.c
+src/lib/evas/canvas/evas_main.c
+src/lib/evas/canvas/evas_object_box.c
+src/lib/evas/canvas/efl_input_pointer.c
+src/lib/evas/canvas/efl_canvas_surface.c
+src/lib/evas/canvas/evas_smart.c
+src/lib/evas/canvas/evas_table_eo.legacy.c
+src/lib/evas/canvas/evas_textgrid_eo.c
+src/lib/evas/canvas/efl_canvas_image.c
+src/lib/evas/canvas/efl_canvas_snapshot.c
+src/lib/evas/canvas/evas_object_polygon.c
+src/lib/evas/canvas/evas_textgrid_eo.legacy.c
+src/lib/evas/canvas/efl_text_cursor_object.c
+src/lib/evas/canvas/efl_canvas_vg_container.c
+src/lib/evas/canvas/evas_object_grid.c
+src/lib/evas/canvas/efl_canvas_vg_utils.c
+src/lib/evas/canvas/efl_canvas_vg_gradient_linear.c
+src/lib/evas/canvas/efl_canvas_sequential_group_animation.c
+src/lib/evas/canvas/evas_object_smart_clipped.c
+src/lib/evas/canvas/efl_input_clickable.c
+src/lib/evas/canvas/evas_canvas_eo.legacy.c
+src/lib/evas/canvas/evas_async_events.c
+src/lib/evas/vg/evas_vg_cache.c
+src/lib/evas/gesture/efl_canvas_gesture_triple_tap.c
+src/lib/evas/gesture/efl_canvas_gesture_long_press.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_momentum.c
+src/lib/evas/gesture/efl_canvas_gesture_double_tap.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_rotate.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_tap.c
+src/lib/evas/gesture/efl_canvas_gesture_flick.c
+src/lib/evas/gesture/efl_canvas_gesture_touch.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_zoom.c
+src/lib/evas/gesture/efl_canvas_gesture.c
+src/lib/evas/gesture/efl_canvas_gesture_momentum.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_custom.c
+src/lib/evas/gesture/efl_canvas_gesture_rotate.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_triple_tap.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_double_tap.c
+src/lib/evas/gesture/efl_canvas_gesture_custom.c
+src/lib/evas/gesture/efl_canvas_gesture_tap.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_flick.c
+src/lib/evas/gesture/efl_canvas_gesture_recognizer_long_press.c
+src/lib/evas/gesture/efl_canvas_gesture_manager.c
+src/lib/evas/gesture/efl_canvas_gesture_zoom.c
+src/lib/evas/filters/evas_filter_parser.c
+src/lib/evas/filters/evas_filter.c
+src/lib/evas/filters/evas_filter_utils.c
+src/lib/evas/file/evas_module.c
+src/lib/evas/file/evas_path.c
+src/lib/ecore_file/ecore_file_download.c
+src/lib/ecore_file/ecore_file_monitor_win32.c
+src/lib/ecore_file/ecore_file_path.c
+src/lib/ecore_file/ecore_file_monitor_inotify.c
+src/lib/ecore_file/ecore_file_monitor_poll.c
+src/lib/ecore_file/ecore_file_monitor.c
+src/lib/ecore_file/ecore_file.c
+src/lib/ecore_drm/ecore_drm_fb.c
+src/lib/ecore_drm/ecore_drm_tty.c
+src/lib/ecore_drm/ecore_drm_evdev.c
+src/lib/ecore_drm/ecore_drm_logind.c
+src/lib/ecore_drm/ecore_drm_device.c
+src/lib/ecore_drm/ecore_drm.c
+src/lib/ecore_drm/ecore_drm_dbus.c
+src/lib/ecore_drm/ecore_drm_sprites.c
+src/lib/ecore_drm/ecore_drm_output.c
+src/lib/ecore_drm/ecore_drm_launcher.c
+src/lib/ecore_drm/ecore_drm_inputs.c
+src/lib/emotion/efl_canvas_video_eo.legacy.c
+src/lib/emotion/emotion_webcam.c
+src/lib/emotion/emotion_main.c
+src/lib/emotion/emotion_smart.c
+src/lib/emotion/emotion_modules.c
+src/lib/elementary/efl_ui_radio_box.c
+src/lib/elementary/efl_ui_frame.c
+src/lib/elementary/elm_slideshow.c
+src/lib/elementary/elm_access.c
+src/lib/elementary/efl_ui_win.c
+src/lib/elementary/efl_ui_panes.c
+src/lib/elementary/elm_dayselector_item_eo.c
+src/lib/elementary/efl_ui_focus_manager_root_focus.c
+src/lib/elementary/elm_code_widget_text.c
+src/lib/elementary/elm_util.c
+src/lib/elementary/elm_code_widget_eo.legacy.c
+src/lib/elementary/elm_prefs.c
+src/lib/elementary/elm_calendar_item_eo.c
+src/lib/elementary/elm_view_form_eo.c
+src/lib/elementary/elm_fileselector_button_eo.c
+src/lib/elementary/elm_pan_eo.legacy.c
+src/lib/elementary/efl_ui_tab_pager.c
+src/lib/elementary/efl_ui_separator.c
+src/lib/elementary/elm_web_eo.legacy.c
+src/lib/elementary/efl_ui_view_model.c
+src/lib/elementary/elm_fileselector_eo.legacy.c
+src/lib/elementary/elm_main.c
+src/lib/elementary/elm_code_widget_legacy_eo.c
+src/lib/elementary/elm_grid_eo.legacy.c
+src/lib/elementary/elm_gesture_layer.c
+src/lib/elementary/elm_sys_notify_eo.legacy.c
+src/lib/elementary/elm_player_eo.c
 src/lib/elementary/elc_hoversel.c
 src/lib/elementary/elc_multibuttonentry.c
 src/lib/elementary/elc_naviframe.c
index 1d28253..5d3e3aa 100644 (file)
@@ -66,6 +66,8 @@ static const struct ext_loader_s loaders[] =
 
    MATCHING(".dds", "dds"),
 
+   MATCHING(".avif", "avif"),
+
    /* xcf - gefenric */
    MATCHING(".xcf", "generic"),
    MATCHING(".xcf.gz", "generic"),
@@ -163,7 +165,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", "generic"
+  "bmp", "tga", "wbmp", "ico", "psd", "jp2k", "dds", "avif", "generic"
 };
 
 struct evas_image_foreach_loader_data
index a1e8b62..b991186 100644 (file)
@@ -196,6 +196,7 @@ 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);
@@ -287,6 +288,9 @@ 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
index 9e68a69..100a6d2 100644 (file)
@@ -10,8 +10,10 @@ 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
new file mode 100644 (file)
index 0000000..88469dd
--- /dev/null
@@ -0,0 +1,290 @@
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include <avif/avif.h>
+
+#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
+