if (private_display->capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE) {
tdm_func_capture *func_capture = &private_display->func_capture;
TDM_RETURN_VAL_IF_FAIL(func_display->display_get_capture_capability, TDM_ERROR_BAD_MODULE);
- TDM_RETURN_VAL_IF_FAIL(func_output->output_create_capture, TDM_ERROR_BAD_MODULE);
- TDM_RETURN_VAL_IF_FAIL(func_layer->layer_create_capture, TDM_ERROR_BAD_MODULE);
+ if (private_display->caps_capture.capabilities & TDM_CAPTURE_CAPABILITY_OUTPUT)
+ TDM_RETURN_VAL_IF_FAIL(func_output->output_create_capture, TDM_ERROR_BAD_MODULE);
+ if (private_display->caps_capture.capabilities & TDM_CAPTURE_CAPABILITY_LAYER)
+ TDM_RETURN_VAL_IF_FAIL(func_layer->layer_create_capture, TDM_ERROR_BAD_MODULE);
TDM_RETURN_VAL_IF_FAIL(func_capture->capture_destroy, TDM_ERROR_BAD_MODULE);
TDM_RETURN_VAL_IF_FAIL(func_capture->capture_commit, TDM_ERROR_BAD_MODULE);
TDM_RETURN_VAL_IF_FAIL(func_capture->capture_set_done_handler, TDM_ERROR_BAD_MODULE);
return NULL;
}
+ if (!(private_display->caps_capture.capabilities & TDM_CAPTURE_CAPABILITY_OUTPUT)) {
+ TDM_ERR("no output capture capability");
+ if (error)
+ *error = TDM_ERROR_NO_CAPABILITY;
+ return NULL;
+ }
+
capture_backend = func_output->output_create_capture(
private_output->output_backend, &ret);
if (ret != TDM_ERROR_NONE) {
return NULL;
}
+ if (!(private_display->caps_capture.capabilities & TDM_CAPTURE_CAPABILITY_LAYER)) {
+ TDM_ERR("no layer capture capability");
+ if (error)
+ *error = TDM_ERROR_NO_CAPABILITY;
+ return NULL;
+ }
+
capture_backend = func_layer->layer_create_capture(private_layer->layer_backend,
&ret);
if (ret != TDM_ERROR_NONE)