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 This module contains the definitions of the OpenMAX core.
33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev*//*========================================================================*/
35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifndef QC_OMX_CORE_H
37826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define QC_OMX_CORE_H
38826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
39826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include "qc_omx_common.h"        // OMX API
40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <string.h>
41826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_COMP_MAX_INST 16
43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct _omx_core_cb_type
45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
46826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  char*                         name;// Component name
47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  create_qc_omx_component     fn_ptr;// create instance fn ptr
48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  void*                         inst[OMX_COMP_MAX_INST];// Instance handle
49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  void*                so_lib_handle;// So Library handle
50826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  char*                  so_lib_name;// so directory
51826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  char* roles[OMX_CORE_MAX_CMP_ROLES];// roles played
52826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}omx_core_cb_type;
53826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
54826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct
55826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
56826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 width;
57826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 height;
58826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 profile;
59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 level;
60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} VideoOMXConfigParserOutputs;
61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct
64826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U8* inPtr;             //pointer to codec configuration header
66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 inBytes;           //length of codec configuration header
67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_STRING cComponentRole; //OMX component codec type
68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_STRING cComponentName;  //OMX component name
69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMXConfigParserInputs;
70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
71826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif
72826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
73