you can capture the stream and look at it with dvbsnoop. All the logic is in Enigma here.
Ok, I'm done with this. I am just take a couple of the days to learning myself about containment of the DVB-streams basics, and what I am found.
Your side take a set of pids from Enigma2 ? Or parse PAT && CAT && PMT itself ?
This is important, because resulting set of pids on encrypted channels is totally incomplete.
This is what using the your side on encrypted channel by default (just switch on to channel and dump the pid set):
root@vuuno:~# /opt/bin/mediaclient -w -d /dev/dvb/adapter1/dvr0
Using device: /dev/dvb/adapter1/dvr0
ID | PID
----------
0000 | 0x0000 - 0
0001 | 0x00C9 - 201
0002 | 0x00D2 - 210
0003 | 0x00FA - 250
0004 | 0x00C8 - 200
0005 | 0x0012 - 18
root@vuuno:~#
And this - is the dvbsnoop analysis(with cuts to reduce the message size), performed on TS, catched when HW pid filter is switched off (no matter where - on STB or on the PC with the ProgDVB). Missed pids marked as Bold.
CAT-table:------------------------------------------------------------
TS-Packet: 00000001 PID: 1 (0x0001), Length: 188 (0x00bc)
------------------------------------------------------------
{cut}
TS sub-decoding (1 packet(s) stored for PID 0x0001):
=====================================================
TS contains Section...
SI packet (length=18):
PID: 1 (0x0001) [= assigned for: ISO 13818-1 Conditional Access Table (CAT)]
Guess table from table id...
CAT-decoding....
Table_ID: 1 (0x01) [= Conditional Access Table (CAT)]
section_syntax_indicator: 1 (0x01)
(fixed): 0 (0x00)
reserved_1: 3 (0x03)
Section_length: 15 (0x000f)
reserved_2: 262143 (0x3ffff)
Version_number: 2 (0x02)
current_next_indicator: 1 (0x01) [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)
MPEG-DescriptorTag: 9 (0x09) [= CA_descriptor]
descriptor_length: 4 (0x04)
CA_system_ID: 2816 (0x0b00) [= Norwegian Telekom]
reserved: 7 (0x07)
CA_PID: 90 (0x005a)
CRC: 734917485 (0x2bcdf36d)
PMT-table:------------------------------------------------------------
TS-Packet: 00000001 PID: 200 (0x00c8), Length: 188 (0x00bc)
------------------------------------------------------------
{cut}
TS sub-decoding (1 packet(s) stored for PID 0x00c8):
=====================================================
TS contains Section...
SI packet (length=53):
PID: 200 (0x00c8)
Guess table from table id...
PMT-decoding....
Table_ID: 2 (0x02) [= Program Map Table (PMT)]
section_syntax_indicator: 1 (0x01)
(fixed '0'): 0 (0x00)
reserved_1: 3 (0x03)
Section_length: 50 (0x0032)
Program_number: 2 (0x0002)
reserved_2: 3 (0x03)
Version_number: 16 (0x10)
current_next_indicator: 1 (0x01) [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)
reserved_3: 7 (0x07)
PCR PID: 201 (0x00c9)
reserved_4: 15 (0x0f)
Program_info_length: 6 (0x0006)
MPEG-DescriptorTag: 9 (0x09) [= CA_descriptor]
descriptor_length: 4 (0x04)
CA_system_ID: 2816 (0x0b00) [= Norwegian Telekom]
reserved: 7 (0x07)
CA_PID: 260 (0x0104)
Stream_type loop:
Stream_type: 2 (0x02) [= ITU-T Rec. H.262 | ISO/IEC 13818-2 Video | ISO/IEC 11172-2 constr. parameter video stream]
{cut}
Summary, HW filter misses at least two Pids:
CA_PID: 90 (0x005a) - common TS for EMM/ECM transmission
CA_PID: 260 (0x0104) - per channel TS for EMM/ECM transmission
But.
I must to say, if I add this pids manually to pid set, nothing happens. Channels still encrypted.
This is may caused by one of two reasons. Or by both.
1) due to using pairing Conax cam - it needs some more information, than provided by standart pids (90 && 260). It may needs some additional pid. But I am not shure - it is a hypothesis.
2) due to incomplete handshake between smartcard and CAM, the CAM rejects all data incoming from this CA pids, and it affects to the pid set, which your side takes from enigma.
Described here - covers an encryption issue. Not an updating firmware. Firmware issue - is still not cleared for me - how it regulated by EBU standarts (where and how declared additional pids with the new firmware data).