「Microsoft DVBTネットワークプロバイダ」、「AVerMedia BDA DVBTチューナー」、「AVerMEdia BDAデジタルキャプチャ」、「サンプルグラバー」および「NULLレンダラー」のDirectShowグラフがあります。ITuner :: put_TuneRequest()呼び出しが無視されました
これらのフィルタが接続されています。
「MPEG-2デマルチプレクサ」と「BDA MPEG2トランスポート情報フィルタ」もありますが、これら2つのフィルタは接続されていません。グラフを実行するには、ここにいる必要があるようです。
私はグラフを開始するときにTSデータを受信していますが、私が何をするにしても、私はチューニング要求を出すことができません。 Windows Media Centerのような他のアプリケーションでは、最後にチューニングされた周波数からMUXデータをキャプチャすることしかできません。
// creating tuning space
CComPtr<IDVBTuningSpace> pDVBTuningSpace;<br>
hr = pDVBTuningSpace.CoCreateInstance(__uuidof(DVBTuningSpace));
WCHAR szFriendlyName[ 64 ] = L"Local DVB-T Digital Antenna";<br> BSTR bstrFriendlyName = SysAllocString(szFriendlyName);
hr = pDVBTuningSpace->put_UniqueName(bstrFriendlyName);<br>
hr = pDVBTuningSpace->put_FriendlyName(bstrFriendlyName);
SysFreeString(bstrFriendlyName);
CComBSTR clsid_dvbt = ("{216C62DF-6D7F-4e9a-8571-05F14EDB766A}");<br>
hr = pDVBTuningSpace->put_NetworkType(clsid_dvbt);<br>
hr = pDVBTuningSpace->put_SystemType(DVB_Terrestrial);<br>
// creating tune request<br>
CComPtr<ITuneRequest> pTuneRequest;
hr = pDVBTuningSpace->CreateTuneRequest(&pTuneRequest);
CComQIPtr<IDVBTuneRequest> pDVBTuneRequest(pTuneRequest);
hr = pDVBTuneRequest->put_ONID(-1);<br>
hr = pDVBTuneRequest->put_TSID(-1);<br>
hr = pDVBTuneRequest->put_SID(-1);
// locator<br>
CComPtr<IDVBTLocator> pDVBTLocator;
hr = pDVBTLocator.CoCreateInstance(__uuidof(DVBTLocator));<br>
hr = pDVBTLocator->put_Bandwidth(8);<br>
hr = pDVBTLocator->put_CarrierFrequency(506000);
hr = pDVBTuneRequest->put_Locator(pDVBTLocator);
CComQIPtr<ITuner> pTuner(pNetworkProvider_);
hr = pTuner->put_TuneRequest(pDVBTuneRequest);
これはグラフ中の「Microsoft DVB-Tネットワークプロバイダー」フィルタを追加した直後に実行されます。ここでは
チューニング要求を置くためのコードです。上記のコードの "hr"値はすべてS_OKです。
私は間違っていますか?または、私はこの「調整要求」のもので大きなものを逃しましたか?
(帯域幅と周波数の値が正しい)
私はあなたのアプローチを試みましたが、結果はまったく同じです。 :-(私は、Hzで入力してみましたが、http://msdn.microsoft.com/en-us/library/dd693838(VS.85).aspxによるとMHzでなければなりません。おそらくWindows Media –
@natko DVB-Tの場合、私は通常帯域幅に-1を使用していますが、DVB-Sでは27500000などを使用しなければならないので、ドキュメントが間違っています。あなたはONID、TSID、SIDを指定しません。私がそれらを入力しなければ、結果も得られません。TransEdit(http://www.dvbviewer.com/griga/TransEdit%20E/)を使ってそれらを見つけることができます。 MainWindow.html)(onidはwww.dvb.orgで見つけることができます)グラフェンを使って実験をすることができます。 – wimh
DVB-Sではput_Bandwidthではなくput_SymbolRateを使用しています。それは別の関数です。 – wimh