source: svn/newcon3bcm2_21bu/dst/dhl/src/DHL_PSI.c @ 22

Last change on this file since 22 was 22, checked in by phkim, 11 years ago
  1. phkim
  2. newcon3sk 를 kctv 로 브랜치 함
  • Property svn:executable set to *
File size: 5.1 KB
Line 
1/**
2        @file
3                DHL_MMM.c
4
5        @brief
6                PHOENIX HAL library
7
8        ÀÌ ¸ðµâ¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸í..
9        ex: AudioVideo decoding/capture/output implementation
10
11        Copyright 2006~2010 Digital STREAM Technology, Inc.
12        All Rights Reserved
13*/
14
15
16#include "DHL_PSI.h"
17#include "DHL_PSI_Priv.h"
18#include "DHL_DBG.h"
19
20////#include <string.h>
21
22
23/*
24        ¸ðµç Çì´õ ÆÄÀÏÀ» Æ÷ÇÔÇÏÁö´Â ¾ÊÀ¸¸ç, compile timeÀ» ÁÙÀ̱â À§ÇØ
25        °¢ ¸ðµâÀº ÇÊ¿äÇÑ ¸¸Å­ÀÇ Çì´õ¸¦ ¼±¾ðÇϵµ·Ï ÇÔ.
26*/
27
28
29
30/*
31        DHL µð¹ö±× ¸ðµâ À̸§ Á¤ÀÇ ·ê Âü°í:
32
33        DHL ¸ðµâµéÀº ¸ðµÎ * ·Î ½ÃÀÛ.
34        API´Â ´ë¹®ÀÚ, Platform ¹× ±âŸ´Â ¼Ò¹®ÀÚ »ç¿ë.
35
36        µðÆúÆ® ·¹º§Àº 0À¸·Î ¼³Á¤ÇÑ´Ù. (0: ¿¡·¯ ¸Þ½ÃÁö¸¸ Ãâ·Â)
37       
38       
39*/
40
41//DHL_MODULE("*PSI", 0);
42
43
44
45#if COMMENT
46____Config____(){}
47#endif
48
49/*
50        ÀÌ ¸ðµâ ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â °¢Á¾ configuration Á¤ÀÇ.
51*/
52
53
54/* #define SUPPORT_FAST_SWITCHING_OPTIMIZATION 1 */
55/* #define FUNC_MONITOR_TIMER_ID TIMER_ID_FUNC_MONITOR */
56
57
58
59#if COMMENT
60____Types____(){}
61#endif
62
63/*
64        ÀÌ ¸ðµâ ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â structure ¹× enumerations.
65*/
66
67
68
69#if COMMENT
70____Variables____(){}
71#endif
72
73/*
74        global·Î Àû¿ëµÇ´Â variable Á¤ÀÇ.
75        °¢ function º°·Î Ư¼öÇÑ ¿ëµµÀÇ variableÀº °¢ functionX block ¿¡¼­ Á¤ÀÇ °¡´É.
76*/
77
78
79
80#if COMMENT
81____Group1____(){}
82#endif
83
84
85
86DHL_RESULT DHL_PSI_ReadPSIData(tDHL_PSI_ControlHandle hPsiCtrl, tDHL_PSI_DataArray **ppData)
87{
88        return dhl_psi_read_data(hPsiCtrl, ppData);
89}
90
91void DHL_PSI_FreePSIData(tDHL_PSI_DataArray *pData)
92{
93        int i;
94        for(i=0; i<pData->numSections; i++) {
95                if (pData->sectPtr[i])
96                        DHL_OS_Free((void**)&(pData->sectPtr[i]));
97        }
98        DHL_OS_Free((void**)&pData);
99       
100        return;
101}
102
103DHL_RESULT DHL_PSI_AllocGenericFilter(tDHL_PSI_Filter **ppFilter)
104{
105        tDHL_PSI_Filter *pFilter;
106        int i;
107       
108        pFilter = (tDHL_PSI_Filter *) dhl_psi_alloc_memory(sizeof(tDHL_PSI_Filter), DHL_PSI_MEMORY_CLEAR);
109       
110        if(!pFilter) return DHL_FAIL_OUT_OF_MEMORY;
111#if 1//BRCM
112        memset(pFilter->mask, 0xff, FILTER_MAX_BYTE);
113        memset(pFilter->coef, 0x0, FILTER_MAX_BYTE);
114        memset(pFilter->excl, 0xff, FILTER_MAX_BYTE);
115#else
116        // ÇÊÅÍ ÃʱⰪÀº all pass filter »óÅ·Π¸¸µé¾îÁø´Ù.
117        memset(pFilter->mask, 0x0, FILTER_MAX_BYTE);
118        memset(pFilter->data, 0x0, FILTER_MAX_BYTE);
119        memset(pFilter->mode, 0x0, FILTER_MAX_BYTE);
120#endif
121        if(ppFilter) *ppFilter=pFilter;
122       
123        return DHL_OK;
124}
125
126DHL_RESULT DHL_PSI_AllocFilterWithTid(tDHL_PSI_Filter **ppFilter, UINT8 tid, BOOL curnext_indicator)
127{
128        DHL_RESULT error;
129       
130        DHL_ASSERT(tid != 0xFF, "DHL_PSI_AllocFilterWithTid: Bad TID");
131       
132        error = DHL_PSI_AllocGenericFilter(ppFilter);
133
134        if (error) 
135                return error;
136
137        dhl_psi_set_filter_value(*ppFilter, eFILTERATTR_TID, tid);
138        dhl_psi_set_filter_value(*ppFilter, eFILTERATTR_CURNEXTINDICATOR, curnext_indicator);
139       
140        return DHL_OK;
141}
142
143DHL_RESULT DHL_PSI_AllocFilterWithTidEx(tDHL_PSI_Filter **ppFilter, UINT8 tid, UINT16 tidExtension, 
144                                 BOOL curnext_indicator)
145{
146        DHL_RESULT error;
147       
148        DHL_ASSERT(tid != 0xFF, "DHL_PSI_AllocFilterWithTidEx: Bad TID");
149       
150        error = DHL_PSI_AllocGenericFilter(ppFilter);
151       
152        if(error) 
153                return error;
154               
155        dhl_psi_set_filter_value(*ppFilter, eFILTERATTR_TID, tid);
156        dhl_psi_set_filter_value(*ppFilter, eFILTERATTR_TIDEXTENSION, tidExtension);
157        dhl_psi_set_filter_value(*ppFilter, eFILTERATTR_CURNEXTINDICATOR, curnext_indicator);
158       
159        return DHL_OK;
160}
161
162void DHL_PSI_FreeFilter(tDHL_PSI_Filter *pFilter)
163{
164        DHL_OS_Free((void **)&pFilter);
165}
166
167
168#if COMMENT
169____Group2____(){}
170#endif
171
172DHL_RESULT DHL_PSI_StartMonitor(tDHL_TSD tsd, 
173                         UINT16 pid,
174                         tDHL_PSI_Mode psiMode,
175                         tDHL_PSI_Update updateMode,
176                         tDHL_PSI_Filter *prefList,
177                         UINT16 maxData,
178                         UINT16 maxSections,
179                         tDHL_PSI_EventProc eventProc,
180                         UINT32 userParam,
181                         tDHL_PSI_ControlHandle *pHandle)
182{
183
184        // maxData, maxSections ´Â ÀÏ´Ü ¹«½ÃÇÏÀÚ.
185
186        tDHL_PSI_StartParam param;
187
188        param.psiMode = psiMode;
189        param.updateMode = updateMode;
190        param.maxData = maxData;
191        param.maxSections = maxSections;
192        param.eventProc = eventProc;
193        param.userParam = userParam;
194
195        return dhl_psi_start(tsd, pid, prefList, &param, pHandle);
196}
197
198
199void DHL_PSI_StopMonitor(tDHL_PSI_ControlHandle handle)
200{
201        dhl_psi_stop(handle);
202}
203
204
205
206
207#if COMMENT
208____Debug____(){}
209#endif
210
211
212
213
214
215#if COMMENT
216____Symbol____(){}
217#endif
218
219
220#if DHL_REGISTER_DEUBG_SYMBOLS
221
222static DHL_SymbolTable _symbols[] =
223{
224        /*
225        DHL_FNC_SYM_ENTRY2("epg_start", App_EpgUpdateStart),
226        DHL_FNC_SYM_ENTRY2("epg_stop", App_EpgUpdateCancel),
227        DHL_FNC_SYM_ENTRY2("epg_list", Dmc_EpgPrintAllTables),
228        DHL_FNC_SYM_ENTRY2("epg_delete", App_EpgDeleteAll),
229
230        DHL_VAR_SYM_ENTRY(g_XX_TestMode),
231        */
232        0
233};
234
235#endif  /* DHL_REGISTER_DEUBG_SYMBOLS */
236
237
238
239#if COMMENT
240____Init____(){}
241#endif
242
243
244DHL_RESULT DHL_PSI_Init(void)
245{
246
247#if DHL_REGISTER_DEUBG_SYMBOLS
248        DHL_DBG_RegisterSymbols(_symbols, DHL_NUMSYMBOLS(_symbols));
249#endif
250
251        /* °¢Á¾ init code.. */
252
253        dhl_psi_init();
254
255        return DHL_OK;
256}
257
258DHL_RESULT DHL_PSI_Uninit(void)
259{
260        dhl_psi_uninit();
261
262        return DHL_OK;
263}
264
265/* end of file */
Note: See TracBrowser for help on using the repository browser.