sdk-hwV1.3/external/eyesee-mpp/middleware/sun8iw21/media/include/component/Demux_Component.h

83 lines
4.1 KiB
C

/******************************************************************************
Copyright (C), 2001-2016, Allwinner Tech. Co., Ltd.
******************************************************************************
File Name : Demux_Component.c
Version : Initial Draft
Author : Allwinner BU3-PD2 Team
Created : 2016/08/05
Last Modified :
Description : mpp component implement
Function List :
History :
******************************************************************************/
#ifndef __IPCLINUX_DEMUX_COMPONENT_H__
#define __IPCLINUX_DEMUX_COMPONENT_H__
//ref platform headers
#include "plat_defines.h"
#include "plat_errno.h"
#include "plat_math.h"
#include "plat_type.h"
//media api headers to app
#include "mm_comm_demux.h" //"mm_comm_video.h"
#include "mm_common.h"
//#include "mpi_demux.h" //"mpi_video.h"
//media internal common headers.
#include "ComponentCommon.h"
#include "aw_demux.h"
#include "cedarx_demux.h"
#include "media_common.h"
#include "mm_component.h"
#include "tmessage.h"
#include "tsemaphore.h"
//------------------------------------------------------------------------------------
#define DEMUX_MAX_PORT_COUNT 4
#define TS_PROCESS_PACKET_SIZE (256 * 1024)
#define MAX_CACHE_PERCENT 15
//private interface
ERRORTYPE DemuxGetPortDefinition(PARAM_IN COMP_HANDLETYPE hComponent,
PARAM_INOUT COMP_PARAM_PORTDEFINITIONTYPE *pPortDef);
ERRORTYPE DemuxSetPortDefinition(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN COMP_PARAM_PORTDEFINITIONTYPE *pPortDef);
ERRORTYPE DemuxGetCompBufferSupplier(PARAM_IN COMP_HANDLETYPE hComponent,
PARAM_INOUT COMP_PARAM_BUFFERSUPPLIERTYPE *pPortBufSupplier);
ERRORTYPE DemuxSetCompBufferSupplier(PARAM_IN COMP_HANDLETYPE hComponent,
PARAM_IN COMP_PARAM_BUFFERSUPPLIERTYPE *pPortBufSupplier);
ERRORTYPE DemuxGetMPPChannelInfo(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_OUT MPP_CHN_S *pChn);
ERRORTYPE DemuxSetMPPChannelInfo(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN MPP_CHN_S *pChn);
ERRORTYPE DemuxGetChannelFd(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_OUT int *pChnFd);
ERRORTYPE DemuxGetTunnelInfo(PARAM_IN COMP_HANDLETYPE hComponent,
PARAM_INOUT COMP_INTERNAL_TUNNELINFOTYPE *pTunnelInfo);
ERRORTYPE DemuxGetChnAttr(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_OUT DEMUX_CHN_ATTR_S *pChnAttr);
ERRORTYPE DemuxSetChnAttr(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_OUT DEMUX_CHN_ATTR_S *pChnAttr);
ERRORTYPE DemuxResetChannel(PARAM_IN COMP_HANDLETYPE hComponent);
//public interface
ERRORTYPE DemuxSendCommand(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN COMP_COMMANDTYPE Cmd,
PARAM_IN unsigned int nParam1, PARAM_IN void *pCmdData);
ERRORTYPE DemuxGetState(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_OUT COMP_STATETYPE *pState);
ERRORTYPE DemuxSetCallbacks(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN COMP_CALLBACKTYPE *pCallbacks,
PARAM_IN void *pAppData);
ERRORTYPE DemuxGetConfig(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN COMP_INDEXTYPE nIndex,
PARAM_IN void *pComponentConfigStructure);
ERRORTYPE DemuxSetConfig(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN COMP_INDEXTYPE nIndex,
PARAM_IN void *pComponentConfigStructure);
ERRORTYPE DemuxComponentTunnelRequest(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN unsigned int nPort,
PARAM_IN COMP_HANDLETYPE hTunneledComp, PARAM_IN unsigned int nTunneledPort,
PARAM_INOUT COMP_TUNNELSETUPTYPE *pTunnelSetup);
ERRORTYPE DemuxEmptyThisBuffer(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN COMP_BUFFERHEADERTYPE *pBuffer);
ERRORTYPE DemuxFillThisBuffer(PARAM_IN COMP_HANDLETYPE hComponent, PARAM_IN COMP_BUFFERHEADERTYPE *pBuffer);
ERRORTYPE DemuxComponentDeInit(PARAM_IN COMP_HANDLETYPE hComponent);
ERRORTYPE DemuxComponentInit(PARAM_IN COMP_HANDLETYPE hComponent);
#define COMP_TICKS_PER_SECOND 1000000
#endif /* __IPCLINUX_DEMUX_COMPONENT_H__ */