📄 tvptpp_fw.h
字号:
/*****************************************************************************
* Property of Texas Instruments Incorporated, Copyright 2004
* All rights reserved
******************************************************************************/
/*********************************************************************
*
* Description:
* TvpTpp_fw.H contains private definitions related to the TPP module
*
* Contents:
* Control structures
* Flag definitions
*
**********************************************************************/
/*********************************************************************
*
* $Revision: $
*
* $History: TvpTpp_fw.h $
*
*********************************************************************/
#ifndef TVP_TPP_FW_DOT_H_IS_DEFINED
#define TVP_TPP_FW_DOT_H_IS_DEFINED
/************************/
/* Transfer Table Flags */
#define TVP_TRANS_STATUS_RAND 0x01
#define TVP_TRANS_STATUS_DISC 0x02
#define TVP_TRANS_DESCR_CHANGE 0x04
#define TVP_TRANS_AF_PRIV 0x08
#define TVP_TRANS_PCR 0x10
#define TVP_TRANS_ERR_TE 0x20
#define TVP_TRANS_KEEP_CC 0x40
#define TVP_TRANS_PTS 0x80
#define TVP_TRANS_ERR_SI 0x80
#define TVP_TRANS_FILT_TS 0x0100
#define TVP_TRANS_FILT_PES 0x0200
#define TVP_TRANS_PES_PRIV 0x0400
#define TVP_TRANS_BAD_STREAMID 0x0800
#define TVP_TRANS_GOOD_STREAMID 0x1000
#define TVP_TRANS_PCR_CHAN 0x2000
#define TVP_TRANS_KEEP_DUPLICATE 0x4000
#define TVP_TRANS_ARRAY_FILTER_ERROR 0x8000
/**************************/
/* PES and TS Table Flags */
#define TVP_TRANS_DISCARD 0x01
#define TVP_TRANS_DATA 0x02
#define TVP_TRANS_CONTINUOUS 0x08 /* continuous transfer */
#define TVP_TRANS_IRQ_MASK 0x30 /* interrupt mask */
#define TVP_TRANS_NO_IRQ 0x00
#define TVP_TRANS_IRQ_START 0x10
#define TVP_TRANS_IRQ_END 0x20
#define TVP_TRANS_IRQ_END_TRANS 0x40
#define TVP_TRANS_ACTIVE 0x80 /* PES transfer in progress */
/**********************/
/* Video Table status */
#define TVP_PES_EXTN_BIT 0x01 /* extension data exists in PES hdr */
#define TVP_SPLIT_PES_BIT 0x02 /* Pes split between 2 packets */
#define TVP_PES_PRIVDATA_BIT 0x04 /* Pes priv data exists */
#define TVP_PTS_FLAG_BIT 0x08 /* PTS exists */
#define TVP_HEADER_PACKET 0x10 /* Packet with PES header */
#define TVP_DTS_FLAG_BIT 0x20
#define TVP_PES_TRICK_FLAG_BIT 0x40
/***************************/
/* FE configuration values */
#define TVP_FE_SERIAL_MASK 0x0008
#define TVP_FE_SERIAL_LSB_FIRST_MASK 0x0010
#define TVP_FE_DCLK_ACTIVE_EDGE_MASK 0x0020
#define TVP_FE_PACVAL_POLARITY_MASK 0x0040
#define TVP_FE_BYTESTRT_POLARITY_MASK 0x0080
#define TVP_FE_FRAMER_ENABLE_MASK 0x0100
#define TVP_FE_SERIAL_BITSEL_MASK 0x7
#define TVP_FE_SERIAL_BITSEL_SHIFT 9
#define TVP_FE_DERROR_POLARITY_MASK 0x1000
/********************************/
/* STC IRQ configuration values */
#define TVP_STC_IRQ_ENABLE 1 /* bit 0 */
#define TVP_STC33_LOW_SHIFT 1 /* bit 1 */
#define TVP_STC33_HI_SHIFT 2 /* bit 2 */
#define TVP_STC_IRQ_LOHI 8 /* bit 3 */
#define TVP_STC_IRQ_HILO 0 /* bit 3 */
#define TVP_STC_IRQ_SET 0x10 /* bit 4 */
#define TVP_STC_IRQ_SHIFT 5 /* bit 5-12 */
#define TVP_STC_DELTA_MIN 900 /* 10 msec. minimum range */
/*********************************************************************/
#define TVP_TPPDMA_FIQ_ENABLE 1
#define TVP_PTS_DTS_FILT_MASK 0x80
#define TVP_TPP_INT_NOT_USED 0xff
/*********************************************************************/
typedef unsigned char TvpDataBuf;
/**********************/
/* TS Table structure */
/**********************/
typedef struct
{
unsigned char ts_flags;
unsigned short count; /* number of bytes to transfer */
unsigned long tsfilter; /* filter pattern on TS header */
unsigned long tsmask; /* filter mask on TS header */
TvpDataBuf *buf_ts; /* ts buffer ptr */
TvpData_acq_ret_s *response_ts; /* Pointer to response table */
}TvpTsTbl;
/***********************/
/* PES Table structure */
typedef struct
{
unsigned short packet_length; /* length of the pes packet */
unsigned char header_length; /* length of the pes header */
unsigned char prev_pes_bytes; /* bytes of the header in the 1st packet */
unsigned long schedule; /* schedule for unpacking bytes from stream */
unsigned long pts; /* word for storing the pts value */
unsigned long dts;
unsigned char pts_high;
unsigned char dts_high;
unsigned char tm_offset;
unsigned char reserved1;
unsigned char status; /* maintaining status between packets */
unsigned char pes_priv_offset; /* offset from pes start to exten data */
unsigned char pes_flags;
unsigned char irq_pes;
unsigned short count; /* number of bytes to transfer */
unsigned char dvb_flag2;
TvpDataBuf *buf_pes; /* pes buffer ptr */
TvpData_acq_ret_s *response_pes; /* Pointer to response table */
TvpPesFilter_s pesFilter;
}TvpPesTbl;
/****************************/
/* Transfer Table structure */
typedef union
{
struct
{
unsigned short flags; /* transfer flags */
unsigned char packet_type; /* packet type */
unsigned char descr_info; /* descrambler bits 0..1 TS 2..3 PES */
unsigned char irq_af; /* irq number for private transfer */
unsigned char irq_status; /* irq number for status */
unsigned char irq_ts; /* irq number for ts transfer */
unsigned char reserved2;
TvpDataBuf *buf_af; /* af buffer ptr */
TvpTsTbl tsTable; /* auto TS transfer */
unsigned char *buf_pes; /* buffer ptr */
TvpPesTbl pesTable; /* pes structure */
}Priv;
struct
{
unsigned short flags; /* transfer flags */
unsigned char packet_type; /* packet type */
unsigned char descr_info; /* descrambler bits 0..1 TS 2..3 PES */
unsigned char irq_af; /* irq number for private transfer */
unsigned char irq_status; /* irq number for status */
unsigned char irq_ts; /* irq number for ts transfer */
unsigned char irq_pes_priv; /* irq number for pes private transfer */
TvpDataBuf *buf_af; /* af buffer ptr */
TvpTsTbl tsTable; /* auto TS transfer */
unsigned char irq_level; /* filter IRQ level */
unsigned char tableIndex; /* filter table index */
unsigned char maxFilterSize; /* max filter size */
unsigned char splitHdrSize; /* size of split header */
unsigned long sectionSize; /* remaining size of the section */
unsigned char *continueAddr; /* start address of a section (continuation) */
unsigned long continueFilterPtr; /* filter pointer mask */
TvpDataBuf *buf_ptr; /* buffer ptr */
TvpLLBuff *linkPtr; /* linked list pointer */
unsigned long filtMask;
unsigned char splitData[16]; /* */
}Psi_hw;
}TvpTransTbl;
/*********************/
/* Filter structure */
typedef struct
{
unsigned long filt_ret_ptr_lev1; /* address of the filterReturn structure */
unsigned long filt_ret_ptr_lev2;
unsigned long filt_read_lev1; /* read pointer the filterReturn */
unsigned long filt_read_lev2;
unsigned long filt_write_lev1; /* write pointer of filterReturn */
unsigned long filt_write_lev2;
unsigned long filt_array_size_lev1; /* size of filterReturn */
unsigned long filt_array_size_lev2;
unsigned long filt_irq; /* irq for section filtering */
}TvpFiltStruct;
/*********************/
/* STC IRQ structure */
typedef struct
{
unsigned long stc_low; /* low threshold */
unsigned long stc_high; /* high threshold */
unsigned long ctrl; /* enable + stc low bit 33 + stc hi bit 33 + irq number */
} TvpStcIrqStruct;
/*********************/
/* AV sync structure */
typedef struct
{
long audio_offset;
long video_offset;
unsigned char audio_en;
unsigned char video_en;
} TvpAvs_struct;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -