Edit online

数据结构设计

2 Dec 2024
Read time: 2 minute(s)
  • struct aic_dvp
    属于 Driver 层接口,定义了 DVP 控制器的设备管理信息:
    struct aic_dvp {
        struct aic_dvp_config   cfg; /* The configuration of DVP HW */
        struct dvp_out_fmt      fmt; /* The format of output data */
    
        /* Videobuf */
        struct vb_queue         queue;
        struct list_head        active_list;
        unsigned int            sequence;
        unsigned int            streaming;
    };
  • struct aic_dvp_config
    属于 HAL 层接口,定义了媒体数据的配置信息:
    /* Save the configuration information for DVP controller. */
    struct aic_dvp_config {
        /* Input format */
        enum dvp_input          input;
        enum dvp_input_yuv_seq  input_seq;
        u32                     flags;
    
        /* Output format */
        enum dvp_output output;
        u32             width;
        u32             height;
        u32             stride[DVP_PLANE_NUM];
        u32             sizeimage[DVP_PLANE_NUM];
    };

输入输出的数据格式

  • enum dvp_input
    属于 HAL 层接口,定义了 DVP 输入数据的格式:
    enum dvp_input {
        DVP_IN_RAW  = 0,
        DVP_IN_YUV422   = 1,
        DVP_IN_BT656    = 2,
    };
  • enum dvp_input_yuv_seq
    属于 HAL 层接口,定义了 DVP 输入数据的 YUV 格式:
    enum dvp_input_yuv_seq {
        DVP_YUV_DATA_SEQ_YUYV   = 0,
        DVP_YUV_DATA_SEQ_YVYU   = 1,
        DVP_YUV_DATA_SEQ_UYVY   = 2,
        DVP_YUV_DATA_SEQ_VYUY   = 3,
    };
  • enum dvp_output
    属于 HAL 层接口,定义了 DVP 输出数据的格式:
    enum dvp_output {
        DVP_OUT_RAW_PASSTHROUGH     = 0,
        DVP_OUT_YUV422_COMBINED_NV16    = 1,
        DVP_OUT_YUV420_COMBINED_NV12    = 2,
        };