- func_display = &private_module->func_display;
- func_voutput = &private_module->func_voutput;
- current_module = private_display->current_module;
- private_display->current_module = private_module;
-
- voutput_backend = func_display->voutput_create(private_module->bdata, name, &ret);
-
- if (voutput_backend == NULL || ret != TDM_ERROR_NONE) {
- TDM_ERR("voutput_create fail");
- free(private_voutput);
- if (error) *error = ret;
- private_display->current_module = current_module;
- _pthread_mutex_unlock(&private_display->lock);
- return NULL;
- }
- private_voutput->voutput_backend = voutput_backend;
- private_voutput->private_display = private_display;
- private_voutput->private_module = private_module;
- LIST_INITHEAD(&private_voutput->voutput_commit_handler_list);
-
- output_backend = func_voutput->voutput_get_output(voutput_backend, &ret);
- if (output_backend == NULL || ret != TDM_ERROR_NONE) {
- TDM_ERR("voutput_get_output fail");
- free(private_voutput);
- if (error) *error = ret;
- if (func_voutput->voutput_destroy)
- func_voutput->voutput_destroy(voutput_backend);
- else
- TDM_ERR("no destroy function");
- private_display->current_module = current_module;