1 /*
2 *********************************************************************************************************
3 *                                                    MELIS
4 *                                    the Easy Portable/Player Develop Kits
5 *                                                 WEBCAM Driver
6 *
7 *                                    (c) Copyright 2012-2016, Kingvan.Tong China
8 *                                             All Rights Reserved
9 *
10 * File    : drv_webcam.h
11 * By      : Kingvan
12 * Version : v1.0
13 * Date    : 2012-9-27
14 * Descript:
15 * Update  : date                auther         ver     notes
16 *           2012-9-27 11:09:13  Kingvan.Tong   2.0     build the file.
17 *********************************************************************************************************
18 */
19 #ifndef _DEV_WEBCAM_I_H_
20 #define _DEV_WEBCAM_I_H_
21 #include "hal_sem.h"
22 #include "sunxi_hal_common.h"
23 #include "webcam_linklist_manager.h"
24 
25 typedef enum capture_state_e
26 {
27     CAPTURE_NONE  = 0,
28     CAPTURE_ON,
29     CAPTURE_ON_AND_CALLBACK,
30     CAPTURE_REMOVE,
31 }capture_state;
32 
33 typedef struct STRUCT_WEBCAM_DEV
34 {
35     hal_sem_t webcam_lock;    ///对WEBCAM_DEV操作进行互斥的semaphore
36 
37     __s32                       webcam_frame_num;  //表示有效的webcam_frame的个数, <= WEBCAM_BUFFER_NUM
38     __webcam_frame_t            webcam_frame[WEBCAM_BUFFER_NUM];
39     __webcam_frame_t            *p_webcam_frame[WEBCAM_BUFFER_NUM];
40     __s32                       frame_id_last;//存放上一次index
41     __s32                       frame_id_last_b;//
42     __webcam_linklist_manager_t *full2; //管理帧队列,分为装完的帧,和空闲的帧
43     __webcam_linklist_manager_t *free2;
44     __s32                       diftion;
45     __s64                       pts;  //记录得到的当前的PTS
46     __u32                       pts_flag; //设置PTS的获取方式,aux = 0:CSI自己算PTS; 1:通过回调函数得到PTS; 2.不需要PTS
47     __pCBK_t                    CB_GetPts;
48 
49     __webcam_mode_t             webcam_mode_last;//最后一次的配置,某些场合需要暂存下来
50 
51     capture_state               capture;
52     transport_cb_t              tran_cb;
53     uvc_irq_t                   irq_cb;
54     __u32                       used_addr0;
55     __u32                       used_addr1;
56 
57 }__webcam_dev_t;
58 
59 #endif  /* _DEV_WEBCAM_I_H_ */
60 
61