From: Changyeon Lee Date: Thu, 19 Jul 2018 11:35:05 +0000 (+0900) Subject: added tdm_hwc_get_video_capability X-Git-Tag: accepted/tizen/unified/20180813.061409~6 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Flibtdm.git;a=commitdiff_plain;h=d83a8cb9702ec0084ffcaaefe561a7c20f030d15 added tdm_hwc_get_video_capability Change-Id: I0bfff03716453a5e1b2b903bb55628e831c865dc --- diff --git a/include/tdm.h b/include/tdm.h index 1568ea1..acd3a45 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -836,6 +836,15 @@ tdm_hwc_get_video_supported_formats(tdm_hwc *hwc, const tbm_format **formats, int *count); /** + * @brief Get the hwc video capability + * @param[in] hwc A hwc object + * @param[out] video_capability A hwc video capability + * @return #TDM_ERROR_NONE if success. Otherwise, error value. + */ +tdm_error +tdm_hwc_get_video_capability(tdm_hwc *hwc, tdm_hwc_video_capability *video_capability); + +/** * @brief Get the available property array of a hwc object. * @param[in] hwc A hwc * @param[out] props The available property array diff --git a/include/tdm_backend.h b/include/tdm_backend.h index 4949d1e..d614fff 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -702,7 +702,14 @@ typedef struct _tdm_func_hwc { */ tdm_error (*hwc_get_video_supported_formats)(tdm_hwc *hwc, const tbm_format **formats, int *count); - + /** + * @brief Get the hwc video capability + * @param[in] hwc A hwc object + * @param[out] video_capability A hwc hwc video capability + * @return #TDM_ERROR_NONE if success. Otherwise, error value. + */ + tdm_error (*hwc_get_video_capability)(tdm_hwc *hwc, + tdm_hwc_video_capability *video_capability); /** * @brief Get the available property array of a hwc object. diff --git a/include/tdm_common.h b/include/tdm_common.h index 328f837..9492394 100644 --- a/include/tdm_common.h +++ b/include/tdm_common.h @@ -258,6 +258,16 @@ typedef enum { TDM_OUTPUT_MODE_FLAG_CLKDIV2 = (1 << 13), } tdm_output_mode_flag; +/* + * @brief The hwc video capability enumeration + * @since 2.0.0 + */ +typedef enum { + TDM_HWC_VIDEO_CAPABILITY_SCALE = (1 << 1), /**< if a hwc video has scale capability */ + TDM_HWC_VIDEO_CAPABILITY_TRANSFORM = (1 << 2), /**< if a hwc video has transform capability */ + TDM_HWC_VIDEO_CAPABILITY_SCANOUT = (1 << 3), /**< if a video allows a scanout buffer only */ +} tdm_hwc_video_capability; + /** * @brief The size structure */ diff --git a/src/tdm_hwc.c b/src/tdm_hwc.c index b4df1c0..49d4ca9 100644 --- a/src/tdm_hwc.c +++ b/src/tdm_hwc.c @@ -209,6 +209,34 @@ tdm_hwc_get_video_supported_formats(tdm_hwc *hwc, const tbm_format **formats, in } EXTERN tdm_error +tdm_hwc_get_video_capability(tdm_hwc *hwc, + tdm_hwc_video_capability *video_capability) +{ + tdm_private_module *private_module; + tdm_func_hwc *func_hwc; + + HWC_FUNC_ENTRY(); + + _pthread_mutex_lock(&private_display->lock); + + private_module = private_output->private_module; + func_hwc = &private_module->func_hwc; + + if (!func_hwc->hwc_get_video_capability) { + _pthread_mutex_unlock(&private_display->lock); + TDM_WRN("not implemented!!"); + return TDM_ERROR_NOT_IMPLEMENTED; + } + + ret = func_hwc->hwc_get_video_capability(private_hwc->hwc_backend, + video_capability); + + _pthread_mutex_unlock(&private_display->lock); + + return ret; +} + +EXTERN tdm_error tdm_hwc_get_available_properties(tdm_hwc *hwc, const tdm_prop **props, int *count) { tdm_private_module *private_module;