/* * Copyright 2017 Rockchip Electronics Co. LTD * * 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. */ #ifndef __HAL_M4VD_COM_H__ #define __HAL_M4VD_COM_H__ #include "mpp_hal.h" #include "mpp_device.h" #include "mpg4d_syntax.h" #define MPG4D_HAL_DBG_REG_PUT (0x00000001) #define MPG4D_HAL_DBG_REG_GET (0x00000002) extern RK_U32 hal_mpg4d_debug; #define MPEG4_MAX_MV_BUF_SIZE ((1920/16)*(1088/16)*4*sizeof(RK_U32)) typedef struct mpeg4d_reg_context { MppBufSlots frm_slots; MppBufSlots pkt_slots; MppBufferGroup group; MppCbCtx *dec_cb; MppDev dev; // save fd for curr/ref0/ref1 for reg_gen RK_S32 fd_curr; RK_S32 fd_ref0; RK_S32 fd_ref1; RK_U32 bitstrm_len; // mv info buffer // NOTE: mv buffer fix to 1080p size for convenience MppBuffer mv_buf; MppBuffer qp_table; void* regs; MppHalApi hal_api; } hal_mpg4_ctx; extern RK_U8 default_inter_matrix[64]; extern RK_U8 default_intra_matrix[64]; extern void vpu_mpg4d_get_buffer_by_index(hal_mpg4_ctx *ctx, RK_S32 index, MppBuffer *buffer); #endif /*__HAL_M4VD_COM_H__*/