/* * Copyright 2020 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_VP9D_CTX_H__ #define __HAL_VP9D_CTX_H__ #include "mpp_device.h" #include "mpp_hal.h" #include "hal_bufs.h" #include "vdpu34x_com.h" #define MAX_GEN_REG 3 typedef struct Vp9dLastInfo_t { RK_S32 abs_delta_last; RK_S8 last_ref_deltas[4]; RK_S8 last_mode_deltas[2]; RK_U8 segmentation_enable_flag_last; RK_U8 last_show_frame; RK_U8 last_intra_only; RK_U32 last_width; RK_U32 last_height; RK_S16 feature_data[8][4]; RK_U8 feature_mask[8]; } Vp9dLastInfo; typedef struct Vp9dRegBuf_t { RK_S32 use_flag; MppBuffer probe_base; MppBuffer count_base; MppBuffer segid_cur_base; MppBuffer segid_last_base; void *hw_regs; MppBuffer rcb_buf; } Vp9dRegBuf; typedef struct HalVp9dCtx_t { /* for hal api call back */ const MppHalApi *api; /* for hardware info */ MppClientType client_type; RK_U32 hw_id; MppDev dev; MppBufSlots slots; MppBufSlots packet_slots; MppBufferGroup group; MppCbCtx *dec_cb; RK_U32 fast_mode; void* hw_ctx; } HalVp9dCtx; #endif /*__HAL_VP9D_CTX_H__*/