1fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 2fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* 3fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Copyright (C) Texas Instruments - http://www.ti.com/ 4fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 5fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This library is free software; you can redistribute it and/or 6fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * modify it under the terms of the GNU Lesser General Public 7fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * License as published by the Free Software Foundation; either 8fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * version 2.1 of the License, or (at your option) any later version. 9fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 10fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 11fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This library is distributed in the hope that it will be useful, 12fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * but WITHOUT ANY WARRANTY; without even the implied warranty of 13fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Lesser General Public License for more details. 15fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 16fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 17fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * You should have received a copy of the GNU Lesser General Public 18fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * License along with this library; if not, write to the Free Software 19fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 21fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* ==================================================================== 22fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Texas Instruments OMAP(TM) Platform Software 23fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. 24fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* 25fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* Use of this software is controlled by the terms and conditions found 26fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* in the license agreement under which this software has been supplied. 27fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin* ==================================================================== */ 28fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 29fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** LCML_codecinterface.h 30fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * The LCML header file contains the interface used by 31fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * and the component to access common items. 32fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef __LCML_CODECINTERFACE_H__ 35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define __LCML_CODECINTERFACE_H__ 36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Core.h> 38b65f253fdc60f6208a54911bee793d225f23cdf8James Dong#include <OMX_TI_Debug.h> 39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Commands to send messages to codec 41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum 43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecControlSendDspMessage, 45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecControlPause, 46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecControlStart, 47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin MMCodecControlStop, 48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecControlDestroy, 49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecControlAlgCtrl, 50fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecControlStrmCtrl, 51fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecControlUsnEos 52fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}TControlCmd; 53fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 54fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Type fo buffer ENUM 57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum 59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin /*EMMCodecInputBuffer, 61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecOuputBuffer, 62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecScratchBuffer*/ 63b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin EMMCodecInputBufferMapBufLen = 1000, 64b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin EMMCodecOutputBufferMapBufLen = 1001, 65b65f253fdc60f6208a54911bee793d225f23cdf8James Dong EMMCodecInputBufferMapReuse = 1002, 66b65f253fdc60f6208a54911bee793d225f23cdf8James Dong EMMCodecOutputBufferMapReuse = 1003, 67fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecInputBuffer = 2000, 68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream0 = 2000, 69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecOuputBuffer = 2001, 70fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream1 = 2001, 71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream2, 72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream3, 73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream4, 74fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream5, 75fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream6, 76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream7, 77fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream8, 78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream9, 79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream10, 80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream11, 81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream12, 82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream13, 83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream14, 84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream15, 85fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream16, 86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream17, 87fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream18, 88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream19, 89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin EMMCodecStream20 90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}TMMCodecBufferType; 91fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Generic interface provided to write and codec needs to implement all 95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * function present to use this structure 96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct LCML_CODEC_INTERFACE 98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{ 99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_ERRORTYPE (*InitMMCodec)(OMX_HANDLETYPE hComponent, 100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_STRING codecName, 101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void *toCodecInitParams, 102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void *fromCodecInfoStruct, 103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin LCML_CALLBACKTYPE *pCallbacks); 104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_ERRORTYPE (*InitMMCodecEx)(OMX_HANDLETYPE hComponent, 106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_STRING codecName, 107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void *toCodecInitParams, 108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void *fromCodecInfoStruct, 109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin LCML_CALLBACKTYPE *pCallbacks, 110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_STRING Args); 111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_ERRORTYPE (*WaitForEvent)(OMX_HANDLETYPE hComponent, 113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin TUsnCodecEvent event, 114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void *args[10] ); 115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_ERRORTYPE (*QueueBuffer)(OMX_HANDLETYPE hComponent, 117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin TMMCodecBufferType bufType, 118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 *buffer, 119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 bufferLen, 120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 bufferSizeUsed, 121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 *auxInfo, 122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 auxInfoLen, 123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 *usrArg); 124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_ERRORTYPE (*ControlCodec)(OMX_HANDLETYPE hComponent, 126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin TControlCmd iCodecCmd, 127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin void *args [10]); 128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_PTR pCodecPrivate; 130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_HANDLETYPE pCodec; 131b65f253fdc60f6208a54911bee793d225f23cdf8James Dong struct OMX_TI_Debug dbg; 132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}LCML_CODEC_INTERFACE; 134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* __MMCODECINTERFACE_H__ */ 136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 137