1c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan/*
2e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *
4c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * Redistribution and use in source and binary forms, with or without
5c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * modification, are permitted provided that the following conditions are
6c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * met:
7c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *     * Redistributions of source code must retain the above copyright
8c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *       notice, this list of conditions and the following disclaimer.
9c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *     * Redistributions in binary form must reproduce the above
10c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *       copyright notice, this list of conditions and the following
11c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *       disclaimer in the documentation and/or other materials provided
12c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *       with the distribution.
13c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *     * Neither the name of The Linux Foundation nor the names of its
14c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *       contributors may be used to endorse or promote products derived
15c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *       from this software without specific prior written permission.
16c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan *
17c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan */
29c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
30c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan#ifndef _QDMETADATA_H
31c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan#define _QDMETADATA_H
32c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
33e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah#define MAX_IGC_LUT_ENTRIES 256
34c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
35e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shahstruct HSICData_t {
36c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    int32_t hue;
37c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    float   saturation;
38c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    int32_t intensity;
39c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    float   contrast;
40e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah};
41c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
42e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shahstruct Sharp2Data_t {
43e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    int32_t strength;
44e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    uint32_t edge_thr;
45e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    uint32_t smooth_thr;
46e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    uint32_t noise_thr;
47e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah};
48e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah
49e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shahstruct IGCData_t{
50e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    uint16_t c0[MAX_IGC_LUT_ENTRIES];
51e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    uint16_t c1[MAX_IGC_LUT_ENTRIES];
52e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    uint16_t c2[MAX_IGC_LUT_ENTRIES];
53e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah};
54e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah
5532cafd22d940da88d6173248e9790c9424b2a65bNaseer Ahmedstruct BufferDim_t {
5632cafd22d940da88d6173248e9790c9424b2a65bNaseer Ahmed    int32_t sliceWidth;
5732cafd22d940da88d6173248e9790c9424b2a65bNaseer Ahmed    int32_t sliceHeight;
5832cafd22d940da88d6173248e9790c9424b2a65bNaseer Ahmed};
5932cafd22d940da88d6173248e9790c9424b2a65bNaseer Ahmed
60e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shahstruct MetaData_t {
61c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    int32_t operation;
62c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    int32_t interlaced;
6332cafd22d940da88d6173248e9790c9424b2a65bNaseer Ahmed    BufferDim_t bufferDim;
64c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    HSICData_t hsicData;
65c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    int32_t sharpness;
66c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    int32_t video_interface;
67e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    IGCData_t igcData;
68e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    Sharp2Data_t Sharp2Data;
69e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah};
70c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
71c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnantypedef enum {
72c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    PP_PARAM_HSIC       = 0x0001,
73c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    PP_PARAM_SHARPNESS  = 0x0002,
74c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan    PP_PARAM_INTERLACED = 0x0004,
75e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    PP_PARAM_VID_INTFC  = 0x0008,
76e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    PP_PARAM_IGC        = 0x0010,
77e2b94da0a7de2a5cad9ecb90ed3eee5dca219863Saurabh Shah    PP_PARAM_SHARP2     = 0x0020,
7832cafd22d940da88d6173248e9790c9424b2a65bNaseer Ahmed    UPDATE_BUFFER_GEOMETRY = 0x0080,
79c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan} DispParamType;
80c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
81c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnanint setMetaData(private_handle_t *handle, DispParamType paramType, void *param);
82c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
83c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan#endif /* _QDMETADATA_H */
84c0945d8a389f71cdf8432947a6911838d1219c4bRamkumar Radhakrishnan
85