⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tvptpp_fw.h

📁 ti的数字电视芯片 tvp9000的源码
💻 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 + -