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
19int amvdec_set_canvases(struct amvdec_session *sess,
20 u32 reg_base[], u32 reg_num[]);
21
22
23u32 amvdec_read_dos(struct amvdec_core *core, u32 reg);
24void amvdec_write_dos(struct amvdec_core *core, u32 reg, u32 val);
25void amvdec_write_dos_bits(struct amvdec_core *core, u32 reg, u32 val);
26void amvdec_clear_dos_bits(struct amvdec_core *core, u32 reg, u32 val);
27u32 amvdec_read_parser(struct amvdec_core *core, u32 reg);
28void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val);
29
30
31
32
33
34
35
36
37
38void amvdec_dst_buf_done_idx(struct amvdec_session *sess, u32 buf_idx,
39 u32 offset, u32 field);
40void amvdec_dst_buf_done(struct amvdec_session *sess,
41 struct vb2_v4l2_buffer *vbuf, u32 field);
42void 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
53void amvdec_add_ts_reorder(struct amvdec_session *sess, u64 ts, u32 offset);
54void amvdec_remove_ts(struct amvdec_session *sess, u64 ts);
55
56
57
58
59
60
61
62
63void 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
74void amvdec_src_change(struct amvdec_session *sess, u32 width,
75 u32 height, u32 dpb_size);
76
77
78
79
80
81
82void amvdec_abort(struct amvdec_session *sess);
83#endif
84