83 lines
4.1 KiB
C
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__ */
|