10d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/******************************************************************************
20d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
30d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
40d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
50d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Licensed under the Apache License, Version 2.0 (the "License");
60d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* you may not use this file except in compliance with the License.
70d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* You may obtain a copy of the License at:
80d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
90d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* http://www.apache.org/licenses/LICENSE-2.0
100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Unless required by applicable law or agreed to in writing, software
120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* distributed under the License is distributed on an "AS IS" BASIS,
130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* See the License for the specific language governing permissions and
150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* limitations under the License.
160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************/
180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @file
210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  ihevc_buf_mgr.c
220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Contains function definitions for buffer management
250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @author
270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Srinivas T
280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par List of Functions:
300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_init()
310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_add()
320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_get_next_free()
330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_check_free()
340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_release()
350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_set_status()
360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_get_status()
370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_get_buf()
380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   - ihevc_buf_mgr_get_num_active_buf()
390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include <stdlib.h>
4603ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar#include <assert.h>
470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_typedefs.h"
480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_macros.h"
490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_func_selector.h"
500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_buf_mgr.h"
5103ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar#include "ihevc_debug.h"
520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*      Buffer manager initialization function.
590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*    Initializes the buffer manager structure
620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns
670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarvoid ihevc_buf_mgr_init(
750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr)
760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    WORD32 id;
780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ps_buf_mgr->u4_max_buf_cnt = BUF_MGR_MAX_CNT;
800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ps_buf_mgr->u4_active_buf_cnt = 0;
810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    for(id = 0; id < BUF_MGR_MAX_CNT; id++)
830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        ps_buf_mgr->au4_status[id] = 0;
850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        ps_buf_mgr->apv_ptr[id] = NULL;
860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*       Adds and increments the buffer and buffer count.
950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*     Adds a buffer to the buffer manager if it is not already  present and
980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   increments the  active buffer count
990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
1010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
1020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] pv_ptr
1040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer to be added
1050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  Returns 0 on success, -1 otherwise
1070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
1090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
1100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
1120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
1130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarWORD32 ihevc_buf_mgr_add(
1140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr,
1150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                void *pv_ptr,
1160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 buf_id)
1170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
1180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    /* Check if buffer ID is within allowed range */
1200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if(buf_id >= (WORD32)ps_buf_mgr->u4_max_buf_cnt)
1210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
1220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        return (-1);
1230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
1240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    /* Check if the current ID is being used to hold some other buffer */
1260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if((ps_buf_mgr->apv_ptr[buf_id] != NULL) &&
1270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar       (ps_buf_mgr->apv_ptr[buf_id] != pv_ptr))
1280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
1290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        return (-1);
1300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
1310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ps_buf_mgr->apv_ptr[buf_id] = pv_ptr;
1320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return 0;
1340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
1350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
1380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
1390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
1410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   Gets the next free buffer.
1420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
1440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*     Returns the next free buffer available and sets the  corresponding status
1450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   to DEC
1460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
1480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
1490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] pi4_buf_id
1510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the id of the free buffer
1520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  Pointer to the free buffer
1540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
1560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
1570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
1590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
1600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarvoid* ihevc_buf_mgr_get_next_free(
1610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr,
1620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 *pi4_buf_id)
1630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
1640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    WORD32 id;
1650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    void *pv_ret_ptr;
1660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    pv_ret_ptr = NULL;
1680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    for(id = 0; id < (WORD32)ps_buf_mgr->u4_max_buf_cnt; id++)
1690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
17003ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar        ASSERT(ps_buf_mgr->au4_status[id] != 2);
17103ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar
1720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        /* Check if the buffer is non-null and status is zero */
1730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        if((ps_buf_mgr->au4_status[id] == 0) && (ps_buf_mgr->apv_ptr[id]))
1740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        {
1750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar            *pi4_buf_id = id;
1760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar            /* DEC is set to 1 */
1770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar            ps_buf_mgr->au4_status[id] = 1;
1780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar            pv_ret_ptr = ps_buf_mgr->apv_ptr[id];
1790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar            break;
1800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        }
1810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
1820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return pv_ret_ptr;
1840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
1850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
1880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
1890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
1910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*      Checks the buffer manager for free buffers available.
1920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
1940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Checks if there are any free buffers available
1950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
1970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
1980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
1990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  Returns 0 if available, -1 otherwise
2000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
2020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
2030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
2050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
2060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarWORD32 ihevc_buf_mgr_check_free(
2070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr)
2080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
2090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    UWORD32 id;
2100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    for(id = 0; id < ps_buf_mgr->u4_max_buf_cnt; id++)
2120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
21303ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar        ASSERT(ps_buf_mgr->au4_status[id] != 2);
21403ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar
2150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        if((ps_buf_mgr->au4_status[id] == 0) &&
2160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar           (ps_buf_mgr->apv_ptr[id]))
2170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        {
2180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar            return 1;
2190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        }
2200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
2210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return 0;
2230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
2250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
2280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
2290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
2310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*       Resets the status bits.
2320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
2340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*     resets the status bits that the mask contains (status  corresponding to
2350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*    the id)
2360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
2380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
2390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] buf_id
2410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  ID of the buffer status to be released
2420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] mask
2440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Contains the bits that are to be reset
2450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  0 if success, -1 otherwise
2470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
2490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
2500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
2520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
2530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarWORD32 ihevc_buf_mgr_release(
2540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr,
2550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 buf_id,
2560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD32 mask)
2570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
2580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    /* If the given id is pointing to an id which is not yet added */
2590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if(buf_id >= (WORD32)ps_buf_mgr->u4_max_buf_cnt)
2600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
2610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        return (-1);
2620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
2630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ps_buf_mgr->au4_status[buf_id] &= ~mask;
26503ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar    ASSERT(ps_buf_mgr->au4_status[buf_id] != 2);
2660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    /* If both the REF and DISP are zero, DEC is set to zero */
2680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if(ps_buf_mgr->au4_status[buf_id] == 1)
2690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
2700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        ps_buf_mgr->au4_status[buf_id] = 0;
2710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
2720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return 0;
2740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
2750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
2780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
2790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
2810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*      Sets the status bit.
2820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
2840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*     sets the status bits that the mask contains (status  corresponding to the
2850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*    id)
2860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
2890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
2900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] buf_id
2920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  ID of the buffer whose status needs to be modified
2930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] mask
2960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Contains the bits that are to be set
2970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
2980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  0 if success, -1 otherwise
2990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
3010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
3020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
3040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
3050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarWORD32 ihevc_buf_mgr_set_status(
3060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr,
3070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 buf_id,
3080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD32 mask)
3090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
3100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if(buf_id >= (WORD32)ps_buf_mgr->u4_max_buf_cnt)
3110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
3120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        return (-1);
3130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
3140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if((ps_buf_mgr->au4_status[buf_id] & mask) != 0)
3170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    {
3180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        return (-1);
3190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    }
3200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    ps_buf_mgr->au4_status[buf_id] |= mask;
32203ca7981bfdeff6f3f8d852f8059adef680729daHarish Mahendrakar    ASSERT(ps_buf_mgr->au4_status[buf_id] != 2);
3230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return 0;
3240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
3250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
3280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
3290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
3310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*   Returns the status of the buffer.
3320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
3340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Returns the status of the buffer corresponding to the id
3350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
3370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
3380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] buf_id
3400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  ID of the buffer status required
3410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  Status of the buffer corresponding to the id
3430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
3450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
3460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
3480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
3490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarUWORD32 ihevc_buf_mgr_get_status(
3500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr,
3510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 buf_id)
3520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
3530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return ps_buf_mgr->au4_status[buf_id];
3540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
3550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
3580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
3590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
3610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*      Gets the buffer from the buffer manager
3620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
3640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*        Returns the pointer to the buffer corresponding to the id
3650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
3670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
3680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] buf_id
3700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  ID of the buffer required
3710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  Pointer to the buffer required
3730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
3750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
3760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
3780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
3790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarvoid* ihevc_buf_mgr_get_buf(
3800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr,
3810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 buf_id)
3820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
3830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return ps_buf_mgr->apv_ptr[buf_id];
3840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
3850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
3880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
3890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
3910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*        Gets the no.of active buffer
3920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description:
3940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*      Return the number of active buffers in the buffer manager
3950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] ps_buf_mgr
3970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Pointer to the buffer manager
3980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
3990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns  number of active buffers
4000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
4010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
4020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
4030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
4040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
4050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
4060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarUWORD32 ihevc_buf_mgr_get_num_active_buf(
4070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                buf_mgr_t *ps_buf_mgr)
4080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{
4090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return ps_buf_mgr->u4_max_buf_cnt;
4100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
411