📄 st_pti.h
字号:
/*******************************************************************************
File Name : pti.h
Description : Header of STPTI testtool file.
COPYRIGHT (C) STMicroelectronics 2004.
*******************************************************************************/
#ifndef __PTI_H
#define __PTI_H
/* Includes ----------------------------------------------------------------- */
#include "stpti.h"
#include "app_data.h"
#include "service.h"
#ifdef TESTTOOL
#include "testtool.h"
#endif
/* C++ support */
#ifdef __cplusplus
extern "C" {
#endif
/* Exported Types ----------------------------------------------------------- */
/* Service supported */
typedef enum PTI_Service_e
{
PTI_SERVICE_DVB = 0,
PTI_SERVICE_DTV = 1,
PTI_SERVICE_MAX = 3
} PTI_Service_t;
/* Id for Slot/Filter/Buffer access */
typedef enum PTI_SlotTypeId_e
{
PTI_SLOT_TYPE_VIDEO = 0,
PTI_SLOT_TYPE_AUDIO = 1,
PTI_SLOT_TYPE_PCR = 2,
PTI_SLOT_TYPE_TTX = 3,
PTI_SLOT_TYPE_MAXID = 4
} PTI_SlotTypeId_t;
/* Process Stream type */
typedef enum PTI_StreamType_e
{
PTI_STREAMTYPE_AV, /* Audio / Video */
PTI_STREAMTYPE_CARROUSEL,
PTI_STREAMTYPE_HDD,
PTI_STREAMTYPE_INVALID
} PTI_StreamType_t;
/* CDFiFo parameters used by STPTI driver */
typedef struct PTI_CDFifoParamsVideo_s
{
VID_DeviceId_t VIDDeviceId;/* Video Driver associated, VID_MAXDEVICE = No */
U32 CDFifo; /* CD Fifo address (Audio, Video, ..) */
BOOL UseCdFifo; /* Target is CD Fifo */
U32 BufferSize; /* Buffer size */
} PTI_CDFifoParamsVideo_t;
typedef struct PTI_CDFifoParamsAudio_s
{
U32 CDFifo; /* CD Fifo address (Audio, Video, ..) */
BOOL UseCdFifo; /* Target is CD Fifo */
U32 BufferSize; /* Buffer size */
} PTI_CDFifoParamsAudio_t;
/* Parameters to provide Audio Video Stream */
typedef struct PTI_ProcessStreamAV_s
{
PTI_CDFifoParamsVideo_t Video; /* Video Parameters */
PTI_CDFifoParamsAudio_t Audio; /* Audio Parameters */
} PTI_ProcessStreamAV_t;
/* Parameters to provide Carousel TO_DO */
typedef struct PTI_ProcessStreamCarousel_s
{
U32 to_do_carousel_user_param;
} PTI_ProcessStreamCarousel_t;
/* Parameters to provide HDD TO_DO */
typedef struct PTI_ProcessStreamHDD_s
{
U32 to_do_hdd_user_param;
} PTI_ProcessStreamHDD_t;
/* Process Stream parameters */
typedef struct PTI_ProcessStream_s
{
/* Stream type */
PTI_StreamType_t StreamType; /* Audio/Video, carousel, HDD, ...*/
/* Stream */
PTI_ProcessStreamAV_t av; /* StreamType = PTI_STREAMTYPE_AV */
PTI_ProcessStreamCarousel_t carousel; /* StreamType = PTI_STREAMTYPE_CARROUSEL */
PTI_ProcessStreamHDD_t hdd; /* StreamType = PTI_STREAMTYPE_HDD */
} PTI_ProcessStream_t;
/* PTI access information, this "object" is configured into app_data.c */
typedef struct PTI_DeviceHandle_s
{
ST_DeviceName_t DeviceName; /* Used by STPTI_Init */
STPTI_Handle_t *Handle_p; /* Handle_p */
PTI_ProcessStream_t *ProcessStream_p; /* Process Stream */
STPTI_Device_t Device; /* Device type PTI1/PTI3 */
U32 TCDeviceAddress; /* @ Transport Controleur */
U32 TCIntNumber; /* Interrupt Number TC */
STPTI_FilterOperatingMode_t FilterMode; /* Filter mode */
EVT_DeviceId_t EVTDeviceId; /* DeviceId for Event */
PTI_Service_t Service; /* PTI Service used */
STPTI_StreamID_t StreamId; /* PTI Stream ID */
} PTI_DeviceHandle_t;
/* For each slot we need to keep this information */
typedef struct Pti_SlotKeepInfo_s
{
STPTI_Slot_t SlotHandle; /* Slot handle */
STPTI_Pid_t Pid; /* PID */
STPTI_Filter_t FilterHandle; /* Filter handle */
STPTI_Buffer_t BufferHandle; /* PTI Destination Buffer handle */
U32 BufferSize; /* PTI Destination Buffer size */
STPTI_Signal_t SignalHandle; /* PTI Destination Signal handle */
U8 *UserBuffer_p; /* User Buffer */
U32 UserBufferSize; /* User Buffer */
BOOL InUse; /* In use ? */
} Pti_SlotKeepInfo_t;
extern Pti_SlotKeepInfo_t Pti_SlotKeepInfo[PTI_MAXDEVICE][PTI_MAXOPEN][PTI_SLOT_TYPE_MAXID];
extern STPTI_Buffer_t PTI_AudioBufferHandle_Multiple[PTI_MAXDEVICE], PTI_VideoBufferHandle_Multiple[PTI_MAXDEVICE];
/* Exported Constants ------------------------------------------------------- */
/* Exported Variables ------------------------------------------------------- */
extern PTI_DeviceHandle_t PtiDeviceHandle[];
/* Exported Macros ---------------------------------------------------------- */
#define PTI_GET_DEVICENAME(h) (PtiDeviceHandle[(h)].DeviceName)
#define PTI_GET_HANDLE(h,id) ((PtiDeviceHandle[(h)].Handle_p)[(id)])
#define PTI_GET_PROCESSSTREAM(h,id) ((PtiDeviceHandle[(h)].ProcessStream_p)[(id)])
#define PTI_GET_DEVICE(h) (PtiDeviceHandle[(h)].Device)
#define PTI_GET_TCADDRESS(h) (PtiDeviceHandle[(h)].TCDeviceAddress)
#define PTI_GET_TCINTERRUPT(h) (PtiDeviceHandle[(h)].TCIntNumber)
#define PTI_GET_FILTERMODE(h) (PtiDeviceHandle[(h)].FilterMode)
#define PTI_GET_EVTDEVICEID(h) (PtiDeviceHandle[(h)].EVTDeviceId)
#define PTI_GET_SERVICE(h) (PtiDeviceHandle[(h)].Service)
#define PTI_GET_STREAMID(h) (PtiDeviceHandle[(h)].StreamId)
#define PTI_PROCESSSTREAM_IS_AV(h,id) (((PTI_GET_PROCESSSTREAM(h,id)).StreamType) == PTI_STREAMTYPE_AV)
#define PTI_PROCESSSTREAM_IS_CAR(h,id) (((PTI_GET_PROCESSSTREAM(h,id)).StreamType) == PTI_STREAMTYPE_CARROUSEL)
#define PTI_PROCESSSTREAM_IS_HDD(h,id) (((PTI_GET_PROCESSSTREAM(h,id)).StreamType) == PTI_STREAMTYPE_HDD)
#define PTI_GET_AUDIO_CDFIFO(h,id) ((PTI_GET_PROCESSSTREAM(h,id)).av.Audio.CDFifo)
#define PTI_USE_AUDIO_CDFIFO(h,id) ((PTI_GET_PROCESSSTREAM(h,id)).av.Audio.UseCdFifo)
#define PTI_GET_AUDIO_BUFFERSIZE(h,id) ((PTI_GET_PROCESSSTREAM(h,id)).av.Audio.BufferSize)
#define PTI_GET_VIDEODRIVER_DEVICEID(h,id) ((PTI_GET_PROCESSSTREAM(h,id)).av.Video.VIDDeviceId)
#define PTI_GET_VIDEO_CDFIFO(h,id) ((PTI_GET_PROCESSSTREAM(h,id)).av.Video.CDFifo)
#define PTI_USE_VIDEO_CDFIFO(h,id) ((PTI_GET_PROCESSSTREAM(h,id)).av.Video.UseCdFifo)
#define PTI_GET_VIDEO_BUFFERSIZE(h,id) ((PTI_GET_PROCESSSTREAM(h,id)).av.Video.BufferSize)
#define PTI_HANDLE_NULL (STPTI_Handle_t)NULL
/* Exported Functions ------------------------------------------------------- */
/* ========================================================================== */
/* Generic Function */
/* ========================================================================== */
/* -----------------------------------------------------------------------------
* Name : PTI_Init
* Description : Initialize a STPTI for a DeviceId
* Parameters : PTI_DeviceId_t DeviceId, SERVICE_Mode_t SERVICE_Mode
* Assumptions :
* Limitations :
* Returns : ErrCode
* -------------------------------------------------------------------------- */
ST_ErrorCode_t PTI_Init(PTI_DeviceId_t DeviceId, SERVICE_Mode_t SERVICE_Mode);
/* -----------------------------------------------------------------------------
* Name : PTI_Open
* Description : Open a STPTI connection
* Parameters :
* PTI_DeviceId_t DeviceId "Target"
* PTI_HandleId_t HandleId For multi-instance management
* Assumptions :
* Limitations :
* Returns : ErrCode
* -------------------------------------------------------------------------- */
ST_ErrorCode_t PTI_Open ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId );
/* -----------------------------------------------------------------------------
* Name : PTI_Close
* Description : Close a STPTI connection
* Parameters :
* PTI_DeviceId_t DeviceId "Target"
* PTI_HandleId_t HandleId For multi-instance management
* Assumptions :
* Limitations :
* Returns : ErrCode
* -------------------------------------------------------------------------- */
ST_ErrorCode_t PTI_Close ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId );
/* -----------------------------------------------------------------------------
* Name : PTI_Term
* Description : Close a STPTI DeviceId
* Parameters :
* PTI_DeviceId_t DeviceId "Target"
* BOOL ForceTerminate Force terminate
* Assumptions :
* Limitations :
* Returns : ErrCode
* -------------------------------------------------------------------------- */
ST_ErrorCode_t PTI_Term ( PTI_DeviceId_t DeviceId, BOOL ForceTerminate );
/* ========================================================================== */
/* PTI event enabling */
/* ========================================================================== */
ST_ErrorCode_t PTI_EnableErrorEvents(PTI_DeviceId_t DeviceId);
/* ========================================================================== */
/* Audio PES managment */
/* ========================================================================== */
ST_ErrorCode_t PTI_AudioStop ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId );
ST_ErrorCode_t PTI_AudioStart ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId,
STPTI_Pid_t AudioPid );
/* ========================================================================== */
/* Video PES managment */
/* ========================================================================== */
ST_ErrorCode_t PTI_VideoStop ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId );
ST_ErrorCode_t PTI_VideoStart ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId );
/* ========================================================================== */
/* PCR managment */
/* ========================================================================== */
ST_ErrorCode_t PTI_PCRStop ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId );
ST_ErrorCode_t PTI_PCRStart ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId,
STPTI_Pid_t PCRPid );
/* ========================================================================== */
/* TTX managment */
/* ========================================================================== */
ST_ErrorCode_t PTI_TTXStop( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId );
ST_ErrorCode_t PTI_TTXStart( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId,
STPTI_Pid_t TTXPid );
/* ========================================================================== */
/* PTI Slot Pid management */
/* ========================================================================== */
ST_ErrorCode_t PTI_ChangeSlotPid ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId,
PTI_SlotTypeId_t SlotType, STPTI_Pid_t Pid );
ST_ErrorCode_t PTI_SetSlotPid( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId,
PTI_SlotTypeId_t SlotType, STPTI_Pid_t Pid );
ST_ErrorCode_t PTI_ClearSlotPid( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId,
PTI_SlotTypeId_t SlotType );
/* -----------------------------------------------------------------------------
* Name : PTI_PCRGetSlotHandle
* Description : Return PCR SlotHandle
* Parameters :
* PTI_DeviceId_t DeviceId "Target"
* PTI_ProcessStreamId_t ProcessStreamId "Process stream"
* STPTI_Slot_t *SlotHandle "returned value"
* Assumptions :
* Limitations :
* Returns :ErrCode
* ST_NO_ERROR Success.
* ST_ERROR_BAD_PARAMETER Self explain
* -------------------------------------------------------------------------- */
ST_ErrorCode_t PTI_PCRGetSlotHandle(PTI_DeviceId_t DeviceId,
PTI_ProcessStreamId_t ProcessStreamId,
STPTI_Slot_t *SlotHandle);
/* ========================================================================== */
/* Zapping */
/* ========================================================================== */
ST_ErrorCode_t PTI_Do_AV_Start ( PTI_DeviceId_t DeviceId, PTI_HandleId_t HandleId,
STPTI_Pid_t VidPid, STPTI_Pid_t AudPid, STPTI_Pid_t PCRPid );
/* TestTool init commands */
BOOL PTI_InitCommand ( void );
#ifdef TESTTOOL
/*------------------------------------------------------------------------------
* Name : PtiGetParamDeviceId
* Description : Get device id (from 0 to PTI_MAXOPEN)
* Parameters : *pars_p, *DeviceId_p
* Assumptions :
* Limitations :
* Returns : TRUE if error, FALSE if success
* -------------------------------------------------------------------------- */
BOOL PtiGetParamDeviceId (parse_t *pars_p, PTI_DeviceId_t *DeviceId_p);
/*------------------------------------------------------------------------------
* Name : PtiGetParamHandleId
* Description : Get handle id (from 0 to PTI_MAXOPEN)
* Parameters : *pars_p, *HandleId_p
* Assumptions :
* Limitations :
* Returns : TRUE if error, FALSE if success
* --------------------------------------------------------------------------- */
BOOL PtiGetParamHandleId (parse_t *pars_p, PTI_HandleId_t *HandleId_p);
#endif
/* C++ support */
#ifdef __cplusplus
}
#endif
#endif
/* EOF */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -