source: svn/trunk/newcon3bcm2_21bu/BSEAV/lib/scte65/nit/si_nit_mms.c

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 3.5 KB
Line 
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.c
12** Description: function that parses the MMS subtable of the NIT
13**              table section.
14**
15** Created: 03/08/2001
16**
17** REVISION:
18**
19** $Log: $
20**
21**
22****************************************************************/
23
24#include "si.h"
25#include "si_os.h"
26#include "si_dbg.h"
27#include "si_util.h"
28#include "si_nit_mms.h"
29
30NIT_MMS_RECORD NIT_MMS_Table[NIT_MMS_MAX_TABLE_SIZE]; 
31unsigned long Total_NIT_MMS_entries =0;
32static SI_MMS_Callback_t *s_SI_MMS_Callback = NULL;
33
34void SI_NIT_MMS_Init (SI_MMS_Callback_t *p_cb)
35{
36        SI_memset(NIT_MMS_Table, 0, sizeof(NIT_MMS_Table));
37        Total_NIT_MMS_entries =0;
38        s_SI_MMS_Callback = p_cb;
39}
40
41/*********************************************************************/
42/* Function : SI_NIT_MMS_parse                                                                           */
43/* Description : Function to parse the MMS subtable and populate the */
44/*               carrier freq table.                                                             */
45/* Input : mms_record, point to the current ith MMS subtable         */
46/*            defined in NIT table section. There may be up to       */
47/*            number_of_record MMS subtables defined in NIT table    */
48/*            section. See table 5.1 of ANSI/SCTE65 2002 (DVS234).       */
49/*         idx, point to the location where this MMS will be         */
50/*                        located in the overall MMS table.                                              */
51/* Output : none                                                                                                         */
52/*********************************************************************/
53void SI_NIT_MMS_parse (unsigned char * mms_record, unsigned char idx)
54{
55
56        SI_DBG_PRINT(E_SI_DBG_MSG,("NIT MMS Table received.\n"));
57
58        NIT_MMS_Table[idx].transmission_system = SI_Construct_Data(mms_record, 
59                                                NIT_MMS_TRANSMISSION_SYSTEM_BYTE_INDX,
60                                                NIT_MMS_TRANSMISSION_SYSTEM_BYTE_NUM,
61                                                NIT_MMS_TRANSMISSION_SYSTEM_SHIFT,
62                                                NIT_MMS_TRANSMISSION_SYSTEM_MASK);
63                                                               
64        NIT_MMS_Table[idx].inner_coding_mode = SI_Construct_Data(mms_record, 
65                                                NIT_MMS_INNER_CODING_MODE_BYTE_INDX,
66                                                NIT_MMS_INNER_CODING_MODE_BYTE_NUM,
67                                                NIT_MMS_INNER_CODING_MODE_SHIFT,
68                                                NIT_MMS_INNER_CODING_MODE_MASK);
69                                               
70        NIT_MMS_Table[idx].split_bitstream_mode = SI_Construct_Data(mms_record, 
71                                                NIT_MMS_SPLIT_BITSTREAM_MODE_BYTE_INDX,
72                                                NIT_MMS_SPLIT_BITSTREAM_MODE_BYTE_NUM,
73                                                NIT_MMS_SPLIT_BITSTREAM_MODE_SHIFT,
74                                                NIT_MMS_SPLIT_BITSTREAM_MODE_MASK);
75                                               
76        NIT_MMS_Table[idx].modulation_format = SI_Construct_Data(mms_record, 
77                                                NIT_MMS_MODULATION_FORMAT_BYTE_INDX,
78                                                NIT_MMS_MODULATION_FORMAT_BYTE_NUM,
79                                                NIT_MMS_MODULATION_FORMAT_SHIFT,
80                                                NIT_MMS_MODULATION_FORMAT_MASK);
81                                               
82        NIT_MMS_Table[idx].symbol_rate = SI_Construct_Data(mms_record, 
83                                                NIT_MMS_SYMBOL_RATE_BYTE_INDX,
84                                                NIT_MMS_SYMBOL_RATE_BYTE_NUM,
85                                                NIT_MMS_SYMBOL_RATE_SHIFT,
86                                                NIT_MMS_SYMBOL_RATE_MASK);
87       
88        NIT_MMS_Table[idx].idx = idx;
89        Total_NIT_MMS_entries++;
90        if (s_SI_MMS_Callback)
91        {
92                s_SI_MMS_Callback->cb(&NIT_MMS_Table[idx],s_SI_MMS_Callback->data);
93        }
94        SI_DBG_PRINT(E_SI_DBG_MSG,("NIT MMS Entry: index %x, xmit sys  %x, inner code %x, mod %x, symb rate %x symb/s\n", idx,NIT_MMS_Table[idx].transmission_system,NIT_MMS_Table[idx].inner_coding_mode,NIT_MMS_Table[idx].modulation_format,NIT_MMS_Table[idx].symbol_rate));
95}
Note: See TracBrowser for help on using the repository browser.