Top | ![]() |
![]() |
![]() |
![]() |
|
(*UfoTaskProcessFunc) () |
|
(*UfoTaskGenerateFunc) () |
|
ufo_task_setup () |
|
ufo_task_get_num_inputs () |
|
ufo_task_get_num_dimensions () |
UfoTaskMode | ufo_task_get_mode () |
|
ufo_task_get_requisition () |
|
ufo_task_set_json_object_property () |
|
ufo_task_process () |
|
ufo_task_generate () |
|
ufo_task_inputs_stopped_callback () |
|
ufo_task_uses_gpu () |
|
ufo_task_uses_cpu () |
|
ufo_task_error_quark () |
Interface that defines the behaviour of all tasks. Each scheduler uses the
same policy to run a task: First, ufo_task_setup()
, ufo_task_get_num_inputs()
and ufo_task_get_num_dimensions()
is called for each tasks. Then in each
iteration the task is asked about its size requirements using
ufo_task_get_requisition()
and then executed using ufo_task_process()
and/or
ufo_task_generate()
.
gboolean (*UfoTaskProcessFunc) (UfoTask *task
,UfoBuffer **inputs
,UfoBuffer *output
,UfoRequisition *requisition
);
gboolean (*UfoTaskGenerateFunc) (UfoTask *task
,UfoBuffer *output
,UfoRequisition *requisition
);
void ufo_task_get_requisition (UfoTask *task
,UfoBuffer **inputs
,UfoRequisition *requisition
,);
GError **error
void ufo_task_set_json_object_property (UfoTask *task
,const
,gchar *prop_name);
JsonObject *object
gboolean ufo_task_process (UfoTask *task
,UfoBuffer **inputs
,UfoBuffer *output
,UfoRequisition *requisition
);
gboolean ufo_task_generate (UfoTask *task
,UfoBuffer *output
,UfoRequisition *requisition
);
Task modes describe how a task operates considering the input data.
invalid |
||
one-by-one processing |
||
do not receive any data but produce a stream. |
||
receive fininite stream and generate a reduced stream |
||
receives data but does not produce any, |
||
runs on CPU |
||
runs on GPU |
||
sibling tasks share the same input data |
||
mask to get type from UfoTaskMode |
||
mask to get processor from UfoTaskMode |
“generated”
signalvoid user_function (UfoTask *ufotask,gpointer user_data)
Flags:
“inputs-stopped”
signalvoid user_function (UfoTask *ufotask,gpointer user_data)
Flags:
“processed”
signalvoid user_function (UfoTask *ufotask,gpointer user_data)
Flags: