У меня есть график DirectShow с «Сетевым провайдером Microsoft DVBT», «AVerMedia BDA DVBT Tuner», «Цифровой захват BER AVerMEdia BDA», «Sample Grabber» и «NULL Renderer».
Эти фильтры подключены.
Кроме того, у меня также есть "Демультиплексор MPEG-2" и "Фильтр транспортной информации BDA MPEG2", но эти два фильтра НЕ подключены! Похоже, они должны быть здесь, чтобы запустить график.
Когда я запускаю график, я получаю данные TS, но независимо от того, что я делаю, я не могу поставить запрос на настройку. Я могу захватывать данные MUX только с последней настроенной частоты с помощью другого приложения, такого как Windows Media Center.
Вот код для установки запроса на мелодию:
// 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 DVBT» в график.
Все значения "hr" из приведенного выше кода являются S_OK.
Что я делаю не так? Или я что-то упустил в этом "запросе мелодии".
(значения ширины полосы и частоты правильные)