1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * 3*437bfbebSnyanmisaka * Copyright 2015 Rockchip Electronics Co. LTD 4*437bfbebSnyanmisaka * 5*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 6*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 7*437bfbebSnyanmisaka * You may obtain a copy of the License at 8*437bfbebSnyanmisaka * 9*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 10*437bfbebSnyanmisaka * 11*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 12*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 13*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 15*437bfbebSnyanmisaka * limitations under the License. 16*437bfbebSnyanmisaka */ 17*437bfbebSnyanmisaka 18*437bfbebSnyanmisaka #ifndef _H264D_DPB_H_ 19*437bfbebSnyanmisaka #define _H264D_DPB_H_ 20*437bfbebSnyanmisaka 21*437bfbebSnyanmisaka 22*437bfbebSnyanmisaka #include "rk_type.h" 23*437bfbebSnyanmisaka #include "mpp_err.h" 24*437bfbebSnyanmisaka #include "h264d_global.h" 25*437bfbebSnyanmisaka 26*437bfbebSnyanmisaka 27*437bfbebSnyanmisaka #ifdef __cplusplus 28*437bfbebSnyanmisaka extern "C" { 29*437bfbebSnyanmisaka #endif 30*437bfbebSnyanmisaka 31*437bfbebSnyanmisaka void update_ref_list(H264_DpbBuf_t *p_Dpb); 32*437bfbebSnyanmisaka void update_ltref_list(H264_DpbBuf_t *p_Dpb); 33*437bfbebSnyanmisaka void free_storable_picture(H264_DecCtx_t *p_Dec, H264_StorePic_t *p); 34*437bfbebSnyanmisaka void free_frame_store(H264_DecCtx_t *p_Dec, H264_FrameStore_t *f); 35*437bfbebSnyanmisaka 36*437bfbebSnyanmisaka MPP_RET idr_memory_management(H264_DpbBuf_t *p_Dpb, H264_StorePic_t *p); 37*437bfbebSnyanmisaka MPP_RET insert_picture_in_dpb(H264dVideoCtx_t *p_Vid, H264_FrameStore_t *fs, H264_StorePic_t *p, RK_U8 combine_flag); 38*437bfbebSnyanmisaka MPP_RET store_picture_in_dpb (H264_DpbBuf_t *p_Dpb, H264_StorePic_t *p); 39*437bfbebSnyanmisaka 40*437bfbebSnyanmisaka MPP_RET check_mvc_dpb(H264dVideoCtx_t*p_Vid, H264_DpbBuf_t *p_Dpb_layer_0, H264_DpbBuf_t* p_Dpb_layer_1); 41*437bfbebSnyanmisaka MPP_RET init_dpb (H264dVideoCtx_t *p_Vid, H264_DpbBuf_t *p_Dpb, RK_S32 type); 42*437bfbebSnyanmisaka MPP_RET flush_dpb (H264_DpbBuf_t *p_Dpb, RK_S32 type); 43*437bfbebSnyanmisaka MPP_RET output_dpb (H264_DecCtx_t *p_Dec, H264_DpbBuf_t *p_Dpb); 44*437bfbebSnyanmisaka 45*437bfbebSnyanmisaka void free_dpb (H264_DpbBuf_t *p_Dpb); 46*437bfbebSnyanmisaka MPP_RET exit_picture(H264dVideoCtx_t *p_Vid, H264_StorePic_t **dec_pic); 47*437bfbebSnyanmisaka 48*437bfbebSnyanmisaka RK_U32 get_field_dpb_combine_flag(H264_FrameStore_t *p_last, H264_StorePic_t *p); 49*437bfbebSnyanmisaka H264_StorePic_t *alloc_storable_picture(H264dVideoCtx_t *p_Vid, RK_S32 structure); 50*437bfbebSnyanmisaka 51*437bfbebSnyanmisaka #ifdef __cplusplus 52*437bfbebSnyanmisaka } 53*437bfbebSnyanmisaka #endif 54*437bfbebSnyanmisaka 55*437bfbebSnyanmisaka //======================================== 56*437bfbebSnyanmisaka #endif /* end of _H264D_DPB_H_ */ 57*437bfbebSnyanmisaka 58