| 1 | /*************************************************************** |
|---|
| 2 | ** |
|---|
| 3 | ** Broadcom Corp. Confidential |
|---|
| 4 | ** Copyright 2003-2008 Broadcom Corp. All Rights Reserved. |
|---|
| 5 | ** |
|---|
| 6 | ** THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED |
|---|
| 7 | ** SOFTWARE LICENSE AGREEMENT BETWEEN THE USER AND BROADCOM. |
|---|
| 8 | ** YOU HAVE NO RIGHT TO USE OR EXPLOIT THIS MATERIAL EXCEPT |
|---|
| 9 | ** SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 10 | ** |
|---|
| 11 | ** File: si_nit_mms.h |
|---|
| 12 | ** Description: defines for the MMS subtable parse function of |
|---|
| 13 | ** the NIT table section. |
|---|
| 14 | ** |
|---|
| 15 | ** Created: 03/08/2001 |
|---|
| 16 | ** |
|---|
| 17 | ** REVISION: |
|---|
| 18 | ** |
|---|
| 19 | ** $Log: $ |
|---|
| 20 | ** |
|---|
| 21 | ** |
|---|
| 22 | ****************************************************************/ |
|---|
| 23 | #ifndef SI_NIT_MMS_H |
|---|
| 24 | #define SI_NIT_MMS_H |
|---|
| 25 | |
|---|
| 26 | #define NIT_MMS_MAX_TABLE_SIZE 256 |
|---|
| 27 | |
|---|
| 28 | #define NIT_MMS_SUBTABLE_SIZE 6 /* size of MMS in bytes. */ |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | /* For the following, refer to table 5.3 of ANSI/SCTE65 2002 (DVS234) */ |
|---|
| 32 | #define NIT_MMS_TRANSMISSION_SYSTEM_BYTE_INDX 0 |
|---|
| 33 | #define NIT_MMS_TRANSMISSION_SYSTEM_BYTE_NUM 1 |
|---|
| 34 | #define NIT_MMS_TRANSMISSION_SYSTEM_SHIFT 4 |
|---|
| 35 | #define NIT_MMS_TRANSMISSION_SYSTEM_MASK 0x0f |
|---|
| 36 | |
|---|
| 37 | #define NIT_MMS_INNER_CODING_MODE_BYTE_INDX 0 |
|---|
| 38 | #define NIT_MMS_INNER_CODING_MODE_BYTE_NUM 1 |
|---|
| 39 | #define NIT_MMS_INNER_CODING_MODE_SHIFT 0 |
|---|
| 40 | #define NIT_MMS_INNER_CODING_MODE_MASK 0x0f |
|---|
| 41 | |
|---|
| 42 | #define NIT_MMS_SPLIT_BITSTREAM_MODE_BYTE_INDX 1 |
|---|
| 43 | #define NIT_MMS_SPLIT_BITSTREAM_MODE_BYTE_NUM 1 |
|---|
| 44 | #define NIT_MMS_SPLIT_BITSTREAM_MODE_SHIFT 7 |
|---|
| 45 | #define NIT_MMS_SPLIT_BITSTREAM_MODE_MASK 0x01 |
|---|
| 46 | |
|---|
| 47 | #define NIT_MMS_MODULATION_FORMAT_BYTE_INDX 1 |
|---|
| 48 | #define NIT_MMS_MODULATION_FORMAT_BYTE_NUM 1 |
|---|
| 49 | #define NIT_MMS_MODULATION_FORMAT_SHIFT 0 |
|---|
| 50 | #define NIT_MMS_MODULATION_FORMAT_MASK 0x1f |
|---|
| 51 | |
|---|
| 52 | #define NIT_MMS_SYMBOL_RATE_BYTE_INDX 2 |
|---|
| 53 | #define NIT_MMS_SYMBOL_RATE_BYTE_NUM 4 |
|---|
| 54 | #define NIT_MMS_SYMBOL_RATE_SHIFT 0 |
|---|
| 55 | #define NIT_MMS_SYMBOL_RATE_MASK 0x0fffffff |
|---|
| 56 | |
|---|
| 57 | |
|---|
| 58 | /* Transmission system define see table 5.7 of ANSI/SCTE65 2002 (DVS234) */ |
|---|
| 59 | typedef enum |
|---|
| 60 | { |
|---|
| 61 | UNKNOWN_TX_SYS = 0, |
|---|
| 62 | RESERVED_ETSI_TX_SYS = 1, |
|---|
| 63 | ITU_T_ANNEX_B_TX_SYS = 2, |
|---|
| 64 | OTHER_TX_SYS = 3, |
|---|
| 65 | ATSC_TX_SYS = 4, |
|---|
| 66 | RESERVED_SAT1_TX_SYS = 5, |
|---|
| 67 | RESERVED_SAT2_TX_SYS = 6, |
|---|
| 68 | RESERVED_SAT3_TX_SYS = 7, |
|---|
| 69 | RESERVED_SAT4_TX_SYS = 8, |
|---|
| 70 | RESERVED_SAT5_TX_SYS = 9, |
|---|
| 71 | RESERVED_SAT6_TX_SYS = 10, |
|---|
| 72 | RESERVED_SAT7_TX_SYS = 11, |
|---|
| 73 | RESERVED_SAT8_TX_SYS = 12, |
|---|
| 74 | RESERVED_SAT9_TX_SYS = 13, |
|---|
| 75 | RESERVED_SAT10_TX_SYS = 14, |
|---|
| 76 | RESERVED_SAT11_TX_SYS = 15, |
|---|
| 77 | }NIT_MMS_TRANSMISSION_SYSTEM; |
|---|
| 78 | |
|---|
| 79 | /* inner coding mode define, see table 5.8 of ANSI/SCTE65 2002 (DVS234) */ |
|---|
| 80 | typedef enum |
|---|
| 81 | { |
|---|
| 82 | RATE_5_11 = 0, |
|---|
| 83 | RATE_1_2 = 1, |
|---|
| 84 | RATE_RESERVED1 = 2, |
|---|
| 85 | RATE_3_5 = 3, |
|---|
| 86 | RATE_RESERVED2 = 4, |
|---|
| 87 | RATE_2_3 = 5, |
|---|
| 88 | RATE_RESERVED3 = 6, |
|---|
| 89 | RATE_3_4 = 7, |
|---|
| 90 | RATE_4_5 = 8, |
|---|
| 91 | RATE_5_6 = 9, |
|---|
| 92 | RATE_RESERVED4 = 10, |
|---|
| 93 | RATE_7_8 = 11, |
|---|
| 94 | RATE_RESERVED5 = 12, |
|---|
| 95 | RATE_RESERVED6 = 13, |
|---|
| 96 | RATE_RESERVED7 = 14, |
|---|
| 97 | RATE_NONE = 15, |
|---|
| 98 | }NIT_MMS_INNER_CODING_MODE; |
|---|
| 99 | |
|---|
| 100 | /* modulation format, see table 5.9 of ANSI/SCTE65 2002 (DVS234) */ |
|---|
| 101 | typedef enum |
|---|
| 102 | { |
|---|
| 103 | MOD_UNKNOWN, |
|---|
| 104 | MOD_QPSK, |
|---|
| 105 | MOD_BPSK, |
|---|
| 106 | MOD_OQPSK, |
|---|
| 107 | MOD_VSB8, |
|---|
| 108 | MOD_VSB16, |
|---|
| 109 | MOD_QAM16, |
|---|
| 110 | MOD_QAM32, |
|---|
| 111 | MOD_QAM64, |
|---|
| 112 | MOD_QAM80, |
|---|
| 113 | MOD_QAM96, |
|---|
| 114 | MOD_QAM112, |
|---|
| 115 | MOD_QAM128, |
|---|
| 116 | MOD_QAM160, |
|---|
| 117 | MOD_QAM192, |
|---|
| 118 | MOD_QAM224, |
|---|
| 119 | MOD_QAM256, |
|---|
| 120 | MOD_QAM320, |
|---|
| 121 | MOD_QAM384, |
|---|
| 122 | MOD_QAM448, |
|---|
| 123 | MOD_QAM512, |
|---|
| 124 | MOD_QAM640, |
|---|
| 125 | MOD_QAM768, |
|---|
| 126 | MOD_QAM896, |
|---|
| 127 | MOD_QAM1024, |
|---|
| 128 | MOD_RESVERED1, |
|---|
| 129 | MOD_RESVERED2, |
|---|
| 130 | MOD_RESVERED3, |
|---|
| 131 | MOD_RESVERED4, |
|---|
| 132 | MOD_RESVERED5, |
|---|
| 133 | MOD_RESVERED6, |
|---|
| 134 | MOD_RESVERED7, |
|---|
| 135 | }NIT_MMS_MODULATION_FORMAT; |
|---|
| 136 | |
|---|
| 137 | /* The MMS table we keep for reference of SVCT. refer to table 5.6 of ANSI/SCTE65 2002 (DVS234). */ |
|---|
| 138 | typedef struct |
|---|
| 139 | { |
|---|
| 140 | unsigned char transmission_system; |
|---|
| 141 | unsigned char inner_coding_mode; |
|---|
| 142 | unsigned char split_bitstream_mode; |
|---|
| 143 | unsigned char modulation_format; |
|---|
| 144 | unsigned long symbol_rate; |
|---|
| 145 | unsigned char idx; |
|---|
| 146 | }NIT_MMS_RECORD; |
|---|
| 147 | |
|---|
| 148 | typedef struct SI_MMS_Callback_t |
|---|
| 149 | { |
|---|
| 150 | void (*cb)(NIT_MMS_RECORD *p_MMS, void *data); |
|---|
| 151 | void * data; |
|---|
| 152 | }SI_MMS_Callback_t; |
|---|
| 153 | |
|---|
| 154 | #ifdef __cplusplus |
|---|
| 155 | extern "C" { |
|---|
| 156 | #endif |
|---|
| 157 | |
|---|
| 158 | void SI_NIT_MMS_Init (SI_MMS_Callback_t *p_cb); |
|---|
| 159 | void SI_NIT_MMS_parse (unsigned char * mms_record, unsigned char idx); |
|---|
| 160 | |
|---|
| 161 | #ifdef __cplusplus |
|---|
| 162 | } |
|---|
| 163 | #endif |
|---|
| 164 | |
|---|
| 165 | #endif |
|---|
| 166 | |
|---|
| 167 | |
|---|