libcsc: Add more csc methods from the hardkernel BSP
authorChristopher N. Hesse <raymanfx@gmail.com>
Fri, 25 Nov 2016 23:20:04 +0000 (00:20 +0100)
committerChristopher N. Hesse <raymanfx@gmail.com>
Tue, 29 Nov 2016 22:55:20 +0000 (14:55 -0800)
Change-Id: I4ae5b1c713212b276aa53f0fbf9711a2842a9194

libcsc/csc.c
libcsc/csc.h

index 832ce36dd3e776b29ffd88acafaf14aa48b3123f..076d4557eaa55919f8559513b66411e58df89065 100644 (file)
@@ -862,3 +862,34 @@ CSC_ERRORCODE csc_convert(
 
     return ret;
 }
+
+CSC_ERRORCODE csc_convert_with_rotation(
+    void *handle, int rotation, int flip_horizontal, int flip_vertical)
+{
+    CSC_HANDLE *csc_handle = (CSC_HANDLE *)handle;
+    CSC_ERRORCODE ret = CSC_ErrorNone;
+
+    if (csc_handle == NULL)
+        return CSC_ErrorNotInit;
+
+    if ((csc_handle->csc_method == CSC_METHOD_HW) &&
+        (csc_handle->csc_hw_handle == NULL))
+        csc_init_hw(handle);
+
+    csc_set_format(csc_handle);
+    csc_set_buffer(csc_handle);
+
+    exynos_gsc_set_rotation(csc_handle->csc_hw_handle, rotation, flip_horizontal, flip_vertical);
+
+    if (csc_handle->csc_method == CSC_METHOD_HW)
+        ret = conv_hw(csc_handle);
+    else
+        ret = conv_sw(csc_handle);
+
+    return ret;
+}
+
+CSC_ERRORCODE csc_set_filter_property(void *handle)
+{
+    return CSC_ErrorNone;
+}
index 9372610ade8713cce54cf7931f711eb47d846c4c..a785f8ece027bdcaed259178158c106f8d26dc3b 100644 (file)
@@ -426,6 +426,11 @@ CSC_ERRORCODE csc_set_dst_buffer(
 CSC_ERRORCODE csc_convert(
     void *handle);
 
+CSC_ERRORCODE csc_convert_with_rotation(
+    void *handle, int rotation, int flip_horizontal, int flip_vertical);
+
+CSC_ERRORCODE csc_set_filter_property(void *handle);
+
 #ifdef __cplusplus
 }
 #endif