111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/*--------------------------------------------------------------------------
211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelCopyright (c) 2009, The Linux Foundation. All rights reserved.
311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelRedistribution and use in source and binary forms, with or without
511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelmodification, are permitted provided that the following conditions are met:
611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel    * Redistributions of source code must retain the above copyright
711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel      notice, this list of conditions and the following disclaimer.
811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel    * Redistributions in binary form must reproduce the above copyright
911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel      notice, this list of conditions and the following disclaimer in the
1011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel      documentation and/or other materials provided with the distribution.
1111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel    * Neither the name of The Linux Foundation nor
1211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel      the names of its contributors may be used to endorse or promote
1311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel      products derived from this software without specific prior written
1411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel      permission.
1511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
1611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelNON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
2011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
2311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
2411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
2511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
2611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel--------------------------------------------------------------------------*/
2811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/*============================================================================
2911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            O p e n M A X   w r a p p e r s
3011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                             O p e n  M A X   C o r e
3111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
3211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OpenMAX Core Macros interface.
3311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
3411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel============================================================================*/
3511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
3611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel//////////////////////////////////////////////////////////////////////////////
3711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel//                             Include Files
3811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel//////////////////////////////////////////////////////////////////////////////
3911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifndef OMX_CORE_CMP_H
4011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_CORE_CMP_H
4111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
4211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
4311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
4411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifdef __cplusplus
4511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelextern "C" {
4611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif
4711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
4811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
4911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelvoid * qc_omx_create_component_wrapper(OMX_PTR obj_ptr);
5011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
5111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
5211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
5311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_init(OMX_IN OMX_HANDLETYPE hComp, OMX_IN OMX_STRING componentName);
5411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
5511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
5611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
5711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_version(OMX_IN OMX_HANDLETYPE               hComp,
5811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                             OMX_OUT OMX_STRING          componentName,
5911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                             OMX_OUT OMX_VERSIONTYPE* componentVersion,
6011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                             OMX_OUT OMX_VERSIONTYPE*      specVersion,
6111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                             OMX_OUT OMX_UUIDTYPE*       componentUUID);
6211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
6311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
6411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_send_command(OMX_IN OMX_HANDLETYPE hComp,
6511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                              OMX_IN OMX_COMMANDTYPE  cmd,
6611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                              OMX_IN OMX_U32       param1,
6711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                              OMX_IN OMX_PTR      cmdData);
6811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
6911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
7011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_parameter(OMX_IN OMX_HANDLETYPE     hComp,
7111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN OMX_INDEXTYPE paramIndex,
7211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_INOUT OMX_PTR     paramData);
7311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
7411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
7511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_set_parameter(OMX_IN OMX_HANDLETYPE     hComp,
7611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN OMX_INDEXTYPE paramIndex,
7711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN OMX_PTR        paramData);
7811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
7911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
8011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_config(OMX_IN OMX_HANDLETYPE      hComp,
8111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel          OMX_IN OMX_INDEXTYPE configIndex,
8211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel          OMX_INOUT OMX_PTR     configData);
8311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
8411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
8511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_set_config(OMX_IN OMX_HANDLETYPE      hComp,
8611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            OMX_IN OMX_INDEXTYPE configIndex,
8711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            OMX_IN OMX_PTR        configData);
8811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
8911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
9011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
9111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                     OMX_IN OMX_STRING      paramName,
9211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                     OMX_OUT OMX_INDEXTYPE* indexType);
9311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
9411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
9511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_state(OMX_IN OMX_HANDLETYPE  hComp,
9611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                           OMX_OUT OMX_STATETYPE* state);
9711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
9811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
9911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_tunnel_request(OMX_IN OMX_HANDLETYPE                hComp,
10011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                OMX_IN OMX_U32                        port,
10111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                OMX_IN OMX_HANDLETYPE        peerComponent,
10211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                OMX_IN OMX_U32                    peerPort,
10311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup);
10411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
10511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
10611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_use_buffer(OMX_IN OMX_HANDLETYPE                hComp,
10711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
10811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            OMX_IN OMX_U32                        port,
10911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            OMX_IN OMX_PTR                     appData,
11011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            OMX_IN OMX_U32                       bytes,
11111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                            OMX_IN OMX_U8*                      buffer);
11211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
11311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
11411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel// qc_omx_component_allocate_buffer  -- API Call
11511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
11611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_allocate_buffer(OMX_IN OMX_HANDLETYPE                hComp,
11711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                 OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
11811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                 OMX_IN OMX_U32                        port,
11911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                 OMX_IN OMX_PTR                     appData,
12011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                 OMX_IN OMX_U32                       bytes);
12111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
12211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
12311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_free_buffer(OMX_IN OMX_HANDLETYPE         hComp,
12411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                             OMX_IN OMX_U32                 port,
12511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                             OMX_IN OMX_BUFFERHEADERTYPE* buffer);
12611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
12711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
12811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_empty_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
12911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                   OMX_IN OMX_BUFFERHEADERTYPE* buffer);
13011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
13111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
13211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_fill_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
13311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                                  OMX_IN OMX_BUFFERHEADERTYPE* buffer);
13411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
13511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
13611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_set_callbacks(OMX_IN OMX_HANDLETYPE        hComp,
13711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN OMX_CALLBACKTYPE* callbacks,
13811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN OMX_PTR             appData);
13911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
14011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
14111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_deinit(OMX_IN OMX_HANDLETYPE hComp);
14211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
14311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
14411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_use_EGL_image(OMX_IN OMX_HANDLETYPE                hComp,
14511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
14611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN OMX_U32                        port,
14711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN OMX_PTR                     appData,
14811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                               OMX_IN void*                      eglImage);
14911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
15011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE
15111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_role_enum(OMX_IN OMX_HANDLETYPE hComp,
15211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                           OMX_OUT OMX_U8*        role,
15311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel                           OMX_IN OMX_U32        index);
15411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
15511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifdef __cplusplus
15611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}
15711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif
15811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
15911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif
16011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel
161