1*c83a76b0SSuyog Pawar /******************************************************************************
2*c83a76b0SSuyog Pawar *
3*c83a76b0SSuyog Pawar * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
4*c83a76b0SSuyog Pawar *
5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License");
6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License.
7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at:
8*c83a76b0SSuyog Pawar *
9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0
10*c83a76b0SSuyog Pawar *
11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software
12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS,
13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and
15*c83a76b0SSuyog Pawar * limitations under the License.
16*c83a76b0SSuyog Pawar *
17*c83a76b0SSuyog Pawar ******************************************************************************/
18*c83a76b0SSuyog Pawar /**
19*c83a76b0SSuyog Pawar *******************************************************************************
20*c83a76b0SSuyog Pawar * @file
21*c83a76b0SSuyog Pawar * ihevc_buf_mgr.c
22*c83a76b0SSuyog Pawar *
23*c83a76b0SSuyog Pawar * @brief
24*c83a76b0SSuyog Pawar * Contains function definitions for buffer management
25*c83a76b0SSuyog Pawar *
26*c83a76b0SSuyog Pawar * @author
27*c83a76b0SSuyog Pawar * Srinivas T
28*c83a76b0SSuyog Pawar *
29*c83a76b0SSuyog Pawar * @par List of Functions:
30*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_init()
31*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_add()
32*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_get_next_free()
33*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_check_free()
34*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_release()
35*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_set_status()
36*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_get_status()
37*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_get_buf()
38*c83a76b0SSuyog Pawar * - ihevc_buf_mgr_get_num_active_buf()
39*c83a76b0SSuyog Pawar *
40*c83a76b0SSuyog Pawar * @remarks
41*c83a76b0SSuyog Pawar * None
42*c83a76b0SSuyog Pawar *
43*c83a76b0SSuyog Pawar *******************************************************************************
44*c83a76b0SSuyog Pawar */
45*c83a76b0SSuyog Pawar #include <stdlib.h>
46*c83a76b0SSuyog Pawar #include <assert.h>
47*c83a76b0SSuyog Pawar #include "ihevc_typedefs.h"
48*c83a76b0SSuyog Pawar #include "ihevc_macros.h"
49*c83a76b0SSuyog Pawar #include "ihevc_func_selector.h"
50*c83a76b0SSuyog Pawar #include "ihevc_buf_mgr.h"
51*c83a76b0SSuyog Pawar #include "ihevc_debug.h"
52*c83a76b0SSuyog Pawar
53*c83a76b0SSuyog Pawar
54*c83a76b0SSuyog Pawar /**
55*c83a76b0SSuyog Pawar *******************************************************************************
56*c83a76b0SSuyog Pawar *
57*c83a76b0SSuyog Pawar * @brief
58*c83a76b0SSuyog Pawar * Buffer manager initialization function.
59*c83a76b0SSuyog Pawar *
60*c83a76b0SSuyog Pawar * @par Description:
61*c83a76b0SSuyog Pawar * Initializes the buffer manager structure
62*c83a76b0SSuyog Pawar *
63*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
64*c83a76b0SSuyog Pawar * Pointer to the buffer manager
65*c83a76b0SSuyog Pawar *
66*c83a76b0SSuyog Pawar * @returns
67*c83a76b0SSuyog Pawar *
68*c83a76b0SSuyog Pawar * @remarks
69*c83a76b0SSuyog Pawar * None
70*c83a76b0SSuyog Pawar *
71*c83a76b0SSuyog Pawar *******************************************************************************
72*c83a76b0SSuyog Pawar */
73*c83a76b0SSuyog Pawar
ihevc_buf_mgr_init(buf_mgr_t * ps_buf_mgr)74*c83a76b0SSuyog Pawar void ihevc_buf_mgr_init(
75*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr)
76*c83a76b0SSuyog Pawar {
77*c83a76b0SSuyog Pawar WORD32 id;
78*c83a76b0SSuyog Pawar
79*c83a76b0SSuyog Pawar ps_buf_mgr->u4_max_buf_cnt = BUF_MGR_MAX_CNT;
80*c83a76b0SSuyog Pawar ps_buf_mgr->u4_active_buf_cnt = 0;
81*c83a76b0SSuyog Pawar
82*c83a76b0SSuyog Pawar for(id = 0; id < BUF_MGR_MAX_CNT; id++)
83*c83a76b0SSuyog Pawar {
84*c83a76b0SSuyog Pawar ps_buf_mgr->au4_status[id] = 0;
85*c83a76b0SSuyog Pawar ps_buf_mgr->apv_ptr[id] = NULL;
86*c83a76b0SSuyog Pawar }
87*c83a76b0SSuyog Pawar }
88*c83a76b0SSuyog Pawar
89*c83a76b0SSuyog Pawar
90*c83a76b0SSuyog Pawar /**
91*c83a76b0SSuyog Pawar *******************************************************************************
92*c83a76b0SSuyog Pawar *
93*c83a76b0SSuyog Pawar * @brief
94*c83a76b0SSuyog Pawar * Adds and increments the buffer and buffer count.
95*c83a76b0SSuyog Pawar *
96*c83a76b0SSuyog Pawar * @par Description:
97*c83a76b0SSuyog Pawar * Adds a buffer to the buffer manager if it is not already present and
98*c83a76b0SSuyog Pawar * increments the active buffer count
99*c83a76b0SSuyog Pawar *
100*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
101*c83a76b0SSuyog Pawar * Pointer to the buffer manager
102*c83a76b0SSuyog Pawar *
103*c83a76b0SSuyog Pawar * @param[in] pv_ptr
104*c83a76b0SSuyog Pawar * Pointer to the buffer to be added
105*c83a76b0SSuyog Pawar *
106*c83a76b0SSuyog Pawar * @returns Returns 0 on success, -1 otherwise
107*c83a76b0SSuyog Pawar *
108*c83a76b0SSuyog Pawar * @remarks
109*c83a76b0SSuyog Pawar * None
110*c83a76b0SSuyog Pawar *
111*c83a76b0SSuyog Pawar *******************************************************************************
112*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_add(buf_mgr_t * ps_buf_mgr,void * pv_ptr,WORD32 buf_id)113*c83a76b0SSuyog Pawar WORD32 ihevc_buf_mgr_add(
114*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr,
115*c83a76b0SSuyog Pawar void *pv_ptr,
116*c83a76b0SSuyog Pawar WORD32 buf_id)
117*c83a76b0SSuyog Pawar {
118*c83a76b0SSuyog Pawar
119*c83a76b0SSuyog Pawar /* Check if buffer ID is within allowed range */
120*c83a76b0SSuyog Pawar if(buf_id >= (WORD32)ps_buf_mgr->u4_max_buf_cnt)
121*c83a76b0SSuyog Pawar {
122*c83a76b0SSuyog Pawar return (-1);
123*c83a76b0SSuyog Pawar }
124*c83a76b0SSuyog Pawar
125*c83a76b0SSuyog Pawar /* Check if the current ID is being used to hold some other buffer */
126*c83a76b0SSuyog Pawar if((ps_buf_mgr->apv_ptr[buf_id] != NULL) &&
127*c83a76b0SSuyog Pawar (ps_buf_mgr->apv_ptr[buf_id] != pv_ptr))
128*c83a76b0SSuyog Pawar {
129*c83a76b0SSuyog Pawar return (-1);
130*c83a76b0SSuyog Pawar }
131*c83a76b0SSuyog Pawar ps_buf_mgr->apv_ptr[buf_id] = pv_ptr;
132*c83a76b0SSuyog Pawar
133*c83a76b0SSuyog Pawar return 0;
134*c83a76b0SSuyog Pawar }
135*c83a76b0SSuyog Pawar
136*c83a76b0SSuyog Pawar
137*c83a76b0SSuyog Pawar /**
138*c83a76b0SSuyog Pawar *******************************************************************************
139*c83a76b0SSuyog Pawar *
140*c83a76b0SSuyog Pawar * @brief
141*c83a76b0SSuyog Pawar * Gets the next free buffer.
142*c83a76b0SSuyog Pawar *
143*c83a76b0SSuyog Pawar * @par Description:
144*c83a76b0SSuyog Pawar * Returns the next free buffer available and sets the corresponding status
145*c83a76b0SSuyog Pawar * to DEC
146*c83a76b0SSuyog Pawar *
147*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
148*c83a76b0SSuyog Pawar * Pointer to the buffer manager
149*c83a76b0SSuyog Pawar *
150*c83a76b0SSuyog Pawar * @param[in] pi4_buf_id
151*c83a76b0SSuyog Pawar * Pointer to the id of the free buffer
152*c83a76b0SSuyog Pawar *
153*c83a76b0SSuyog Pawar * @returns Pointer to the free buffer
154*c83a76b0SSuyog Pawar *
155*c83a76b0SSuyog Pawar * @remarks
156*c83a76b0SSuyog Pawar * None
157*c83a76b0SSuyog Pawar *
158*c83a76b0SSuyog Pawar *******************************************************************************
159*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_get_next_free(buf_mgr_t * ps_buf_mgr,WORD32 * pi4_buf_id)160*c83a76b0SSuyog Pawar void* ihevc_buf_mgr_get_next_free(
161*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr,
162*c83a76b0SSuyog Pawar WORD32 *pi4_buf_id)
163*c83a76b0SSuyog Pawar {
164*c83a76b0SSuyog Pawar WORD32 id;
165*c83a76b0SSuyog Pawar void *pv_ret_ptr;
166*c83a76b0SSuyog Pawar
167*c83a76b0SSuyog Pawar pv_ret_ptr = NULL;
168*c83a76b0SSuyog Pawar for(id = 0; id < (WORD32)ps_buf_mgr->u4_max_buf_cnt; id++)
169*c83a76b0SSuyog Pawar {
170*c83a76b0SSuyog Pawar ASSERT(ps_buf_mgr->au4_status[id] != 2);
171*c83a76b0SSuyog Pawar
172*c83a76b0SSuyog Pawar /* Check if the buffer is non-null and status is zero */
173*c83a76b0SSuyog Pawar if((ps_buf_mgr->au4_status[id] == 0) && (ps_buf_mgr->apv_ptr[id]))
174*c83a76b0SSuyog Pawar {
175*c83a76b0SSuyog Pawar *pi4_buf_id = id;
176*c83a76b0SSuyog Pawar /* DEC is set to 1 */
177*c83a76b0SSuyog Pawar ps_buf_mgr->au4_status[id] = 1;
178*c83a76b0SSuyog Pawar pv_ret_ptr = ps_buf_mgr->apv_ptr[id];
179*c83a76b0SSuyog Pawar break;
180*c83a76b0SSuyog Pawar }
181*c83a76b0SSuyog Pawar }
182*c83a76b0SSuyog Pawar
183*c83a76b0SSuyog Pawar return pv_ret_ptr;
184*c83a76b0SSuyog Pawar }
185*c83a76b0SSuyog Pawar
186*c83a76b0SSuyog Pawar
187*c83a76b0SSuyog Pawar /**
188*c83a76b0SSuyog Pawar *******************************************************************************
189*c83a76b0SSuyog Pawar *
190*c83a76b0SSuyog Pawar * @brief
191*c83a76b0SSuyog Pawar * Checks the buffer manager for free buffers available.
192*c83a76b0SSuyog Pawar *
193*c83a76b0SSuyog Pawar * @par Description:
194*c83a76b0SSuyog Pawar * Checks if there are any free buffers available
195*c83a76b0SSuyog Pawar *
196*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
197*c83a76b0SSuyog Pawar * Pointer to the buffer manager
198*c83a76b0SSuyog Pawar *
199*c83a76b0SSuyog Pawar * @returns Returns 0 if available, -1 otherwise
200*c83a76b0SSuyog Pawar *
201*c83a76b0SSuyog Pawar * @remarks
202*c83a76b0SSuyog Pawar * None
203*c83a76b0SSuyog Pawar *
204*c83a76b0SSuyog Pawar *******************************************************************************
205*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_check_free(buf_mgr_t * ps_buf_mgr)206*c83a76b0SSuyog Pawar WORD32 ihevc_buf_mgr_check_free(
207*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr)
208*c83a76b0SSuyog Pawar {
209*c83a76b0SSuyog Pawar UWORD32 id;
210*c83a76b0SSuyog Pawar
211*c83a76b0SSuyog Pawar for(id = 0; id < ps_buf_mgr->u4_max_buf_cnt; id++)
212*c83a76b0SSuyog Pawar {
213*c83a76b0SSuyog Pawar ASSERT(ps_buf_mgr->au4_status[id] != 2);
214*c83a76b0SSuyog Pawar
215*c83a76b0SSuyog Pawar if((ps_buf_mgr->au4_status[id] == 0) &&
216*c83a76b0SSuyog Pawar (ps_buf_mgr->apv_ptr[id]))
217*c83a76b0SSuyog Pawar {
218*c83a76b0SSuyog Pawar return 1;
219*c83a76b0SSuyog Pawar }
220*c83a76b0SSuyog Pawar }
221*c83a76b0SSuyog Pawar
222*c83a76b0SSuyog Pawar return 0;
223*c83a76b0SSuyog Pawar
224*c83a76b0SSuyog Pawar }
225*c83a76b0SSuyog Pawar
226*c83a76b0SSuyog Pawar
227*c83a76b0SSuyog Pawar /**
228*c83a76b0SSuyog Pawar *******************************************************************************
229*c83a76b0SSuyog Pawar *
230*c83a76b0SSuyog Pawar * @brief
231*c83a76b0SSuyog Pawar * Resets the status bits.
232*c83a76b0SSuyog Pawar *
233*c83a76b0SSuyog Pawar * @par Description:
234*c83a76b0SSuyog Pawar * resets the status bits that the mask contains (status corresponding to
235*c83a76b0SSuyog Pawar * the id)
236*c83a76b0SSuyog Pawar *
237*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
238*c83a76b0SSuyog Pawar * Pointer to the buffer manager
239*c83a76b0SSuyog Pawar *
240*c83a76b0SSuyog Pawar * @param[in] buf_id
241*c83a76b0SSuyog Pawar * ID of the buffer status to be released
242*c83a76b0SSuyog Pawar *
243*c83a76b0SSuyog Pawar * @param[in] mask
244*c83a76b0SSuyog Pawar * Contains the bits that are to be reset
245*c83a76b0SSuyog Pawar *
246*c83a76b0SSuyog Pawar * @returns 0 if success, -1 otherwise
247*c83a76b0SSuyog Pawar *
248*c83a76b0SSuyog Pawar * @remarks
249*c83a76b0SSuyog Pawar * None
250*c83a76b0SSuyog Pawar *
251*c83a76b0SSuyog Pawar *******************************************************************************
252*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_release(buf_mgr_t * ps_buf_mgr,WORD32 buf_id,UWORD32 mask)253*c83a76b0SSuyog Pawar WORD32 ihevc_buf_mgr_release(
254*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr,
255*c83a76b0SSuyog Pawar WORD32 buf_id,
256*c83a76b0SSuyog Pawar UWORD32 mask)
257*c83a76b0SSuyog Pawar {
258*c83a76b0SSuyog Pawar /* If the given id is pointing to an id which is not yet added */
259*c83a76b0SSuyog Pawar if(buf_id >= (WORD32)ps_buf_mgr->u4_max_buf_cnt)
260*c83a76b0SSuyog Pawar {
261*c83a76b0SSuyog Pawar return (-1);
262*c83a76b0SSuyog Pawar }
263*c83a76b0SSuyog Pawar
264*c83a76b0SSuyog Pawar ps_buf_mgr->au4_status[buf_id] &= ~mask;
265*c83a76b0SSuyog Pawar ASSERT(ps_buf_mgr->au4_status[buf_id] != 2);
266*c83a76b0SSuyog Pawar
267*c83a76b0SSuyog Pawar /* If both the REF and DISP are zero, DEC is set to zero */
268*c83a76b0SSuyog Pawar if(ps_buf_mgr->au4_status[buf_id] == 1)
269*c83a76b0SSuyog Pawar {
270*c83a76b0SSuyog Pawar ps_buf_mgr->au4_status[buf_id] = 0;
271*c83a76b0SSuyog Pawar }
272*c83a76b0SSuyog Pawar
273*c83a76b0SSuyog Pawar return 0;
274*c83a76b0SSuyog Pawar }
275*c83a76b0SSuyog Pawar
276*c83a76b0SSuyog Pawar
277*c83a76b0SSuyog Pawar /**
278*c83a76b0SSuyog Pawar *******************************************************************************
279*c83a76b0SSuyog Pawar *
280*c83a76b0SSuyog Pawar * @brief
281*c83a76b0SSuyog Pawar * Sets the status bit.
282*c83a76b0SSuyog Pawar *
283*c83a76b0SSuyog Pawar * @par Description:
284*c83a76b0SSuyog Pawar * sets the status bits that the mask contains (status corresponding to the
285*c83a76b0SSuyog Pawar * id)
286*c83a76b0SSuyog Pawar *
287*c83a76b0SSuyog Pawar *
288*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
289*c83a76b0SSuyog Pawar * Pointer to the buffer manager
290*c83a76b0SSuyog Pawar *
291*c83a76b0SSuyog Pawar * @param[in] buf_id
292*c83a76b0SSuyog Pawar * ID of the buffer whose status needs to be modified
293*c83a76b0SSuyog Pawar *
294*c83a76b0SSuyog Pawar *
295*c83a76b0SSuyog Pawar * @param[in] mask
296*c83a76b0SSuyog Pawar * Contains the bits that are to be set
297*c83a76b0SSuyog Pawar *
298*c83a76b0SSuyog Pawar * @returns 0 if success, -1 otherwise
299*c83a76b0SSuyog Pawar *
300*c83a76b0SSuyog Pawar * @remarks
301*c83a76b0SSuyog Pawar * None
302*c83a76b0SSuyog Pawar *
303*c83a76b0SSuyog Pawar *******************************************************************************
304*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_set_status(buf_mgr_t * ps_buf_mgr,WORD32 buf_id,UWORD32 mask)305*c83a76b0SSuyog Pawar WORD32 ihevc_buf_mgr_set_status(
306*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr,
307*c83a76b0SSuyog Pawar WORD32 buf_id,
308*c83a76b0SSuyog Pawar UWORD32 mask)
309*c83a76b0SSuyog Pawar {
310*c83a76b0SSuyog Pawar if(buf_id >= (WORD32)ps_buf_mgr->u4_max_buf_cnt)
311*c83a76b0SSuyog Pawar {
312*c83a76b0SSuyog Pawar return (-1);
313*c83a76b0SSuyog Pawar }
314*c83a76b0SSuyog Pawar
315*c83a76b0SSuyog Pawar
316*c83a76b0SSuyog Pawar if((ps_buf_mgr->au4_status[buf_id] & mask) != 0)
317*c83a76b0SSuyog Pawar {
318*c83a76b0SSuyog Pawar return (-1);
319*c83a76b0SSuyog Pawar }
320*c83a76b0SSuyog Pawar
321*c83a76b0SSuyog Pawar ps_buf_mgr->au4_status[buf_id] |= mask;
322*c83a76b0SSuyog Pawar ASSERT(ps_buf_mgr->au4_status[buf_id] != 2);
323*c83a76b0SSuyog Pawar return 0;
324*c83a76b0SSuyog Pawar }
325*c83a76b0SSuyog Pawar
326*c83a76b0SSuyog Pawar
327*c83a76b0SSuyog Pawar /**
328*c83a76b0SSuyog Pawar *******************************************************************************
329*c83a76b0SSuyog Pawar *
330*c83a76b0SSuyog Pawar * @brief
331*c83a76b0SSuyog Pawar * Returns the status of the buffer.
332*c83a76b0SSuyog Pawar *
333*c83a76b0SSuyog Pawar * @par Description:
334*c83a76b0SSuyog Pawar * Returns the status of the buffer corresponding to the id
335*c83a76b0SSuyog Pawar *
336*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
337*c83a76b0SSuyog Pawar * Pointer to the buffer manager
338*c83a76b0SSuyog Pawar *
339*c83a76b0SSuyog Pawar * @param[in] buf_id
340*c83a76b0SSuyog Pawar * ID of the buffer status required
341*c83a76b0SSuyog Pawar *
342*c83a76b0SSuyog Pawar * @returns Status of the buffer corresponding to the id
343*c83a76b0SSuyog Pawar *
344*c83a76b0SSuyog Pawar * @remarks
345*c83a76b0SSuyog Pawar * None
346*c83a76b0SSuyog Pawar *
347*c83a76b0SSuyog Pawar *******************************************************************************
348*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_get_status(buf_mgr_t * ps_buf_mgr,WORD32 buf_id)349*c83a76b0SSuyog Pawar UWORD32 ihevc_buf_mgr_get_status(
350*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr,
351*c83a76b0SSuyog Pawar WORD32 buf_id)
352*c83a76b0SSuyog Pawar {
353*c83a76b0SSuyog Pawar return ps_buf_mgr->au4_status[buf_id];
354*c83a76b0SSuyog Pawar }
355*c83a76b0SSuyog Pawar
356*c83a76b0SSuyog Pawar
357*c83a76b0SSuyog Pawar /**
358*c83a76b0SSuyog Pawar *******************************************************************************
359*c83a76b0SSuyog Pawar *
360*c83a76b0SSuyog Pawar * @brief
361*c83a76b0SSuyog Pawar * Gets the buffer from the buffer manager
362*c83a76b0SSuyog Pawar *
363*c83a76b0SSuyog Pawar * @par Description:
364*c83a76b0SSuyog Pawar * Returns the pointer to the buffer corresponding to the id
365*c83a76b0SSuyog Pawar *
366*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
367*c83a76b0SSuyog Pawar * Pointer to the buffer manager
368*c83a76b0SSuyog Pawar *
369*c83a76b0SSuyog Pawar * @param[in] buf_id
370*c83a76b0SSuyog Pawar * ID of the buffer required
371*c83a76b0SSuyog Pawar *
372*c83a76b0SSuyog Pawar * @returns Pointer to the buffer required
373*c83a76b0SSuyog Pawar *
374*c83a76b0SSuyog Pawar * @remarks
375*c83a76b0SSuyog Pawar * None
376*c83a76b0SSuyog Pawar *
377*c83a76b0SSuyog Pawar *******************************************************************************
378*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_get_buf(buf_mgr_t * ps_buf_mgr,WORD32 buf_id)379*c83a76b0SSuyog Pawar void* ihevc_buf_mgr_get_buf(
380*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr,
381*c83a76b0SSuyog Pawar WORD32 buf_id)
382*c83a76b0SSuyog Pawar {
383*c83a76b0SSuyog Pawar return ps_buf_mgr->apv_ptr[buf_id];
384*c83a76b0SSuyog Pawar }
385*c83a76b0SSuyog Pawar
386*c83a76b0SSuyog Pawar
387*c83a76b0SSuyog Pawar /**
388*c83a76b0SSuyog Pawar *******************************************************************************
389*c83a76b0SSuyog Pawar *
390*c83a76b0SSuyog Pawar * @brief
391*c83a76b0SSuyog Pawar * Gets the no.of active buffer
392*c83a76b0SSuyog Pawar *
393*c83a76b0SSuyog Pawar * @par Description:
394*c83a76b0SSuyog Pawar * Return the number of active buffers in the buffer manager
395*c83a76b0SSuyog Pawar *
396*c83a76b0SSuyog Pawar * @param[in] ps_buf_mgr
397*c83a76b0SSuyog Pawar * Pointer to the buffer manager
398*c83a76b0SSuyog Pawar *
399*c83a76b0SSuyog Pawar * @returns number of active buffers
400*c83a76b0SSuyog Pawar *
401*c83a76b0SSuyog Pawar * @remarks
402*c83a76b0SSuyog Pawar * None
403*c83a76b0SSuyog Pawar *
404*c83a76b0SSuyog Pawar *******************************************************************************
405*c83a76b0SSuyog Pawar */
ihevc_buf_mgr_get_num_active_buf(buf_mgr_t * ps_buf_mgr)406*c83a76b0SSuyog Pawar UWORD32 ihevc_buf_mgr_get_num_active_buf(
407*c83a76b0SSuyog Pawar buf_mgr_t *ps_buf_mgr)
408*c83a76b0SSuyog Pawar {
409*c83a76b0SSuyog Pawar return ps_buf_mgr->u4_max_buf_cnt;
410*c83a76b0SSuyog Pawar }
411