Some key notes for this revision:
* The CA PMT and PMT parsing code is split into separate functions. Additional functionality is also moved to different functions.
* The previous CA PMT parsing logic is retained (written by theparasol), but the code is much simpler, easier to maintain and a bit faster.
* The CA PMT message is not completely parsed now if there is no need for it (e.g. no change is made to the channel).
* The PMT is now parsed only if it's necessary (e.g. for powervu channels, when no streams are present in CA PMT, etc).
* Added preliminary support for reading the "ca_pmt_cmd_id" value. A future update (in oscam and enigma2) will allow using multiple oscam instances simultaneously.
* Added support for a new descriptor with tag 0x87 in the CA PMT message, used exclusively for sending the ca device information.
* Added detailed information for the private CA PMT descriptors supported by oscam in the readme (for dvbapi client developers).
-[dvbapi] Fixed previous commit when WITH_EXTENDED_CW is enabled
-[dvbapi] Fixed 'ca_pmt_cmd_id' value for PMT files
-For CA PMT messages received via PMT files, set the "ca_pmt_cmd_id" to a proper value (ok_descrambling) instead of zero.
-Also made few cosmetic changes.
-[dvbapi] Reworked 'ca_pmt_cmd_id' skipping logic
-According to the spec
, the "ca_pmt_cmd_id"
value shall be present inside the ES info loop. Unfortunately, each dvbapi client does each own thing. The
only reliable way to detect when this info is present in the CA PMT is to actually check its value, like it
was done in the old code.
-Most boxes always send the typical value of 0x01 (ok_descrambling) and the above check works fine because
there is no descriptor_tag 0x01 to get confused with. On the contrary, for enigma2, values like 0x03 (query),
0x04 (not_selected) are possible (not yet, but soon). Skipping these higher values the same way will not work,
because descriptors with such tags can exist, so a different check is implemented for enigma2.
In practice, this commit fixes the VDR dvbapi plugin, as well as the enigma2 boxes with wrong dvbapi boxtype
setting ('none' instead on the correct 'dreambox' - the setting is irrelevant now, but will make a difference
in the future, so make sure you set it correctly).
-[dvbapi] Added option to enable/disable ecm.info file creation
-[nemu] Switched to oscam's function for getting the section length
-[biss] Clean up and bug fixes in Mode 1