1、啟動傳輸
static int myuvc_vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
}return 0;}
struct myuvc_streaming_control ;
2、測試引數
static int myuvc_try_streaming_params(struct myuvc_streaming_control *ctrl)
pipe = (set_cur & 0x80) ? usb_rcvctrlpipe(myuvc_udev, 0)
: usb_sndctrlpipe(myuvc_udev, 0);
type |= (set_cur & 0x80) ? usb_dir_in : usb_dir_out;
//進行傳送,ret是接收的位元組數
//usb_control_msg是沒有用到urb的在usb中簡單進行傳送和接收的一種機制,用於少量的資料通訊
ret = usb_control_msg(myuvc_udev, pipe, set_cur, type, vs_probe_control << 8,
0 << 8 | myuvc_streaming_intf, data, size, 5000);
kfree(data);//釋放緩衝區
return (ret < 0) ? ret : 0;}
3、取出引數
static int myuvc_get_streaming_params(struct myuvc_streaming_control *ctrl)
else
done:
kfree(data);//釋放全部快取
return (ret < 0) ? ret : 0;}
4、設定引數
static int myuvc_set_streaming_params(struct myuvc_streaming_control *ctrl)
pipe = (set_cur & 0x80) ? usb_rcvctrlpipe(myuvc_udev, 0)
: usb_sndctrlpipe(myuvc_udev, 0);
type |= (set_cur & 0x80) ? usb_dir_in : usb_dir_out;
//跟try不一樣的是,剛才是 vs_probe_control(列舉嘗試),現在是vs_commit_control(設定引數)
kfree(data);
return (ret < 0) ? ret : 0;}
4、probe函式()
static int myuvc_probe(struct usb_inte***ce *intf,
const struct usb_device_id *id)
else if (cnt == 2)
if (cnt == 2)
return 0;
}
USB攝像頭驅動之實現資料傳輸3 設定引數
1 啟動傳輸 a11 啟動傳輸 參考 uvc video enable video,1 uvc commit video uvc init video static int myuvc vidioc streamon struct file file,void priv,enum v4l2 buf ...
實時攝像頭資料傳輸丟包問題
做乙個實時攝像頭資料傳輸的專案,伺服器可以向客戶端的多個埠傳送資料。問題 如果伺服器只向乙個埠傳送資料,客戶端只接受乙個埠的資料,那麼資料傳輸沒問題。但是如果伺服器向客戶端的多個埠傳送資料,而客戶端之接收乙個埠的資料,這時就會有丟包的現象。是什麼原因?如何解決?解決方法 方法一 多執行緒方式。建立多...
原生Ajax實現非同步資料傳輸
描述 不用前端js框架 如jquery dojo ext proptype等 的原生ajax,非同步實現與後台的資料傳輸,不依賴任何js包 注 所有js 均位於某乙個js檔案中,呼叫函式只需要引入該檔案 1.建立xmlhttprequest物件 全域性變數,記錄建立的xmlhttprequest物件...