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