summaryrefslogtreecommitdiff
path: root/drivers/amvdec_ports/vdec_drv_base.h (plain)
blob: e192b203a6f22b302d2dea4eb8775fd545f92dec
1/*
2* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful, but WITHOUT
10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12* more details.
13*
14* You should have received a copy of the GNU General Public License along
15* with this program; if not, write to the Free Software Foundation, Inc.,
16* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17*
18* Description:
19*/
20#ifndef _VDEC_DRV_BASE_
21#define _VDEC_DRV_BASE_
22
23#include "aml_vcodec_drv.h"
24
25#include "vdec_drv_if.h"
26
27struct vdec_common_if {
28 /**
29 * (*init)() - initialize decode driver
30 * @ctx : [in] aml v4l2 context
31 * @h_vdec : [out] driver handle
32 */
33 int (*init)(struct aml_vcodec_ctx *ctx, unsigned long *h_vdec);
34
35 int (*probe)(unsigned long h_vdec,
36 struct aml_vcodec_mem *bs, void *out);
37
38 /**
39 * (*decode)() - trigger decode
40 * @h_vdec : [in] driver handle
41 * @bs : [in] input bitstream
42 * @fb : [in] frame buffer to store decoded frame
43 * @res_chg : [out] resolution change happen
44 */
45 int (*decode)(unsigned long h_vdec, struct aml_vcodec_mem *bs,
46 u64 pts, bool *res_chg);
47
48 /**
49 * (*get_param)() - get driver's parameter
50 * @h_vdec : [in] driver handle
51 * @type : [in] input parameter type
52 * @out : [out] buffer to store query result
53 */
54 int (*get_param)(unsigned long h_vdec,
55 enum vdec_get_param_type type, void *out);
56
57 /**
58 * (*set_param)() - set driver's parameter
59 * @h_vdec : [in] driver handle
60 * @type : [in] input parameter type
61 * @in : [in] buffer to store query result
62 */
63 int (*set_param)(unsigned long h_vdec,
64 enum vdec_set_param_type type, void *in);
65
66 /**
67 * (*deinit)() - deinitialize driver.
68 * @h_vdec : [in] driver handle to be deinit
69 */
70 void (*deinit)(unsigned long h_vdec);
71};
72
73#endif
74