1/*
2 *
3 * Copyright 2012 Samsung Electronics S.LSI Co. LTD
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#define LOG_TAG "libcsc_helper"
19#include <cutils/log.h>
20
21#include <system/graphics.h>
22
23#include "Exynos_OMX_Def.h"
24
25#include "csc.h"
26#include "exynos_format.h"
27
28OMX_COLOR_FORMATTYPE hal_2_omx_pixel_format(
29    unsigned int hal_format)
30{
31    OMX_COLOR_FORMATTYPE omx_format;
32    switch (hal_format) {
33    case HAL_PIXEL_FORMAT_YCbCr_422_I:
34        omx_format = OMX_COLOR_FormatYCbYCr;
35        break;
36    case HAL_PIXEL_FORMAT_YCbCr_420_P:
37        omx_format = OMX_COLOR_FormatYUV420Planar;
38        break;
39    case HAL_PIXEL_FORMAT_YCbCr_420_SP:
40        omx_format = OMX_COLOR_FormatYUV420SemiPlanar;
41        break;
42    case HAL_PIXEL_FORMAT_CUSTOM_YCbCr_420_SP_TILED:
43        omx_format = OMX_SEC_COLOR_FormatNV12TPhysicalAddress;
44        break;
45    case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED:
46        omx_format = OMX_SEC_COLOR_FormatNV12Tiled;
47        break;
48    case HAL_PIXEL_FORMAT_ARGB888:
49        omx_format = OMX_COLOR_Format32bitARGB8888;
50        break;
51    default:
52        omx_format = OMX_COLOR_FormatYUV420Planar;
53        break;
54    }
55    return omx_format;
56}
57
58unsigned int omx_2_hal_pixel_format(
59    OMX_COLOR_FORMATTYPE omx_format)
60{
61    unsigned int hal_format;
62    switch (omx_format) {
63    case OMX_COLOR_FormatYCbYCr:
64        hal_format = HAL_PIXEL_FORMAT_YCbCr_422_I;
65        break;
66    case OMX_COLOR_FormatYUV420Planar:
67        hal_format = HAL_PIXEL_FORMAT_YCbCr_420_P;
68        break;
69    case OMX_COLOR_FormatYUV420SemiPlanar:
70        hal_format = HAL_PIXEL_FORMAT_YCbCr_420_SP;
71        break;
72    case OMX_SEC_COLOR_FormatNV12TPhysicalAddress:
73        hal_format = HAL_PIXEL_FORMAT_CUSTOM_YCbCr_420_SP_TILED;
74        break;
75    case OMX_SEC_COLOR_FormatNV12Tiled:
76        hal_format = HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED;
77        break;
78    case OMX_COLOR_Format32bitARGB8888:
79        hal_format = HAL_PIXEL_FORMAT_ARGB888;
80        break;
81    default:
82        hal_format = HAL_PIXEL_FORMAT_YCbCr_420_P;
83        break;
84    }
85    return hal_format;
86}
87