Opened 12 years ago
Closed 12 years ago
#2359 closed defect (fixed)
"feature" in dvbapi prevents Ned 1 HD from being descrambled properly
Reported by: | Erik Slagter | Owned by: | |
---|---|---|---|
Priority: | critical | Component: | DVBApi |
Severity: | high | Keywords: | Descrambling ecm pid |
Cc: | erik@… | Sensitive: | no |
Description
Revision
6306
Issue Description
Oscam will not descramble Ned 1 HD properly because it uses the wrong ecm pid in the end.
When the issue occurs
Always, Ned 1 HD.
How the issue is reproducable
Tune to Ned 1 HD and make oscam descramble it using a CDS (100:6a) card. It does not matter whether the card is local or remote. It also does not matter whether dvbapi configuration is used to select the proper (tunneled nagra) ecm pid.
Attachments (6)
Change History (15)
by , 12 years ago
comment:1 by , 12 years ago
Long description:
Several CDS channels carry both mediaguard2 ("seca 2") and tunneled nagra ("seca 3") ecm pids. Both have caid 100 and provid 6a. The mediaguard2 ecm's are to be used with a seca card (rather rare these days), the tunneled nagra ecm's are to be used with a nagra card. They cannot be exchanged.
OSCam does not have logic, like CCcam, to distinguish between "seca 2" and "seca 3" ecm pids. So one has to craft specific dvbapi commands to make OSCam choose the correct "100:6a" ecm pid for one's card.
If that has been accomplished, at least Ned 1 HD (maybe other channels too) will not descramble. OSCam says it is starting to descramble using pid #2, which is correct (see log) but no picture appears.
If you look at the logfile, you'll see a mentioning of "dvbapi: set filter pid: 0646". This is the WRONG ecm pid, although OSCam says it's going to use 70E earlier on.
The cause for this can be found in module-dvbapi.c, at line 606, this piece of code:
if (demux[demux_id].curindex == j || (demux[demux_id].ECMpids[demux[demux_id].curindex].CAID == demux[demux_id].ECMpids[j].CAID && demux[demux_id].ECMpids[demux[demux_id].curindex].PROVID == demux[demux_id].ECMpids[j].PROVID && demux[demux_id].ECMpids[j].PROVID > 0))
This will take ANY ecmpid that has features (caid/provid) equal to the requested caid/provid, even though it's another pid. In case of Ned 1 HD, this will select the wrong ecm pid, even though it has been correctly selected earlier on.
When the second condition is removed, Ned 1 HD does descramble correctly, so this is the cause of the problem.
Apparently some provider needs this workaround, but for CDS it's desastrous. I request to at least have an option to disable this workaround.
Thanks.
comment:2 by , 12 years ago
Additional info: box type is VU+Ultimo.
I did not add config files because the problem is independent of config files.
Similar for compile option, the code is not dependent on compile options.
comment:3 by , 12 years ago
you should take a look here : http://www.streamboard.tv:8001/ticket/1914
comment:5 by , 12 years ago
For the dutch and Belgium users it would be nice as the dvbapi code gets a overhaul so we don't need complex oscam.dvbapi "solutions" anymore.
This config is working on DM800HD PVR and CDS NL (0100:00006a)
NED 1 HD is decoding ok on this box. I know Erik is using a VU+ Ultimo.
I: 1817 #NL Nagra
I: 1818 #BE Nagra
I:0100::1B7B:0646 # IGNORE SECA2 PID NED1 HD
I:0100::0FAB:0643 # IGNORE SECA2 PID NED1 SD
I:0100::0FAC:0644 # IGNORE SECA2 PID NED2 SD
I:0100::0FAD:0645 # IGNORE SECA2 PID NED3 SD
I:0100::07D4:0643 # IGNORE SECA2 PID RTL4 SD
I:0100::07D5:0644 # IGNORE SECA2 PID RTL5 SD
I:0100::0FA2:0641 # IGNORE SECA2 PID SBS6 SD
I:0100::07D6:0649 # IGNORE SECA2 PID RTL7 SD
I:0100::07EF:0647 # IGNORE SECA2 PID Veronica SD CDS
I:0100::0FA3:0642 # IGNORE SECA2 PID NET5 SD
I:0100::07F4:064D # IGNORE SECA2 PID Comedy Central / Kindernet
I:0100::31E7:03E3 # IGNORE SECA2 PID Een SD
I:0100::31E8:03E4 # IGNORE SECA2 PID Ketnet/Canvas SD
P: 0100:00006A 1
comment:6 by , 12 years ago
Please don't mix the "seca2/seca3" issue with this issue. This issue is completely independent.
Oscam selects the correct ecm pid (according to dvbapi statement or internal logic) and AFTER THAT, it does another selection round and then still picks the wrong ecm pid after all.
Can please have a developer have a look at this piece of code and at least tell me what it's supposed to do?
comment:9 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Log file using -d128