1
2
3
4
5
6
7 #ifndef __MESON_VDEC_HELPERS_H_
8 #define __MESON_VDEC_HELPERS_H_
9
10 #include "vdec.h"
11
12
13
14
15
16
17
18
19 int amvdec_set_canvases(struct amvdec_session *sess,
20 u32 reg_base[], u32 reg_num[]);
21
22
23 u32 amvdec_read_dos(struct amvdec_core *core, u32 reg);
24 void amvdec_write_dos(struct amvdec_core *core, u32 reg, u32 val);
25 void amvdec_write_dos_bits(struct amvdec_core *core, u32 reg, u32 val);
26 void amvdec_clear_dos_bits(struct amvdec_core *core, u32 reg, u32 val);
27 u32 amvdec_read_parser(struct amvdec_core *core, u32 reg);
28 void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val);
29
30
31
32
33
34
35
36
37
38 void amvdec_dst_buf_done_idx(struct amvdec_session *sess, u32 buf_idx,
39 u32 offset, u32 field);
40 void amvdec_dst_buf_done(struct amvdec_session *sess,
41 struct vb2_v4l2_buffer *vbuf, u32 field);
42 void amvdec_dst_buf_done_offset(struct amvdec_session *sess,
43 struct vb2_v4l2_buffer *vbuf,
44 u32 offset, u32 field, bool allow_drop);
45
46
47
48
49
50
51
52
53 void amvdec_add_ts_reorder(struct amvdec_session *sess, u64 ts, u32 offset);
54 void amvdec_remove_ts(struct amvdec_session *sess, u64 ts);
55
56
57
58
59
60
61
62
63 void amvdec_set_par_from_dar(struct amvdec_session *sess,
64 u32 dar_num, u32 dar_den);
65
66
67
68
69
70
71
72
73
74 void amvdec_src_change(struct amvdec_session *sess, u32 width,
75 u32 height, u32 dpb_size);
76
77
78
79
80
81
82 void amvdec_abort(struct amvdec_session *sess);
83 #endif