From: Boram Park Date: Wed, 23 Nov 2016 04:16:44 +0000 (+0900) Subject: check capture capability X-Git-Tag: accepted/tizen/3.0.m2/mobile/20170104.142956~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F26%2F99926%2F2;hp=ea1924cbdffc6ba69cf537c97a1e78334512db80;p=platform%2Fcore%2Fuifw%2Flibtdm.git check capture capability Change-Id: If3db8bd96f960ddf5ddd8d22f9e9a8ea20ecdc58 --- diff --git a/src/tdm.c b/src/tdm.c index 4918a22..5d2714c 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -726,8 +726,10 @@ _tdm_display_check_backend_functions(tdm_private_display *private_display) 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); diff --git a/src/tdm_capture.c b/src/tdm_capture.c index da1a0e5..798f738 100644 --- a/src/tdm_capture.c +++ b/src/tdm_capture.c @@ -164,6 +164,13 @@ tdm_capture_create_output_internal(tdm_private_output *private_output, 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) { @@ -235,6 +242,13 @@ tdm_capture_create_layer_internal(tdm_private_layer *private_layer, 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)