星期三, 11月 21, 2007

WDM/BDA Driver & DVB-T

some refrence from internet about BDA & DVB-T

----------------------------------------------------------

目前大部分的capture卡都是WDM的driver.
so裝起DirectX, 用裏面的DirectShow來抓你想要的資料
你要看一下SDK才行, 因為蠻多的...
不過, 有幾個關鍵字供你參考
GraphEdit.
Filter
WDM video capture device=> video capture filter. 負責送資料出來, 也負責設定TVstandard.
Crossbar filter. 設定你影像的來源, 像是從SVideo 或是從TV 來
TVTuner filter. 設定頻道相關
TVAudio filter. 設定主聲道, 副聲道相關
找出GraphEdit, 把以上我說幾個相關的filter找出來, 連起來...
再到dshow SDK的dump sample, compile一下, 註冊.
再把dump filter加入圖中, 把dump filter 和video capture device 接起來..
run Graph, 資料就會dump到你指定的檔案裏...
------------------------------------------------------------------------

參考的網頁是
http://msdn.microsoft.com/library/en-us/directshow/htm/bdafilterinterfaces.asp?frame=true

BDA是微軟比較新的一種driver model. 目前就我所知, 所有的DVB-T tuner卡應該都是follow這個model在做, 只要follow BDA來做, 就會有一些共通的interface來提供AP和driver溝通. WDM也是, 只不過WDM大部分是用在analog tuner card比較多, 除非是比較新的版本.

不管是WDM or BDA driver都要先裝DirectX SDK, SDK中提供了了一個tool叫做GraphEdit. 通常我寫AP前都會先用這個tool來驗証卡有沒有問題...
之後, 你再找SDK中的proppage.dll, 註冊他, 這個dll可以讓GraphEdit開filter的property page.
至於BDA的driver安裝後, 你會在BDA幾個相關的cateory找到幾個device,
首先要加入Network provider, 在這你要選DVB-T network provider.
另外你可能會在另外幾個BDA開頭的目錄中, 找到最多三個filter, demodelator, receiver, capture device. 至於有那幾個則是看driver而定. 再來就是打開tuner的property.
自己玩一下property的設定...裏面有個設frequency的, 要設定台灣DVB-T頻道的頻率值
設完後按submit. 順利的話你把整個圖建完按run的話就會有資料出來了..
不過, BDA 架構的driver, GraphEdit support的比較少, 所以有些東西可能必須要寫程式才能用...這是一個蠻大的課題, SO...看SDK吧...

另外一點補充的, 因為DVB-T是使用mepg2 transport stream來送資料..
你想要分析的話, 至少要先看ISO-13818才行..加上DirectShow SDK蠻多東西要看的...可能至少要花一個月以上的時間吧...

-------------------------------------------------------------------------------
目前手上有一個支援DVB-T with BDA 架構的C# sample code
程式下載處:
http://directshownet.sourceforge.net/index.html 裡的
DirectShow Samples April 2006 (2006-04-12)
(DirectShowNET與DirectShowSamples都要下載!!)
接上Asus的一台數位電視棒之後,隨即跑這個程式(此台電視棒有支援BDA架構)

遇到一些問題:
程式在一開始需要使用者輸入四個參數
分別是 Frequency、ONID、TSID、SID
目前我只知道三個參數
以台灣區北部(桃園)為例子
要中視的某一台頻道可能會填
Frequency 533
ONID (目前不曉得)
TSID 24
SID 101

我查了官網並沒有該參數的詳細訊息(大部分就是少了ONID)
請問ONID 該填什麼呢? 如果知道的人 可否提供一組 參數給我,
或是給我一些方向去尋找,謝謝。

另外在這個C#程式在跑的時候(compile已經過了)
總是會停在一個地方
錯誤訊息顯示 "this application only support the 2 filters BDA scheme"
程式是在執行renderstream()時,可能是參數傳遞錯誤
你可以在http://ss23.mcu.edu.tw/~s0170305/download/BDA_sample_code_for_csharp.ppt找到程式UI圖片,
目前很積極在解決這個問題,希望各位給我一點方向去解決這個問題,非常謝謝。








作者 : shunchia63(shunchia63) [ 貼文 3 | 人氣 8 | 評價 0 ] posted on 8/9/2007 10:28:24 PM
[ 回應本文 ] [ 發表新文 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
我用DVBT 有些一個TEST AP,可以撥放
台灣 15CH

參數的確非常難找

Sample AP:
http://delphi.ktop.com.tw/download.php?download=upload%2F468ecf4dcd82a_TV.zip

有空
try try See @@~





作者 : sasake23(阿金) [ 貼文 10 | 人氣 936 | 評價 0 ] posted on 8/12/2007 4:56:56 PM
[ 回應本文 ] [ 發表新文 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
謝謝你!!

不過我目前沒辦法撥出節目,可能是我這裡訊號強弱的關係...
(我是用 ASUS U3000 mini 在跑 ; 桃園龜山)
如果 可以成功再上來回報。


參數的部分,我試過一組是這樣:

以中視台來說
frequcncy 533MHz
ONID 8350
TSID 24
SID 102


ONID的資料來源為http://www.govbooks.com.tw/eguploadpub/eg011162/ch06/type2/gov50/num1/Eg.pdf (2005 八月的資料)

還請各位前輩多給我一些指教,謝謝。


我目前也是再開發dvbt ,目前已經有了 Transport Stream Source Filter

但是 要如何將property pages 給讀進去 有三個 program property pages ,Tuner property pages , Monitor property pages 那程式哪要如何連結呢?

快被追殺的新手