int *max_w, int *max_h, int *preferred_align);
/**
+ * @brief Get the pp vertical preferred align of a display object.
+ * @details -1 means that a TDM backend module doesn't define the value.
+ * @param[in] dpy A display object
+ * @param[out] preferred_align_vertical The preferred align height which TDM can handle
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_display_get_pp_preferred_align_vertical(tdm_display *dpy, int *preferred_align_vertical);
+
+
+/**
* @brief Get the capture capabilities of a display object.
* @param[in] dpy A display object
* @param[out] capabilities The capture capabilities
}
EXTERN tdm_error
+tdm_display_get_pp_preferred_align_vertical(tdm_display *dpy, int *preferred_align_vertical)
+{
+ tdm_private_module *pp_module;
+
+ DISPLAY_FUNC_ENTRY();
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ if (!private_display->pp_module) {
+ /* LCOV_EXCL_START */
+ TDM_ERR("no pp capability");
+ _pthread_mutex_unlock(&private_display->lock);
+ return TDM_ERROR_NO_CAPABILITY;
+ /* LCOV_EXCL_STOP */
+ }
+
+ pp_module = private_display->pp_module;
+
+ if (preferred_align_vertical)
+ *preferred_align_vertical = TDM_FRONT_VALUE(pp_module->caps_pp.preferred_align_vertical);
+
+ _pthread_mutex_unlock(&private_display->lock);
+
+ return ret;
+}
+
+EXTERN tdm_error
tdm_display_get_capture_capabilities(tdm_display *dpy,
tdm_capture_capability *capabilities)
{