/****************************************************************************** * * 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_ */