/* SPDX-License-Identifier: GPL-2.0 */ 
 | 
/* 
 | 
 * Copyright (c) 2016 MediaTek Inc. 
 | 
 * Author: PC Chen <pc.chen@mediatek.com> 
 | 
 */ 
 | 
  
 | 
#ifndef _VDEC_DRV_BASE_ 
 | 
#define _VDEC_DRV_BASE_ 
 | 
  
 | 
#include "vdec_drv_if.h" 
 | 
  
 | 
struct vdec_common_if { 
 | 
    /** 
 | 
     * (*init)() - initialize decode driver 
 | 
     * @ctx     : [in] mtk v4l2 context 
 | 
     * @h_vdec  : [out] driver handle 
 | 
     */ 
 | 
    int (*init)(struct mtk_vcodec_ctx *ctx); 
 | 
  
 | 
    /** 
 | 
     * (*decode)() - trigger decode 
 | 
     * @h_vdec  : [in] driver handle 
 | 
     * @bs      : [in] input bitstream 
 | 
     * @fb      : [in] frame buffer to store decoded frame 
 | 
     * @res_chg : [out] resolution change happen 
 | 
     */ 
 | 
    int (*decode)(void *h_vdec, struct mtk_vcodec_mem *bs, 
 | 
              struct vdec_fb *fb, bool *res_chg); 
 | 
  
 | 
    /** 
 | 
     * (*get_param)() - get driver's parameter 
 | 
     * @h_vdec : [in] driver handle 
 | 
     * @type   : [in] input parameter type 
 | 
     * @out    : [out] buffer to store query result 
 | 
     */ 
 | 
    int (*get_param)(void *h_vdec, enum vdec_get_param_type type, 
 | 
             void *out); 
 | 
  
 | 
    /** 
 | 
     * (*deinit)() - deinitialize driver. 
 | 
     * @h_vdec : [in] driver handle to be deinit 
 | 
     */ 
 | 
    void (*deinit)(void *h_vdec); 
 | 
}; 
 | 
  
 | 
#endif 
 |