1f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/* ------------------------------------------------------------------
2f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Copyright (C) 1998-2009 PacketVideo
3f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber *
4f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
5f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * you may not use this file except in compliance with the License.
6f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * You may obtain a copy of the License at
7f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber *
8f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
9f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber *
10f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Unless required by applicable law or agreed to in writing, software
11f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
12f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * express or implied.
14f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * See the License for the specific language governing permissions
15f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * and limitations under the License.
16f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * -------------------------------------------------------------------
17f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber */
18f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*
19f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
20f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Pathname: get_ele_list.c
21f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
22f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
23f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber REVISION HISTORY
24f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
25f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description:  Modified from original shareware code
26f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
27f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description:  Modified to pass variables by reference to eliminate use
28f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber               of global variables.
29f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
30f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: Change to PacketVideo standard, rename variables.
31f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
32f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: Add own header file, make pInputStream second param for speed.
33f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
34f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: Changes per code review:
35f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber              1) Include header file
36f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber              2) Convert to count down
37f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber              3) Add return (not in review)
38f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
39f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description:
40f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber (1) Updated copyright header
41f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber (2) Replaced include of "interface.h" with "e_ProgConfig.h"
42f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
43f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: Replace some instances of getbits to get9_n_lessbits
44f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber              when the number of bits read is 9 or less and get1bits
45f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber              when only 1 bit is read.
46f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
47f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Who:                                 Date:
48f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description:
49f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
50f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber INPUT AND OUTPUT DEFINITIONS
51f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
52f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Inputs:
53f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    pElementList = pointer to an EleList structure - only the field num_ele
54f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber                   needs to be set. Data type pointer to EleList.
55f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
56f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   pInputStream = pointer to a BITS structure, used by the function getbits
57f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber                   to provide data. Data type pointer to BITS
58f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
59f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    enableCPE = boolean value indicating the area to be read contains
60f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber                a channel pair element field. Data type Bool
61f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
62f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
63f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Local Stores/Buffers/Pointers Needed: None
64f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
65f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Global Stores/Buffers/Pointers Needed: None
66f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
67f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Outputs: None
68f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
69f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Pointers and Buffers Modified:
70f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    pElementList contents are updated with information pertaining to channel
71f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        configuration.
72f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
73f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    pInputBuffer contents are updated to the next location to be read from
74f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        the input stream.
75f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
76f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Local Stores Modified: None
77f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
78f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Global Stores Modified: None
79f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
80f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
81f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber FUNCTION DESCRIPTION
82f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
83f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber This function is called several times by get_prog_config() to read in part of
84f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber the program configuration data related to channel setup.
85f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
86f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
87f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber REQUIREMENTS
88f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
89f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber This function shall not have static or global variables.
90f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
91f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
92f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber REFERENCES
93f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
94f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber (1) ISO/IEC 13818-7:1997 Titled "Information technology - Generic coding
95f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   of moving pictures and associated audio information - Part 7: Advanced
96f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   Audio Coding (AAC)", Table 6.21 - Syntax of program_config_element(),
97f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   page 16, and section 8.5 "Program Config Element (PCE)", page 30.
98f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
99f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber (2) MPEG-2 NBC Audio Decoder
100f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   "This software module was originally developed by AT&T, Dolby
101f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   Laboratories, Fraunhofer Gesellschaft IIS in the course of development
102f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   of the MPEG-2 NBC/MPEG-4 Audio standard ISO/IEC 13818-7, 14496-1,2 and
103f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   3. This software module is an implementation of a part of one or more
104f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   MPEG-2 NBC/MPEG-4 Audio tools as specified by the MPEG-2 NBC/MPEG-4
105f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   Audio standard. ISO/IEC gives users of the MPEG-2 NBC/MPEG-4 Audio
106f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   standards free license to this software module or modifications thereof
107f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   for use in hardware or software products claiming conformance to the
108f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   MPEG-2 NBC/MPEG-4 Audio  standards. Those intending to use this software
109f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   module in hardware or software products are advised that this use may
110f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   infringe existing patents. The original developer of this software
111f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   module and his/her company, the subsequent editors and their companies,
112f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   and ISO/IEC have no liability for use of this software module or
113f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   modifications thereof in an implementation. Copyright is not released
114f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   for non MPEG-2 NBC/MPEG-4 Audio conforming products.The original
115f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   developer retains full right to use the code for his/her own purpose,
116f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   assign or donate the code to a third party and to inhibit third party
117f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   from using the code for non MPEG-2 NBC/MPEG-4 Audio conforming products.
118f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   This copyright notice must be included in all copies or derivative
119f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   works."
120f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   Copyright(c)1996.
121f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
122f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
123f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
124f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber PSEUDO-CODE
125f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
126f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    elementCount = pElementList->num_ele;
127f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
128f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    FOR (index = 0; index < elementCount; index++)
129f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        IF (enableCPE != FALSE) THEN
130f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber            pElementList->ele_is_cpe[index] =
131f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber                getbits(LEN_ELE_IS_CPE, pInputStream);
132f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        ELSE
133f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber            pElementList->ele_is_cpe[index] = 0;
134f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        END IF
135f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
136f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        pElementList->ele_tag[index] = getbits(LEN_TAG, pInputStream);
137f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
138f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    END FOR
139f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
140f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    RETURNS nothing
141f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
142f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
143f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber RESOURCES USED
144f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber   When the code is written for a specific target processor the
145f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber     the resources used should be documented below.
146f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
147f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber STACK USAGE: [stack count for this module] + [variable to represent
148f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber          stack usage for each subroutine called]
149f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
150f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber     where: [stack usage variable] = stack usage for [subroutine
151f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber         name] (see [filename].ext)
152f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
153f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber DATA MEMORY USED: x words
154f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
155f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber PROGRAM MEMORY USED: x words
156f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
157f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber CLOCK CYCLES: [cycle count equation for this module] + [variable
158f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber           used to represent cycle count for each subroutine
159f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber           called]
160f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
161f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber     where: [cycle count variable] = cycle count for [subroutine
162f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        name] (see [filename].ext)
163f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
164f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------
165f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber*/
166f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
167f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
168f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
169f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
170f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; INCLUDES
171f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
172f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#include "pv_audio_type_defs.h"
173f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#include "s_elelist.h"
174f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#include "s_bits.h"
175f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#include "e_progconfigconst.h"
176f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#include "ibstream.h"
177f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#include "get_ele_list.h"
178f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
179f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
180f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; MACROS
181f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Define module specific macros here
182f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
183f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
184f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
185f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; DEFINES
186f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Include all pre-processor statements here. Include conditional
187f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; compile variables also.
188f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
189f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
190f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
191f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; LOCAL FUNCTION DEFINITIONS
192f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Function Prototype declaration
193f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
194f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
195f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
196f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; LOCAL STORE/BUFFER/POINTER DEFINITIONS
197f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Variable declaration - defined here and used outside this module
198f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
199f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
200f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
201f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; EXTERNAL FUNCTION REFERENCES
202f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Declare functions defined elsewhere and referenced in this module
203f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
204f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
205f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
206f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES
207f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Declare variables used in this module but defined elsewhere
208f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
209f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
210f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*----------------------------------------------------------------------------
211f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; FUNCTION CODE
212f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/
213f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Hubervoid get_ele_list(
214f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    EleList     *pElementList,
215f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    BITS        *pInputStream,
216f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    const Bool   enableCPE)
217f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber{
218f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    Int index;
219f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    Int *pEleIsCPE;
220f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    Int *pEleTag;
221f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
222f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    pEleIsCPE = &pElementList->ele_is_cpe[0];
223f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    pEleTag   = &pElementList->ele_tag[0];
224f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
225f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    for (index = pElementList->num_ele; index > 0; index--)
226f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    {
227f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        if (enableCPE != FALSE)
228f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        {
229f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber            *pEleIsCPE++ = get1bits(/*LEN_ELE_IS_CPE, */pInputStream);
230f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        }
231f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        else
232f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        {
233f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber            *pEleIsCPE++ = FALSE;
234f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        }
235f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
236f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber        *pEleTag++ = get9_n_lessbits(LEN_TAG, pInputStream);
237f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
238f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    } /* end for (index) */
239f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
240f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber    return;
241f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
242f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber} /* end get_ele_list */
243f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber
244