Текущее время: 01 май 2025, 19:14 • Часовой пояс: UTC + 3 часа |
По тюнеру DVB T2
Автор | Сообщение |
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
нашел проблему, Спасибо за помощь, вся проблема была в самой DELPHI 7, Откомпилировал проект в DELPHI XE8 ни чего не меняя все стал выполнять hr := pTopology.GetControlNode(0, 1, node_types_list[i], pUnk);
Сигналы получил все.
Вопрос еще такой как получить SNR сигнал?
Но вопросы еще будут по PLP но это позже .
Спасибо всем за помощь кто помогал.
|
|
|
BTVSoft
|
|
Beholder |  |
Зарегистрирован: 19 авг 2004, 11:47 Сообщения: 190
|
Tolyan249 Как я и предполагал ранее, проблема в конвертации заголовочных файлов DirectShow. Delphi7 тут не причем, мы часть заголовков конвертировали сами и это все гарантированно работало.
SNR получить средствами Microsoft невозможно, т.е. просто не предусмотрено в API. У нас свое расширение KsPropertу, при этом даже фильтр "Microsoft DVB-X Network Provider" не требуется для работы. Хотя все MS KsPropertу поддерживаются.
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
Ясно спасибо.
Вопрос По PLP
topology
if (hr = S_OK) then hr := pUnk.QueryInterface(IID_IBDA_DigitalDemodulator, demodulytor);
демодулятор найден. добавил функции в
type IBDA_DigitalDemodulator = interface(IUnknown) ['{EF30F379-985B-4d10-B640-A79D5E04E1E0}'] (*** IBDA_DigitalDemodulator methods ***) function put_ModulationType(var pModulationType: ModulationType): HResult; stdcall; function get_ModulationType(out pModulationType: ModulationType): HResult; stdcall; function put_InnerFECMethod(var pFECMethod: FECMethod): HResult; stdcall; function get_InnerFECMethod(out pFECMethod: FECMethod): HResult; stdcall; function put_InnerFECRate(var pFECRate: BinaryConvolutionCodeRate): HResult; stdcall; function get_InnerFECRate(out pFECRate: BinaryConvolutionCodeRate): HResult; stdcall; function put_OuterFECMethod(var pFECMethod: FECMethod): HResult; stdcall; function get_OuterFECMethod(out pFECMethod: FECMethod): HResult; stdcall; function put_OuterFECRate(var pFECRate: BinaryConvolutionCodeRate): HResult; stdcall; function get_OuterFECRate(out pFECRate: BinaryConvolutionCodeRate): HResult; stdcall; function put_SymbolRate(var pSymbolRate: ULONG): HResult; stdcall; function get_SymbolRate(out pSymbolRate: ULONG): HResult; stdcall; function put_SpectralInversion(var pSpectralInversion: SpectralInversion): HResult; stdcall; function get_SpectralInversion(out pSpectralInversion: SpectralInversion): HResult; stdcall; function put_PLP(var plpnum: ULONG): HResult; stdcall; function get_PLP(out plpnum: ULONG): HResult; stdcall; end;
функции вроде описал но дает ошибку.
KSPROPSETID_BdaDigitalDemodulator нашел, куда и как применить KSPROPERTY_BDA_PLP_NUMBER.
На си нашел
public void SetPlpId(int plp) { KsPropertyHelper.KSSetNode(ksProperty, KSPropSets.KSPROPSETID_BdaDigitalDemodulator, (int)KSPROPERTY_BDA_DIGITAL_DEMODULATOR.KSPROPERTY_BDA_PLP_NUMBER, plp); }
public int GetPlpCount() { return (int)KsPropertyHelper.KSGetNode(ksProperty, KSPropSets.KSPROPSETID_BdaDigitalDemodulator, (int)KSPROPERTY_BDA_DIGITAL_DEMODULATOR.KSPROPERTY_BDA_PLP_NUMBER, typeof(int)); } }
protected void SetPlp(int plp) { var plpSupported = KsPropertyHelper.KSSupported(GetGraph().TunerPin, KSPropSets.KSPROPSETID_BdaDigitalDemodulator, (int)KSPROPERTY_BDA_DIGITAL_DEMODULATOR.KSPROPERTY_BDA_PLP_NUMBER);
if (plpSupported.HasFlag(KSPropertySupport.Set)) KsPropertyHelper.KSSetNode(GetGraph().TunerPin, KSPropSets.KSPROPSETID_BdaDigitalDemodulator, (int)KSPROPERTY_BDA_DIGITAL_DEMODULATOR.KSPROPERTY_BDA_PLP_NUMBER, plp); }
можете ли вы дать готовый пример получения и установки PLP.
Спасибо за помощь.
Последний раз редактировалось Tolyan249 03 ноя 2015, 03:47, всего редактировалось 1 раз.
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
Помогите решить вопрос по PLP.
Последний раз редактировалось Tolyan249 11 ноя 2015, 03:48, всего редактировалось 2 раз(а).
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
Вопрос такой еще? как можно получить EPG, Телетехт , субтитры ,если таковы есть ?
Спасибо.
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
Попробовал через DVBTLocator2 дает ошибку.
CLSID_DVBTLocator2: Tguid = '{EFE3FA02-45D7-4920-BE96-53FA7F35B0E6}'; IID_IDVBTLocator2: Tguid = '{448A2EDF-AE95-4b43-A3CC-747843C453D4}';
type IDVBTLocator2 = interface(IUnknown) function get_PhysicalLayerPipeId(plp: integer): HRESULT; stdcall; function put_PhysicalLayerPipeId(plp: integer): HRESULT; stdcall; end;
procedure PlPgraph; var locator2: IDVBTLocator2; hr:hresult; begin hr:=CoCreateInstance(CLSID_DVBTLocator2,nil,CLSCTX_INPROC,IID_IDVBTLocator2,locator2); if (FAILED(hr)) then begin WriteLog(SysErrorMessage(hr)); exit; end;
end;
Пмогите решить проблему с PLP.
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
Добрые люди помогите решить вопрос с PLP -KSPROPERTY_BDA_PLP_NUMBER, не знаю как это использовать и примеров не могу найти, есть на си, но не могу перевести в pas. Может кто поможет в этом вопросе. застрял на этом месте, проект программы не движется. весь нет перебрал, то ли еще только начинают писать под DVB-T2 информацию не могу найти. Помогите пожалуйста,может кому еще пригодиться.
Спасибо за помощь ,понимание.
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
17-01-16 Люди добрые помогите вопрос решить по переключению PLP ,застрял на одном месте,программа дальше не пишится. уже месяц почти в нете не могу найти. Уважаемые Модераторы сайта beholder ,помогите пожалуйста решить этот вопрос можно даже за деньги. Добрые люди помогите решить вопрос по переключению PLP. можно за деньги в пределах разумного , пишите на мыло tomoct@mail.ruСпасибо за помощь.
|
|
|
f2065
|
|
Зарегистрирован: 28 сен 2006, 05:01 Сообщения: 830 Откуда: Russia,Moscow
|
А как узнавать кол-во PLP в потоке?
У ProgDVB какая-то ошибка, он позволяет установить PLP задав его вслепую (и принимает соответствующие каналы), но кнопка поиска plp не работает. Автор пишет что он использует для всего этого KSPROPERTY_BDA_PLP_NUMBER… Подскажите что надо сделать чтобы узнать кол-во доступных PLP?
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
KSPROPERTY_BDA_PLP_NUMBER вот его я найти и не могу. пытаюсь у администраторов добится , пока молчат. Тоже программа стоит, работает, но plp не переключает.
|
|
|
f2065
|
|
Зарегистрирован: 28 сен 2006, 05:01 Сообщения: 830 Откуда: Russia,Moscow
|
Ну, у ProgDVB - переключение PLP успешно работает. Однако, только вручную. На автомате - не работает т.к. не может получить кол-во доступных PLP. Вот хочу узнать как надо получать кол-во доступных PLP. Тогда вероятно автор ProgDVB это починит у себя в софте.
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
viewtopic.php?f=10&t=14365&start=15В этой теме я выкладывал(сами файлы, и проект на си) как это можно получить на СИ,но я пишу на delphi.
|
|
|
f2065
|
|
Зарегистрирован: 28 сен 2006, 05:01 Сообщения: 830 Откуда: Russia,Moscow
|
А как узнать кол-во существующих PLP на частоте? Вот у ProgDVB проблема - говорят что бехолдер не умеет детектировать кол-во PLP. И если вещание начинается сразу с PLP1 (нету PLP0) - то ProgDVB его не ловит на автомате. Объясните там авторам ProgDVB как узнавать кол-во PLP. Или реально бехолдер этого не может (а дешёвая астромета - может)?
|
|
|
f2065
|
|
Зарегистрирован: 28 сен 2006, 05:01 Сообщения: 830 Откуда: Russia,Moscow
|
Никто не знает как кол-во PLP узнать?
|
|
|
Tolyan249
|
|
Зарегистрирован: 17 авг 2012, 07:26 Сообщения: 62
|
Уже 2 года прошло так и не могу решить вопрос по PLP ,может кто что подскажет, и в интернете не нашел и сам догнать не могу что только не перепробовал, если нахожу только на Cи. Можно на мыло отправить.
Спасибо.
|
|
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|