1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/*--------------------------------------------------------------------------
26eec4d1ea65df853450a6e158718981cba900bf6Shashank MittalCopyright (c) 2009, The Linux Foundation. All rights reserved.
3826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevRedistribution and use in source and binary forms, with or without
5826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevmodification, are permitted provided that the following conditions are met:
6826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    * Redistributions of source code must retain the above copyright
7826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      notice, this list of conditions and the following disclaimer.
8826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    * Redistributions in binary form must reproduce the above copyright
9826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      notice, this list of conditions and the following disclaimer in the
10826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      documentation and/or other materials provided with the distribution.
116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    * Neither the name of The Linux Foundation nor
12826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      the names of its contributors may be used to endorse or promote
13826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      products derived from this software without specific prior written
14826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      permission.
15826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
16826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevNON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev--------------------------------------------------------------------------*/
28826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/*============================================================================
29826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            O p e n M A X   w r a p p e r s
30826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             O p e n  M A X   C o r e
31826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
32826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OpenMAX Core Macros interface.
33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev============================================================================*/
35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev//////////////////////////////////////////////////////////////////////////////
37826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev//                             Include Files
38826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev//////////////////////////////////////////////////////////////////////////////
39826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifndef OMX_CORE_CMP_H
40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_CORE_CMP_H
41826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
42826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevextern "C" {
46826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif
47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevvoid * qc_omx_create_component_wrapper(OMX_PTR obj_ptr);
50826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
51826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
52826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
53826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_init(OMX_IN OMX_HANDLETYPE hComp, OMX_IN OMX_STRING componentName);
54826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
55826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
56826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
57826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_version(OMX_IN OMX_HANDLETYPE               hComp,
58826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             OMX_OUT OMX_STRING          componentName,
59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             OMX_OUT OMX_VERSIONTYPE* componentVersion,
60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             OMX_OUT OMX_VERSIONTYPE*      specVersion,
61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             OMX_OUT OMX_UUIDTYPE*       componentUUID);
62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
64826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_send_command(OMX_IN OMX_HANDLETYPE hComp,
65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                              OMX_IN OMX_COMMANDTYPE  cmd,
66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                              OMX_IN OMX_U32       param1,
67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                              OMX_IN OMX_PTR      cmdData);
68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_parameter(OMX_IN OMX_HANDLETYPE     hComp,
71826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN OMX_INDEXTYPE paramIndex,
72826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_INOUT OMX_PTR     paramData);
73826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
74826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
75826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_set_parameter(OMX_IN OMX_HANDLETYPE     hComp,
76826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN OMX_INDEXTYPE paramIndex,
77826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN OMX_PTR        paramData);
78826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
79826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
80826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_config(OMX_IN OMX_HANDLETYPE      hComp,
81826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev          OMX_IN OMX_INDEXTYPE configIndex,
82826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev          OMX_INOUT OMX_PTR     configData);
83826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
84826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
85826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_set_config(OMX_IN OMX_HANDLETYPE      hComp,
86826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            OMX_IN OMX_INDEXTYPE configIndex,
87826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            OMX_IN OMX_PTR        configData);
88826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
89826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
90826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
91826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                     OMX_IN OMX_STRING      paramName,
92826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                     OMX_OUT OMX_INDEXTYPE* indexType);
93826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
94826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
95826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_state(OMX_IN OMX_HANDLETYPE  hComp,
96826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                           OMX_OUT OMX_STATETYPE* state);
97826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
98826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
99826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_tunnel_request(OMX_IN OMX_HANDLETYPE                hComp,
100826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                OMX_IN OMX_U32                        port,
101826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                OMX_IN OMX_HANDLETYPE        peerComponent,
102826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                OMX_IN OMX_U32                    peerPort,
103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup);
104826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
105826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_use_buffer(OMX_IN OMX_HANDLETYPE                hComp,
107826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
108826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            OMX_IN OMX_U32                        port,
109826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            OMX_IN OMX_PTR                     appData,
110826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            OMX_IN OMX_U32                       bytes,
111826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                            OMX_IN OMX_U8*                      buffer);
112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
113826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
114826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev// qc_omx_component_allocate_buffer  -- API Call
115826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
116826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_allocate_buffer(OMX_IN OMX_HANDLETYPE                hComp,
117826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                 OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
118826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                 OMX_IN OMX_U32                        port,
119826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                 OMX_IN OMX_PTR                     appData,
120826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                 OMX_IN OMX_U32                       bytes);
121826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
122826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
123826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_free_buffer(OMX_IN OMX_HANDLETYPE         hComp,
124826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             OMX_IN OMX_U32                 port,
125826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             OMX_IN OMX_BUFFERHEADERTYPE* buffer);
126826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_empty_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                   OMX_IN OMX_BUFFERHEADERTYPE* buffer);
130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
131826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_fill_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
133826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                                  OMX_IN OMX_BUFFERHEADERTYPE* buffer);
134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_set_callbacks(OMX_IN OMX_HANDLETYPE        hComp,
137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN OMX_CALLBACKTYPE* callbacks,
138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN OMX_PTR             appData);
139826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
140826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
141826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_deinit(OMX_IN OMX_HANDLETYPE hComp);
142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
143826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_use_EGL_image(OMX_IN OMX_HANDLETYPE                hComp,
145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN OMX_U32                        port,
147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN OMX_PTR                     appData,
148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               OMX_IN void*                      eglImage);
149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE
151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_role_enum(OMX_IN OMX_HANDLETYPE hComp,
152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                           OMX_OUT OMX_U8*        role,
153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                           OMX_IN OMX_U32        index);
154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}
157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif
158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif
160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
161