討論區快速選單
知識庫快速選單
討論區最近新進100則主題 掌握Salesforce雲端管理秘訣
[ 回上頁 ] [ 討論區發言規則 ]
請教usb camera filter driver的問題
更改我的閱讀文章字型大小
作者 : usenineliu(小九) 人氣指數超過10000點
[ 貼文 16 | 人氣 10491 | 評價 0 | 評價/貼文 0 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/8 上午 11:01:52
最近在開發usb camera upper filter driver

目的是希望能夠把任何camera的資料攔截到並做修改

目前已經能在IOCTL_KS_READ_STREAM裡截到data並做修改

但是目前的問題是沒辦法知道我截到的影像格式是RBG或是YUY2等

或是影像的長寬我也沒辦法取得

請問各位先進可以指點我一下嗎?
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人usenineliu註記此篇回應為很有道理 2009/10/10 下午 10:04:47
我以前寫 Virtual Camera Driver 時, 有試過掛 upper filter on UVC driver 上.
而 UVC driver 是以一串 URB packet 形式, 往上傳給 KsProxy.

但當時 google 不到文件來解讀這些 URB packet 的 format. 然後更嚴重的是,
1 張完整的圖, 會被 USB Camera 切成一連串 USB packet 來傳.
在 upper filter 內, 無法靠單一 URB packet 去做複雜的影像處理.

如果是 Hue, Brightness 這類只針對單一 pixel 的處理法, 是不成問題.
但若是人臉辨識, Contast Analysis 這類需要整張圖做統計處理.
只用單一 URB packet 是無法做到.

最後我是寫 user mode 的 camera capture filter, 去攔從 KsProxy 丟出來,
但還沒傳到 render filter 的整張 image. 這樣完整 image 資料到手,
相關的 format 文件更是一大堆. 最重要的是,

user mode 的 capture filter 可以使用 Win32/D3D API, 讓我能用 GPU 來
模擬 DSP, 做複雜的影像處理. Win7 上已經充分運用 CPU+GPU 的異質運算.
並提供一組 API 來讓 programmer 使用.

而 KMDF +UMDF 架構下, 傳統 WDM driver 有機會切成 KMDF, UMDF 兩部分,
然後利用 UMDF 可呼叫 Win32 API (GUI 相關的 API 不行) 的特性, 可以去偷
GPU 的效能, 來加強 driver 的運算速度.

一些在 Windows 上搞音效的公司該好好加油, 用 EPC 跑一些 SRS/Dobly/RealTek
sound effect 時, 老是看到 CPU usage rate 馬上飆升. 如果 background 又在跑一堆
service or 防毒軟體, 就很容易聽到破音現象. 我認為用 UMDF+GPU 可以非常明顯
改善這個效能問題.
作者 : usenineliu(小九) 人氣指數超過10000點
[ 貼文 16 | 人氣 10491 | 評價 0 | 評價/貼文 0 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 上午 10:24:26
Dear weber:

感謝您的回覆與分享
之前我有寫過virtual camera,很久以前的討論串,
怎麼寫出虛擬攝影機的討論串就是我提問題 呵呵 也很感謝大家的幫忙
後來有寫出來
但是最近因為我有不得不用upper filter driver的理由
所以最近又開始奮戰了

再回到filter driver
我就用一般的filter driver方法寫而已
他每次給我的影像都是一整張frame,不會零零散夋的
例如,如果我的影像格式選320*240RGB的話,每次的buffer就真的是320*240*3
只是不知道影像確實的長和寬跟YUV、RGB等
所以現在只剩下影像格式的問題
我猜是要由IOCTL_KS_PROPERTY來得到
但是網路上真的完全沒資料
我在IOCTL_KS_PROPERTY能得到KSPROPERTY的值
但是要再怎麼連接到寬高等等我就不會了



作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 上午 10:59:05
Hi
I think follow MSDN URL is what you need. You can check it. By use Filter Driver to get data. How can you make sure the data is transfer to the Pin you want? It's maybe have more then one pin(Still Pin and Capture Pin). And it may be create at the same time.


>Dear weber:
>
>感謝您的回覆與分享
>之前我有寫過virtual camera,很久以前的討論串,
>怎麼寫出虛擬攝影機的討論串就是我提問題 呵呵 也很感謝大家的幫忙
>後來有寫出來
>但是最近因為我有不得不用upper filter driver的理由
>所以最近又開始奮戰了
>
>再回到filter driver
>我就用一般的filter driver方法寫而已
>他每次給我的影像都是一整張frame,不會零零散夋的
>例如,如果我的影像格式選320*240RGB的話,每次的buffer就真的是320*240*3
>只是不知道影像確實的長和寬跟YUV、RGB等
>所以現在只剩下影像格式的問題
>我猜是要由IOCTL_KS_PROPERTY來得到
>但是網路上真的完全沒資料
>我在IOCTL_KS_PROPERTY能得到KSPROPERTY的值
>但是要再怎麼連接到寬高等等我就不會了
>
>
>
>
作者 : usenineliu(小九) 人氣指數超過10000點
[ 貼文 16 | 人氣 10491 | 評價 0 | 評價/貼文 0 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 上午 11:23:22
Dear 新兵衛:

首先我把amcap打開,並且在debugview中,
看到每張frame進來的buffer_size都跟frame大小一致
而且我在filter driver中用迴圈

for(i=0;i<buffer_size;i++){

    output_buffer[i] = 255- output_buffer[i];
}
在amcap中也都能得到反相的影像
所以我猜我拿到的影像應該真的是我想要的
現在就只有不知道影像實際長寬多少
再麻煩您給我一些指導了
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 上午 11:57:04
Hi
基本上寫Audio Driver 的人拿到的只要Obj Code, 很難去做optimization. 而SRS, Dolby, DTS 他們的Target 不是只有PC 所以大多只有做C Level 的Optimization.
Weber 大大您的公司比較大也許 可以去和SRS, Dolby, DTS 他們去取得Source Code 來做Optimization. 基本上如果這樣貴公司就只要用UAA 再加上 APO 就可以在 Vista 及 Win7 暢行無阻, 不過很可惜 EPC 目前大多的Target 都在Windows XP 上, 在XP 上AUDIO 的架構沒有 UMDF 的部份 要運用GPU 可能是比較難啦.
PS.
如果Weber 大大可以提演算法的Source 及OPENCL 或DirectX 11 利用GPU 那一部份的SDK 我相信很多人都可以做 ... 寫Kernel 及User Mode 的Audio Driver 並不難啦 ...

>我以前寫 Virtual Camera Driver 時, 有試過掛 upper filter on UVC driver 上.
>而 UVC driver 是以一串 URB packet 形式, 往上傳給 KsProxy.
>
>但當時 google 不到文件來解讀這些 URB packet 的 format. 然後更嚴重的是,
>1 張完整的圖, 會被 USB Camera 切成一連串 USB packet 來傳.
>在 upper filter 內, 無法靠單一 URB packet 去做複雜的影像處理.
>
>如果是 Hue, Brightness 這類只針對單一 pixel 的處理法, 是不成問題.
>但若是人臉辨識, Contast Analysis 這類需要整張圖做統計處理.
>只用單一 URB packet 是無法做到.
>
>最後我是寫 user mode 的 camera capture filter, 去攔從 KsProxy 丟出來,
>但還沒傳到 render filter 的整張 image. 這樣完整 image 資料到手,
>相關的 format 文件更是一大堆. 最重要的是,
>
>user mode 的 capture filter 可以使用 Win32/D3D API, 讓我能用 GPU 來
>模擬 DSP, 做複雜的影像處理. Win7 上已經充分運用 CPU+GPU 的異質運算.
>並提供一組 API 來讓 programmer 使用.
>
>而 KMDF +UMDF 架構下, 傳統 WDM driver 有機會切成 KMDF, UMDF 兩部分,
>然後利用 UMDF 可呼叫 Win32 API (GUI 相關的 API 不行) 的特性, 可以去偷
>GPU 的效能, 來加強 driver 的運算速度.
>
>一些在 Windows 上搞音效的公司該好好加油, 用 EPC 跑一些 SRS/Dobly/RealTek
>sound effect 時, 老是看到 CPU usage rate 馬上飆升. 如果 background 又在跑一堆
>service or 防毒軟體, 就很容易聽到破音現象. 我認為用 UMDF+GPU 可以非常明顯
>改善這個效能問題.
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 下午 12:07:36
Hi
基本上寫Audio Driver 的人拿到的只要Obj Code, 很難去做optimization. 而SRS, Dolby, DTS 他們的Target 不是只有PC 所以大多只有做C Level 的Optimization.
Weber 大大您的公司比較大也許 可以去和SRS, Dolby, DTS 他們去取得Source Code 來做Optimization. 基本上如果這樣貴公司就只要用UAA 再加上 APO 就可以在 Vista 及 Win7 暢行無阻, 不過很可惜 EPC 目前大多的Target 都在Windows XP 上, 在XP 上AUDIO 的架構沒有 UMDF 的部份 要運用GPU 可能是比較難啦.
PS.
如果Weber 大大可以提演算法的Source 及OPENCL 或DirectX 11 利用GPU 那一部份的SDK 我相信很多人都可以做 ... 寫Kernel 及User Mode 的Audio Driver 並不難啦 ...

>我以前寫 Virtual Camera Driver 時, 有試過掛 upper filter on UVC driver 上.
>而 UVC driver 是以一串 URB packet 形式, 往上傳給 KsProxy.
>
>但當時 google 不到文件來解讀這些 URB packet 的 format. 然後更嚴重的是,
>1 張完整的圖, 會被 USB Camera 切成一連串 USB packet 來傳.
>在 upper filter 內, 無法靠單一 URB packet 去做複雜的影像處理.
>
>如果是 Hue, Brightness 這類只針對單一 pixel 的處理法, 是不成問題.
>但若是人臉辨識, Contast Analysis 這類需要整張圖做統計處理.
>只用單一 URB packet 是無法做到.
>
>最後我是寫 user mode 的 camera capture filter, 去攔從 KsProxy 丟出來,
>但還沒傳到 render filter 的整張 image. 這樣完整 image 資料到手,
>相關的 format 文件更是一大堆. 最重要的是,
>
>user mode 的 capture filter 可以使用 Win32/D3D API, 讓我能用 GPU 來
>模擬 DSP, 做複雜的影像處理. Win7 上已經充分運用 CPU+GPU 的異質運算.
>並提供一組 API 來讓 programmer 使用.
>
>而 KMDF +UMDF 架構下, 傳統 WDM driver 有機會切成 KMDF, UMDF 兩部分,
>然後利用 UMDF 可呼叫 Win32 API (GUI 相關的 API 不行) 的特性, 可以去偷
>GPU 的效能, 來加強 driver 的運算速度.
>
>一些在 Windows 上搞音效的公司該好好加油, 用 EPC 跑一些 SRS/Dobly/RealTek
>sound effect 時, 老是看到 CPU usage rate 馬上飆升. 如果 background 又在跑一堆
>service or 防毒軟體, 就很容易聽到破音現象. 我認為用 UMDF+GPU 可以非常明顯
>改善這個效能問題.
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 下午 12:10:24
Sorry I forget to put the URL. The URL is follow
http://msdn.microsoft.com/en-us/library/ms807830.aspx


>Dear 新兵衛:
>
>首先我把amcap打開,並且在debugview中,
>看到每張frame進來的buffer_size都跟frame大小一致
>而且我在filter driver中用迴圈
>
>for(i=0;i<buffer_size;i++){
>
> output_buffer[i] = 255- output_buffer[i];
>}
>在amcap中也都能得到反相的影像
>所以我猜我拿到的影像應該真的是我想要的
>現在就只有不知道影像實際長寬多少
>再麻煩您給我一些指導了
作者 : usenineliu(小九) 人氣指數超過10000點
[ 貼文 16 | 人氣 10491 | 評價 0 | 評價/貼文 0 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 下午 01:29:50
Dear 新兵衛:

謝謝您的reference網頁
我現在遇到的問題是我的dispatch function的
參數只有
IN PIRP Irp,
IN PKSIDENTIFIER Request,
IN OUT PVOID Data
我現在只會下面的轉換
PIO_STACK_LOCATION IoStack = IoGetCurrentIrpStackLocation(Irp);
PKSPROPERTY Property = (PKSPROPERTY)IoStack->Parameters.DeviceIoControl.Type3InputBuffer;

但至於如何得到KSDATAFORMAT...我完全沒有頭緒...
再麻煩新兵衛兄指導了
謝謝!!
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 下午 02:10:43
Oh ...
Sorry ... 看來我是誤解了你的做法了 你好像是要用Standard 的AVStream miniport driver 來implement 一個Video Capture 吧. 如果是這樣北極熊大大比會比較了解如何去做 因為北極熊大大有這方面的實做經驗...
不過基本上 你可以參考WDK 下的Sample Code AVSHWS 在 SRC\AVSTREAM\AVSHWS 下 Capture.cpp 裡的 CCapturePin::DispatchSetFormat or CCapturePin::DispatchCreate 這兩個地方都可以得到Format

>Dear 新兵衛:
>
>謝謝您的reference網頁
>我現在遇到的問題是我的dispatch function的
>參數只有
>IN PIRP Irp,
>IN PKSIDENTIFIER Request,
>IN OUT PVOID Data
>我現在只會下面的轉換
>PIO_STACK_LOCATION IoStack = IoGetCurrentIrpStackLocation(Irp);
>PKSPROPERTY Property = (PKSPROPERTY)IoStack->Parameters.DeviceIoControl.Type3InputBuffer;
>
>但至於如何得到KSDATAFORMAT...我完全沒有頭緒...
>再麻煩新兵衛兄指導了
>謝謝!!
作者 : usenineliu(小九) 人氣指數超過10000點
[ 貼文 16 | 人氣 10491 | 評價 0 | 評價/貼文 0 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 下午 02:37:52
Dear 新兵衛:

您沒有誤會
我不是要寫camera mini driver

我現在正在寫的是camera mini driver上的upper filter
您剛剛附給我的網址也跟我想要的很接近
只是我現在由IRP得到了KSPROPERTY之後(也就是下面二行)
PIO_STACK_LOCATION IoStack = IoGetCurrentIrpStackLocation(Irp);
Property = (PKSPROPERTY)IoStack->Parameters.DeviceIoControl.Type3InputBuffer;
不知道怎麼再進一步得KSDATAFORMAT
而且因為我不是寫mini driver,所以我現在也不會有SRB
麻煩新兵衛大了!!
我已經為這個連找一個禮拜資料了...
還是毫無頭緒
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人usenineliu註記此篇回應為很有道理 2009/10/12 下午 07:18:46
Hi
看來這個需要Weber 大大才有法子出手指導你了 在Weber 大大指導你之前你最好先看看 下列的網址
http://msdn.microsoft.com/en-us/library/ms795857.aspx
也許就能抓到你要的Data 了 要用Upper Filter 來攔資料不是一件容易的事 加油吧


>Dear 新兵衛:
>
>您沒有誤會
>我不是要寫camera mini driver
>
>我現在正在寫的是camera mini driver上的upper filter
>您剛剛附給我的網址也跟我想要的很接近
>只是我現在由IRP得到了KSPROPERTY之後(也就是下面二行)
>PIO_STACK_LOCATION IoStack = IoGetCurrentIrpStackLocation(Irp);
>Property = (PKSPROPERTY)IoStack->Parameters.DeviceIoControl.Type3InputBuffer;
>不知道怎麼再進一步得KSDATAFORMAT
>而且因為我不是寫mini driver,所以我現在也不會有SRB
>麻煩新兵衛大了!!
>我已經為這個連找一個禮拜資料了...
>還是毫無頭緒
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/14 下午 07:12:52
Hi Weber 大大
指導一下吧 ...

>Hi
>看來這個需要Weber 大大才有法子出手指導你了 在Weber 大大指導你之前你最好先看看 下列的網址
>http://msdn.microsoft.com/en-us/library/ms795857.aspx
>也許就能抓到你要的Data 了 要用Upper Filter 來攔資料不是一件容易的事 加油吧
>
>
>>Dear 新兵衛:
>>
>>您沒有誤會
>>我不是要寫camera mini driver
>>
>>我現在正在寫的是camera mini driver上的upper filter
>>您剛剛附給我的網址也跟我想要的很接近
>>只是我現在由IRP得到了KSPROPERTY之後(也就是下面二行)
>>PIO_STACK_LOCATION IoStack = IoGetCurrentIrpStackLocation(Irp);
>>Property = (PKSPROPERTY)IoStack->Parameters.DeviceIoControl.Type3InputBuffer;
>>不知道怎麼再進一步得KSDATAFORMAT
>>而且因為我不是寫mini driver,所以我現在也不會有SRB
>>麻煩新兵衛大了!!
>>我已經為這個連找一個禮拜資料了...
>>還是毫無頭緒
>
作者 : weber(weber) 程式設計甘苦談優秀好手貼文超過200則人氣指數超過30000點
[ 貼文 302 | 人氣 33525 | 評價 2220 | 評價/貼文 7.35 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人usenineliu註記此篇回應為最佳解答 2009/10/14 下午 08:34:14
To usenineliu:

我當初用 filter driver 的方式來解時, 也是遇到 USBVideo.sys 傳上來的 URB packet 格式問題,
外加整張 image 會被切成一串 URB packet的問題. Google 了 1,2 天都找不到相關資料,
最後就擺在那邊不想動它.

我是在 SONIX USB IC + Micro M3220 CMOS sensor 上遇到 image 被切開的現象,
但你說 320x240x3 的 size 不會被切開,

我想是不是跟 CMOS sensor 30M/130M pixel 與 USB IC Bulk/ISO/INT 傳輸法有關聯 ?
若沒確定這點, 以後上到不同的 usb camera 時, 可能會有問題.
(Win7 有支援 HD camera, 我想 camera driver/filter 不可能有那麼大的 buffer, 能一次傳完整張 HD image),

如果你是在 USB IC的相關設計公司上班, 那可以去跟 USB firmware RD 要資料.
通常 USB IC 不會支援全部的解析度跟 image format. firmware 會回傳所支援的影像格式解析度
給 KSproxy, 然後 KSproxy 只允許 App 使用這些格式. 只要知道 firmware 開出哪些格式,
就用這些影像格式的 binary 特徵值, 去掃描 filter 攔到的資料, 這樣就不會大海撈針.

如果不幸沒辦法拿到特定 firmware 的資料, 只好多 try 幾次.
先把 filter 抓到的資料, 跟從 KSproxy 後抓到的資料, 來做比對, 或許可以找出一些規律.

但若不幸 image 是被切開來送, 分散在不同的 URB packet 時, 這招也是不管用.


To 新兵衛:
> 基本上寫Audio Driver 的人拿到的只要Obj Code, 很難去做optimization.
> 而 SRS, Dolby, DTS 他們的Target 不是只有PC 所以大多只有做C Level 的Optimization.

基本上我也只是耍嘴皮, 有時候多做事, 其他人並不會感激你, 反而會視你是個威脅.

現在我比較聰明, 是跟 Google/Micrsoft/Intel/Qualcomm 搞一些軟體合作案, 為未來 1 年鋪路.
就對 NetBook 而言, 未來一定跟 3G/LTE, Cloud Computing, Linux, ARM/X86 SoC 分不開.

而這一塊新的軟體研發領域, 在公司內還沒有山頭來壟斷. 只要功能有做出來, 程式穩定度夠,
加上滿足零售市場/電信業者真正的需求, 我想要導入量產, 是不用去考慮政治問題.

EPC 已經無法靠 Win7 跟低價來維持競爭優勢, 與其去爭奪 NB/NetBook 留下來的 Window base 祖產,
到不如放眼去拓荒 Moblin/Chrome + ARM/X86 SoC 的新天地, 或許還能找到第 2 春.
作者 : usenineliu(小九) 人氣指數超過10000點
[ 貼文 16 | 人氣 10491 | 評價 0 | 評價/貼文 0 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/15 上午 09:26:24
Dear weber、新兵衛:

經過了好幾天的奮戰後
我現在可以抓到影像的長、寬、跟格式了
在我抓到KSPROPERTY後,我再去判斷他的set、id
再參照msdn,就可以把資料轉成我的想要的格式了
感謝你們的指導

現在有一個新問題
就是我可以用外掛的AP,把filter driver的影像資料做修改
然後再由filter driver傳出來給AMCap等其他應用程式嗎?
有這種可能嗎?
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/16 下午 12:04:27
基本上沒什麼不可能的事 你都知道Format 了就算要給假資料都沒有問題... 不過Latency 會太長就是了
>Dear weber、新兵衛:
>
>經過了好幾天的奮戰後
>我現在可以抓到影像的長、寬、跟格式了
>在我抓到KSPROPERTY後,我再去判斷他的set、id
>再參照msdn,就可以把資料轉成我的想要的格式了
>感謝你們的指導
>
>現在有一個新問題
>就是我可以用外掛的AP,把filter driver的影像資料做修改
>然後再由filter driver傳出來給AMCap等其他應用程式嗎?
>有這種可能嗎?
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/16 下午 12:17:53
Dear Weber:
基本依據我這兩天研究了一下WDK 的Doc 和 Sample Code Image 是不會被切開的不管是30M/130M 都是一樣的
主要是要看Format 是不是Interleave而以
基本上我認為EPC 要有差異性 才能生存 而不是用低價 當然如果在同樣的東西下能提供更多的Function 及效成會是
很大的差異性 舉個例子來說 如果EPC 的EEBOX 可以輸出 BD 的Video 及 Audio Bitstream 就會是和Acer 等等其他
廠牌的很大差異性了 因為這東西就可以直接取代 BD Player了 ...

>To usenineliu:
>
>我當初用 filter driver 的方式來解時, 也是遇到 USBVideo.sys 傳上來的 URB packet 格式問題,
>外加整張 image 會被切成一串 URB packet的問題. Google 了 1,2 天都找不到相關資料,
>最後就擺在那邊不想動它.
>
>我是在 SONIX USB IC + Micro M3220 CMOS sensor 上遇到 image 被切開的現象,
>但你說 320x240x3 的 size 不會被切開,
>
>我想是不是跟 CMOS sensor 30M/130M pixel 與 USB IC Bulk/ISO/INT 傳輸法有關聯 ?
>若沒確定這點, 以後上到不同的 usb camera 時, 可能會有問題.
>(Win7 有支援 HD camera, 我想 camera driver/filter 不可能有那麼大的 buffer, 能一次傳完整張 HD image),
>
>如果你是在 USB IC的相關設計公司上班, 那可以去跟 USB firmware RD 要資料.
>通常 USB IC 不會支援全部的解析度跟 image format. firmware 會回傳所支援的影像格式解析度
>給 KSproxy, 然後 KSproxy 只允許 App 使用這些格式. 只要知道 firmware 開出哪些格式,
>就用這些影像格式的 binary 特徵值, 去掃描 filter 攔到的資料, 這樣就不會大海撈針.
>
>如果不幸沒辦法拿到特定 firmware 的資料, 只好多 try 幾次.
>先把 filter 抓到的資料, 跟從 KSproxy 後抓到的資料, 來做比對, 或許可以找出一些規律.
>
>但若不幸 image 是被切開來送, 分散在不同的 URB packet 時, 這招也是不管用.
>
>
>To 新兵衛:
>> 基本上寫Audio Driver 的人拿到的只要Obj Code, 很難去做optimization.
>> 而 SRS, Dolby, DTS 他們的Target 不是只有PC 所以大多只有做C Level 的Optimization.
>
>基本上我也只是耍嘴皮, 有時候多做事, 其他人並不會感激你, 反而會視你是個威脅.
>
>現在我比較聰明, 是跟 Google/Micrsoft/Intel/Qualcomm 搞一些軟體合作案, 為未來 1 年鋪路.
>就對 NetBook 而言, 未來一定跟 3G/LTE, Cloud Computing, Linux, ARM/X86 SoC 分不開.
>
>而這一塊新的軟體研發領域, 在公司內還沒有山頭來壟斷. 只要功能有做出來, 程式穩定度夠,
>加上滿足零售市場/電信業者真正的需求, 我想要導入量產, 是不用去考慮政治問題.
>
>EPC 已經無法靠 Win7 跟低價來維持競爭優勢, 與其去爭奪 NB/NetBook 留下來的 Window base 祖產,
>到不如放眼去拓荒 Moblin/Chrome + ARM/X86 SoC 的新天地, 或許還能找到第 2 春.
>
作者 : mhnl(荃)
[ 貼文 6 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/12/17 下午 02:46:35
你好 我最近也需要用到大概技術
請問這個例子之後有完成嗎
作者 : mhnl(荃)
[ 貼文 6 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/12/24 下午 02:38:14
我現在也碰到這個問題
是不是需要抓到KS_VIDEOINFOHEADER
才能知道低階的長寬呢
如果是 怎麼樣抓取呢
作者 : mhnl(荃)
[ 貼文 6 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/12/27 下午 04:48:08

>我現在也碰到這個問題
>是不是需要抓到KS_VIDEOINFOHEADER
>才能知道低階的長寬呢
>如果是 怎麼樣抓取呢
不知道該怎麼抓KS_DATARANGE
作者 : mhnl(荃)
[ 貼文 6 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/12/27 下午 05:56:28
還是說要新增VideoCapturePin
那種東西才能抓趣一些值
作者 : toshiya(札克)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/12/28 上午 10:46:42
小九你好
請問你當初是怎麼抓取長寬跟影像格式的???
作者 : toshiya(札克)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/12/30 下午 06:08:31
我已經找到長寬格式了
只是 整個畫面資料
我不知道該去那裡抓取= ="
 板主 : 徵求中
 > 驅動程式 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 驅動程式 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
驅動程式
1 新兵衛 1240 
2 eBoy 980 
3 牧童哥 780 
4 北極熊 580 
5 天行者 580 
6 燒酒仙 440 
7 weber 380 
8 KEN 350 
9 jonay 180 
10 掌握文武半邊天 180 
驅動程式
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.109375