I have problem with setting PLP by BDA! Drivers version - 1.0.0.7.
Code worked fine about a year ago - I could tune in to any of the available PLP in DVB-T2 signal! But maybe driver version was another! How to get previuos versions of drivers?
Here is some code that i use:
- Code: Select All Code
// TBS tuner extension headers
typedef struct _tbs_plp_info // PLP info for TBS tuners struct
{
unsigned char plpId; //The Rel PLPID need to set
unsigned char plpCount; //PLP count number
unsigned char plpResered1;//
unsigned char plpResered2;// memory size set to 4
unsigned char plpIdList[256];//store the Rel PLPID
} TBS_PLP_INFO, *p_TBS_PLP_INFO;
#define KSPROPERTYSET_IID_BdaTunerExtensionPropertiesString L"{faa8f3e5-31d4-4e41-88ef-d9eb716f6ec9}"
#define KSPROPERTY_BDA_PLPINFO 22
// End of TBS tuner extension headers
...
if (m_pTunerInputPin)
{
IKsPropertySet *p_ksPropertySet;
hr = m_pTunerInputPin->QueryInterface(IID_IKsPropertySet, reinterpret_cast<void**>(&p_ksPropertySet));
if(hr == S_OK)
{
DWORD dwSupported = 0;
IID KSPROPSETID_BdaTunerExtensionProperties_IID;
IIDFromString(KSPROPERTYSET_IID_BdaTunerExtensionPropertiesString, &KSPROPSETID_BdaTunerExtensionProperties_IID);
dwSupported = KSSupported(p_ksPropertySet, KSPROPSETID_BdaTunerExtensionProperties_IID, KSPROPERTY_BDA_PLPINFO);
if (dwSupported & KSPROPERTY_SUPPORT_SET)
{
TBS_PLP_INFO plp_info;
ZeroMemory(&plp_info, sizeof(TBS_PLP_INFO));
plp_info.plpId = plp; // plp=0,1,2...
hr = p_ksPropertySet->Set(KSPROPSETID_BdaTunerExtensionProperties_IID,
KSPROPERTY_BDA_PLPINFO,
NULL,
0,
&plp_info,
sizeof(TBS_PLP_INFO));
DWORD ret;
hr = p_ksPropertySet->Get(KSPROPSETID_BdaTunerExtensionProperties_IID,
KSPROPERTY_BDA_PLPINFO,
NULL,
0,
&plp_info,
sizeof( TBS_PLP_INFO ),
&ret);
qDebug() << "PLP -" << plp_info.plpId << plp_info.plpCount << ret; // plp_info.plpId always == 0, but plp_info.plpCount == valid value (3)!
}
}
...