source: svn/newcon3bcm2_21bu/BSEAV/lib/mpeg2_ts_parse/ts_pat.c

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 2.3 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2008, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: ts_pat.c $
11 * $brcm_Revision: 2 $
12 * $brcm_Date: 1/10/08 12:36p $
13 *
14 * [File Description:]
15 *
16 * Revision History:
17 *
18 * $brcm_Log: /BSEAV/lib/mpeg2_ts_parse/ts_pat.c $
19 *
20 * 2   1/10/08 12:36p jtna
21 * PR38353: Fix crash when tuning to QPSK channel. TS_PAT_getNumPrograms()
22 * should not be returning signed values.
23 *
24 * 1   2/7/05 11:29p dlwin
25 * Merge down for release 2005_REFSW_MERGETOMAIN:
26 *
27 * Irvine_BSEAVSW_Devel/5   7/6/04 3:53p erickson
28 * PR11771: settop api dataflow redesign
29 *
30 * Irvine_BSEAVSW_Devel/4   5/4/04 1:52p erickson
31 * PR10938: added bounds checking and PMT and PAT validation in order to
32 * prevent segfaults on bad data
33 *
34 * Irvine_BSEAVSW_Devel/3   2/4/04 9:56a erickson
35 * PR9217: converted BDBG_ASSERT calls to CHECK calls. Don't assert on bad
36 * data.
37 *
38 * Irvine_BSEAVSW_Devel/2   9/8/03 10:04a marcusk
39 * Added routines to get the number of things.
40 *
41 * Irvine_BSEAVSW_Devel/1   8/29/03 5:05p marcusk
42 * Initial Version.
43 *
44 ***************************************************************************/
45#include "bstd.h"
46#include "ts_priv.h"
47#include "ts_pat.h"
48BDBG_MODULE(ts_pat);
49
50bool TS_PAT_validate(const uint8_t *buf, unsigned bfrSize)
51{
52        BSTD_UNUSED(bfrSize);
53        return (buf[0] == 0x00);
54}
55
56BERR_Code TS_PAT_getProgram( const uint8_t *buf, unsigned bfrSize, int programNum, TS_PAT_program *p_program )
57{
58        int byteOffset = TS_PSI_LAST_SECTION_NUMBER_OFFSET+1;
59
60        byteOffset += programNum*4;
61
62        if( byteOffset >= TS_PSI_MAX_BYTE_OFFSET(buf) || byteOffset >= (int)bfrSize)
63        {
64                return BERR_INVALID_PARAMETER;
65        }
66
67        p_program->program_number = TS_READ_16( &buf[byteOffset] );
68        p_program->PID = (uint16_t)(TS_READ_16( &buf[byteOffset+2] ) & 0x1FFF);
69
70        return BERR_SUCCESS;
71}
72
73uint8_t TS_PAT_getNumPrograms( const uint8_t *buf)
74{
75        return (TS_PSI_MAX_BYTE_OFFSET(buf)-(TS_PSI_LAST_SECTION_NUMBER_OFFSET+1))/4;
76}
Note: See TracBrowser for help on using the repository browser.