/******************************************************************************
*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*****************************************************************************
* Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
*/
#ifndef _IH264D_MEM_REQUEST_H_
#define _IH264D_MEM_REQUEST_H_
/*!
***************************************************************************
* \file ih264d_mem_request.h
*
* \brief
* This file contains declarations and data structures of the API's which
* required to interact with Picture Buffer.
*
*
* \date
* 11/12/2002
*
* \author NS
***************************************************************************/
#include "ih264_typedefs.h"
#include "ih264_macros.h"
#include "ih264_platform_macros.h"
#include "ih264d_defs.h"
#include "ih264d_structs.h"
#define MAX_MEM_BLOCKS 64 + 8
struct MemBlock
{
void ** v_memLocation; /** memory location where address of allocated memory should be stored*/
UWORD32 u4_mem_size; /** Size of the memory block */
};
struct MemReq
{
UWORD32 u4_num_memBlocks; /** Number of memory blocks */
struct MemBlock s_memBlock[MAX_MEM_BLOCKS]; /** Pointer to the first memory block */
};
struct PicMemBlock
{
void * buf1; /** memory location for buf1 */
void * buf2; /** memory location for buf2 */
void * buf3; /** memory location for buf3 */
};
struct PicMemReq
{
WORD32 i4_num_pic_memBlocks; /** Number of memory blocks */
UWORD32 u4_size1; /** Size of the buf1 in PicMemBlock */
UWORD32 u4_size2; /** Size of the buf2 in PicMemBlock */
UWORD32 u4_size3; /** Size of the buf3 in PicMemBlock */
struct PicMemBlock s_PicMemBlock[MAX_DISP_BUFS_NEW];
};
WORD32 ih264d_create_pic_buffers(UWORD8 u1_num_of_buf,
dec_struct_t *ps_dec);
WORD32 ih264d_create_mv_bank(void * pv_codec_handle,
UWORD32 u4_wd,
UWORD32 u4_ht);
WORD16 ih264d_allocate_dynamic_bufs(dec_struct_t * ps_dec);
#endif /* _IH264D_MEM_REQUEST_H_ */