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