Changeset 11529
- Timestamp:
- 06/29/19 18:29:54 (5 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r11528 r11529 2476 2476 channame, sizeof(channame)); 2477 2477 2478 cs_log("Demuxer %d stop descrambling program number%04X (%s)",2478 cs_log("Demuxer %d stopped descrambling for program %04X (%s)", 2479 2479 demux_id, demux[demux_id].program_number, channame); 2480 2480 … … 4173 4173 { 4174 4174 struct s_client *cl; 4175 for(cl = first_client->next; cl 4175 for(cl = first_client->next; cl; cl = cl->next) 4176 4176 { 4177 4177 if((cl->typ == 'p' || cl->typ == 'r') && cl->reader && cl->reader->ph.c_capmt) … … 4200 4200 if(!is_real_pmt) 4201 4201 { 4202 #define LIST_MORE 0x00 // *CA application should append a 'MORE' CAPMT object to the list and start receiving the next object4203 #define LIST_FIRST 0x01 // *CA application should clear the list when a 'FIRST' CAPMT object is received, and start receiving the next object4204 #define LIST_LAST 0x02 // *CA application should append a 'LAST' CAPMT object to the list and start working with the list4205 #define LIST_ONLY 0x03 // *CA application should clear the list when an 'ONLY' CAPMT object is received, and start working with the object4206 #define LIST_ADD 0x04 // *CA application should append an 'ADD' CAPMT object to the current list and start working with the updated list4207 #define LIST_UPDATE 0x05 // *CA application should replace an entry in the list with an 'UPDATE' CAPMT object, and start working with the updated list4208 4209 4202 #if defined WITH_COOLAPI || defined WITH_COOLAPI2 4210 4203 int32_t ca_pmt_list_management = LIST_ONLY; … … 4217 4210 cs_log_dbg(D_DVBAPI, "Receiver sends PMT command %d for channel %04X", ca_pmt_list_management, program_number); 4218 4211 4219 if(!pmt_stopmarking && (ca_pmt_list_management == LIST_FIRST || ca_pmt_list_management ==LIST_ONLY))4212 if(!pmt_stopmarking && (ca_pmt_list_management == CA_PMT_LIST_FIRST || ca_pmt_list_management == CA_PMT_LIST_ONLY)) 4220 4213 { 4221 4214 for(i = 0; i < MAX_DEMUX; i++) … … 4277 4270 } 4278 4271 4279 if(ca_pmt_list_management == LIST_UPDATE)4272 if(ca_pmt_list_management == CA_PMT_LIST_UPDATE) 4280 4273 { 4281 4274 cs_log("Demuxer %d PMT update for decoding of SRVID %04X! ", i, program_number); … … 4291 4284 4292 4285 // start using the new list 4293 if(ca_pmt_list_management != LIST_FIRST && ca_pmt_list_management !=LIST_MORE)4286 if(ca_pmt_list_management != CA_PMT_LIST_FIRST && ca_pmt_list_management != CA_PMT_LIST_MORE) 4294 4287 { 4295 4288 for(j = 0; j < MAX_DEMUX; j++) -
trunk/module-dvbapi.h
r11518 r11529 93 93 94 94 #define DVBAPI_INDEX_DISABLE 0xFFFFFFFF // only used for ca_pid_t 95 96 //----------------------------------------------------------------------------- 97 // CA PMT defined values according to EN 50221 98 // https://www.dvb.org/resources/public/standards/En50221.V1.pdf 99 // https://www.dvb.org/resources/public/standards/R206-001.V1.pdf 100 //----------------------------------------------------------------------------- 101 102 // ca_pmt_list_management: This parameter is used to indicate whether the user has selected a single program or several 103 // programs. The following values can be used: 104 105 #define CA_PMT_LIST_MORE 0x00 // The CA PMT object is neither the first one, nor the last one of the list. 106 107 #define CA_PMT_LIST_FIRST 0x01 // The CA PMT object is the first one of a new list of more than one CA PMT object. 108 // All previously selected programs are being replaced by the programs of the new list. 109 110 #define CA_PMT_LIST_LAST 0x02 // The CA PMT object is the last of the list. 111 112 #define CA_PMT_LIST_ONLY 0x03 // The list is made of a single CA PMT object. 113 114 #define CA_PMT_LIST_ADD 0x04 // The CA PMT has to be added to an existing list, that is, a new program has been seleced 115 // by the user, but all previously selected programs remain selected. 116 117 #define CA_PMT_LIST_UPDATE 0x05 // The CA PMT of a program already in the list is sent again because the version_number or 118 // the current_next_indicator has changed. 95 119 96 120 //----------------------------------------------------------------------------- … … 349 373 typedef struct demux_s 350 374 { 351 int8_t demux_index; // id of the (hardware) demux carrying the TS of this demux - we get this via CaPMT352 int8_t adapter_index; // id of the (hardware) adapter carrying the TS of this demux - we get this via CaPMT353 uint32_t ca_mask; // bit mask of ca devices used for descrambling of this demux - we get this via CaPMT354 int32_t socket_fd; 375 int8_t demux_index; // ID of the (hardware) demux device carrying this program - we get this via CA PMT 376 int8_t adapter_index; // ID of the adapter device carrying this program - we get this via CA PMT 377 uint32_t ca_mask; // Bit mask of ca devices used for descrambling this program - we get this via CA PMT 378 int32_t socket_fd; // Connection identifier through which we received the CA PMT object 355 379 uint16_t client_proto_version; 356 380 FILTERTYPE demux_fd[MAX_FILTER]; 357 int8_t ECMpidcount; // count of ECM pids in the demux381 int8_t ECMpidcount; // Count of ECM pids in this program 358 382 ECMPIDTYPE ECMpids[MAX_ECM_PIDS]; 359 int8_t EMMpidcount; // count of EMM pids in the demux383 int8_t EMMpidcount; // Count of EMM pids in this program 360 384 EMMPIDTYPE EMMpids[MAX_EMM_PIDS]; 361 385 struct timeb emmstart; // last time emm cat was started
Note:
See TracChangeset
for help on using the changeset viewer.