In GlobeTV (the Software delivered by KNCOne), the CAM ist detected and works. In Mediaportal, it doesn't. I searched the source code and found a possible fix for that.
My TVService.log:
As far as i could find out, the problem is here:
ConditionalAccess.cs from line 136 (calls KNCAPI)
KNCAPI.cs from line 347 (Checks device desc against array ValidTuners)
KNCAPI.cs from line 209:
As you can see above, the card identifies itself as "KNC BDA DVBS2" without hyphen. Maybe this could be the problem that the acces to the CAM menu doesn't work - at least i suppose that from the code (I'm not a .NET coder, but other languages).
I would be glad if the ValidTuners array could be enlarged by the "KNC BDA DVBS2" without hyphen.
Thank you!
Thomas Candrian
My TVService.log:
Code:
...
[2014-06-20 13:40:20,753] [Log ] [TVService] [INFO ] - Detected new digital BDA tuner device 7160 KNC BDA DVBS2 Tuner @device:pnp:\\?\pci#ven_1131&dev_7160&subsys_02101894&rev_02#4&391a8fc1&0&00e0#{71985f48-1ca1-11d3-9cc8-00c04f7971e0}\{9bb4f27f-515c-43ca-8e7d-f07c00080000}
[2014-06-20 13:40:20,753] [Log ] [TVService] [DEBUG] - check type with MS NP
[2014-06-20 13:40:20,773] [Log ] [TVService] [DEBUG] - network type count = 1
[2014-06-20 13:40:20,773] [Log ] [TVService] [DEBUG] - network type 0 = fa4b375a-45b4-4d45-8440-263957b11623
[2014-06-20 13:40:20,773] [Log ] [TVService] [INFO ] - tuner type = DvbS
[2014-06-20 13:40:20,773] [Log ] [TVService] [INFO ] - Controller: add device 7160 KNC BDA DVBS2 Tuner @device:pnp:\\?\pci#ven_1131&dev_7160&subsys_02101894&rev_02#4&391a8fc1&0&00e0#{71985f48-1ca1-11d3-9cc8-00c04f7971e0}\{9bb4f27f-515c-43ca-8e7d-f07c00080000}
[2014-06-20 13:40:20,778] [Log ] [TVService] [INFO ] - Controller: preloading device
[2014-06-20 13:40:20,778] [Log ] [TVService] [INFO ] - dvbs:BuildGraph
[2014-06-20 13:40:20,778] [Log ] [TVService] [INFO ] - dvb:AddNetworkProviderFilter
[2014-06-20 13:40:20,783] [Log ] [TVService] [INFO ] - dvb:AddNetworkProviderFilter
[2014-06-20 13:40:20,783] [Log ] [TVService] [INFO ] - dvb:Add DVBS Network Provider
[2014-06-20 13:40:20,788] [Log ] [TVService] [INFO ] - dvb: Add Mediaportal TsWriter filter
[2014-06-20 13:40:20,793] [Log ] [TVService] [INFO ] - dvbs:CreateTuningSpace()
[2014-06-20 13:40:20,803] [Log ] [TVService] [INFO ] - dvbs:found correct tuningspace MediaPortal DVBS TuningSpace
[2014-06-20 13:40:20,803] [Log ] [TVService] [INFO ] - dvb:Add MPEG2 Demultiplexer filter
[2014-06-20 13:40:20,808] [Log ] [TVService] [INFO ] - dvb:AddAndConnectBDABoardFilters
[2014-06-20 13:40:20,808] [Log ] [TVService] [INFO ] - dvb: find bda tuner
[2014-06-20 13:40:20,818] [Log ] [TVService] [INFO ] - dvb: using [Tuner]: 7160 KNC BDA DVBS2 Tuner
[2014-06-20 13:40:20,818] [Log ] [TVService] [INFO ] - dvb: Render [Network provider]->[Tuner] OK
[2014-06-20 13:40:20,818] [Log ] [TVService] [INFO ] - dvb: Setting lastFilter to Tuner filter
[2014-06-20 13:40:20,823] [Log ] [TVService] [INFO ] - dvb: Find BDA receiver
[2014-06-20 13:40:20,823] [Log ] [TVService] [INFO ] - dvb: match Capture by Tuner device path
[2014-06-20 13:40:20,828] [Log ] [TVService] [INFO ] - dvb: -7160 KNC BDA Digital Capture DVBS2
[2014-06-20 13:40:20,833] [Log ] [TVService] [INFO ] - dvb: Render [Tuner]->[Capture] AOK
[2014-06-20 13:40:20,833] [Log ] [TVService] [INFO ] - dvb: Setting lastFilter to Capture device
[2014-06-20 13:40:20,838] [Log ] [TVService] [INFO ] - dvb: WinTv CI module not detected.
[2014-06-20 13:40:20,843] [Log ] [TVService] [INFO ] - dvb:add Inf Tee filter
[2014-06-20 13:40:20,843] [Log ] [TVService] [INFO ] - dvb: Render ...->[inftee]
[2014-06-20 13:40:20,848] [Log ] [TVService] [INFO ] - dvb: Setting lastFilter to Inf Tee
[2014-06-20 13:40:20,848] [Log ] [TVService] [INFO ] - dvb: Render [inftee]->[demux]
[2014-06-20 13:40:20,848] [Log ] [TVService] [INFO ] - dvb: AddTransportStreamFiltersToGraph
[2014-06-20 13:40:20,853] [Log ] [TVService] [INFO ] - add BDA MPEG2 Transport Information Filter filter
[2014-06-20 13:40:20,853] [Log ] [TVService] [INFO ] - pinTif:name:IB Input [3/0] Direction:Input Connected:False
[2014-06-20 13:40:20,853] [Log ] [TVService] [INFO ] - Connect tif and mpeg2 sections and tables
[2014-06-20 13:40:20,853] [Log ] [TVService] [INFO ] - dvb:try tif:name:001 [4/0] Direction:Output Connected:False
[2014-06-20 13:40:20,858] [Log ] [TVService] [INFO ] - tif connected
[2014-06-20 13:40:20,858] [Log ] [TVService] [INFO ] - dvb: Render ..->[TsWriter]
[2014-06-20 13:40:20,858] [Log ] [TVService] [INFO ] - dvb: Checking for hardware specific extensions
[2014-06-20 13:40:20,858] [Log ] [TVService] [INFO ] - CAM is Default model
[2014-06-20 13:40:20,858] [Log ] [TVService] [INFO ] - Check for KNC
[2014-06-20 13:40:20,863] [Log ] [TVService] [INFO ] - KNC: IsKNC False
[2014-06-20 13:40:20,863] [Log ] [TVService] [DEBUG] - KNC: Disable CI
[2014-06-20 13:40:20,868] [Log ] [TVService] [DEBUG] - KNC: Disposing CI handler
[2014-06-20 13:40:20,868] [Log ] [TVService] [INFO ] - Check for Digital Everywhere
...
As far as i could find out, the problem is here:
ConditionalAccess.cs from line 136 (calls KNCAPI)
Code:
Log.Log.WriteFile("Check for KNC");
// Lookup device index of current card. only counting KNC cards by device path
int DeviceIndex = KNCDeviceLookup.GetDeviceIndex(card);
_knc = new KNCAPI(tunerFilter, (uint)DeviceIndex);
if (_knc.IsKNC)
{
//if (_knc.IsCamReady())
_ciMenu = _knc; // Register KNC CI Menu capabilities when CAM detected and ready
Log.Log.WriteFile("KNC card detected"); //// <-- never reached
return;
}
Release.DisposeToNull(ref _knc);
KNCAPI.cs from line 347 (Checks device desc against array ValidTuners)
Code:
public KNCAPI(IBaseFilter tunerFilter, uint DeviceIndex)
{
ptrPmt = Marshal.AllocCoTaskMem(1024);
ptrCallback = Marshal.AllocCoTaskMem(7 * 4); // 7*Int32
_ptrDataInstance = Marshal.AllocCoTaskMem(1024);
m_tunerFilter = tunerFilter;
FilterInfo info;
tunerFilter.QueryFilterInfo(out info);
foreach (String validTuner in ValidTuners)
{
if (info.achName == validTuner)
{
m_bIsKNC = true; //// <-- never reached
break;
}
}
if (!m_bIsKNC)
{
return;
}
// iDeviceIndex passed by TvLibrary ! Enumerated by DevicePath
m_iDeviceIndex = DeviceIndex;
Log.Log.Debug("KNC: card {0} detected: {1}", m_iDeviceIndex, info.achName);
OpenCI();
}
KNCAPI.cs from line 209:
Code:
#region constants
private string[] ValidTuners = new string[]
{
"KNC BDA DVB-S",
"KNC BDA DVB-S2",
"KNC BDA DVB-C",
"KNC BDA DVB-T",
"Mystique SaTiX DVB-S",
"Mystique SaTiX DVB-S2",
"Mystique CaBiX DVB-C2",
"Mystique TeRiX DVB-T2",
"Mystique SaTiX-S",
"Mystique SaTiX-S2",
"Mystique CaBiX-C2",
"Mystique TeRiX-T2"
};
#endregion
As you can see above, the card identifies itself as "KNC BDA DVBS2" without hyphen. Maybe this could be the problem that the acces to the CAM menu doesn't work - at least i suppose that from the code (I'm not a .NET coder, but other languages).
I would be glad if the ValidTuners array could be enlarged by the "KNC BDA DVBS2" without hyphen.
Thank you!
Thomas Candrian