- Timestamp:
- 08/30/19 18:10:45 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r11542 r11543 1762 1762 void dvbapi_start_sdt_filter(int32_t demux_id) 1763 1763 { 1764 dvbapi_start_filter(demux_id, demux[demux_id].pidindex, 0x 11, 0x001, 0x01, 0x42, 0xFF, 0, TYPE_SDT);1764 dvbapi_start_filter(demux_id, demux[demux_id].pidindex, 0x0011, 0x001, 0x01, 0x42, 0xFF, 0, TYPE_SDT); 1765 1765 demux[demux_id].sdt_filter = 0; 1766 1766 } … … 1773 1773 return; 1774 1774 #endif 1775 dvbapi_start_filter(demux_id, demux[demux_id].pidindex, 0x00 , 0x001, 0x01, 0x00, 0xFF, 0, TYPE_PAT);1775 dvbapi_start_filter(demux_id, demux[demux_id].pidindex, 0x0000, 0x001, 0x01, 0x00, 0xFF, 0, TYPE_PAT); 1776 1776 } 1777 1777 … … 2469 2469 { 2470 2470 int32_t j; 2471 2471 2472 for(j = 0; j < MAX_DEMUX; j++) 2472 2473 { 2473 if(demux[j].program_number == 0) { continue; } 2474 if(demux[j].program_number == 0) 2475 { 2476 continue; 2477 } 2478 2474 2479 dvbapi_stop_descrambling(j, msgid); 2475 2480 } … … 2479 2484 { 2480 2485 int32_t j; 2486 2481 2487 for(j = 0; j < MAX_DEMUX; j++) 2482 2488 { 2483 if(demux[j].program_number == 0) { continue; } 2489 if(demux[j].program_number == 0) 2490 { 2491 continue; 2492 } 2493 2484 2494 dvbapi_stop_filter(j, TYPE_EMM, msgid); 2485 2495 dvbapi_stop_filter(j, TYPE_SDT, msgid); … … 3801 3811 } 3802 3812 3803 static void dvbapi_parse_ ca_descriptor(int32_t demux_id, const uint8_t *buffer, uint8_t descriptor_length)3813 static void dvbapi_parse_pmt_ca_descriptor(int32_t demux_id, const uint8_t *buffer, uint8_t descriptor_length) 3804 3814 { 3805 3815 uint16_t i, ca_system_id, ca_pid; … … 3897 3907 case 0x09: // CA descriptor 3898 3908 { 3899 dvbapi_parse_ ca_descriptor(demux_id, buffer + i + 2, descriptor_length);3909 dvbapi_parse_pmt_ca_descriptor(demux_id, buffer + i + 2, descriptor_length); 3900 3910 break; 3901 3911 } … … 4076 4086 if(descriptor_tag == 0x09) // We only care about CA descriptors at program level 4077 4087 { 4078 dvbapi_parse_ ca_descriptor(demux_id, buffer + i + 2, descriptor_length);4088 dvbapi_parse_pmt_ca_descriptor(demux_id, buffer + i + 2, descriptor_length); 4079 4089 } 4080 4090 } … … 4737 4747 } 4738 4748 4739 static void dvbapi_parse_pmt(int32_t demux_id, const uint8_t *buffer, uint 32_t length, uint32_t msgid)4749 static void dvbapi_parse_pmt(int32_t demux_id, const uint8_t *buffer, uint16_t length, uint32_t msgid) 4740 4750 { 4741 4751 uint16_t program_number = b2i(2, buffer + 3); … … 5162 5172 5163 5173 dvbapi_stop_filter(demux_id, TYPE_SDT, msgid); 5164 }5165 }5166 5167 static void dvbapi_parse_pat(int32_t demux_id, uint8_t *buffer, uint32_t length, uint32_t msgid) 5168 { 5169 uint16_t srvid; 5170 uint 32_t i;5174 break; 5175 } 5176 } 5177 5178 static void dvbapi_parse_pat(int32_t demux_id, const uint8_t *buffer, uint16_t length, uint32_t msgid) 5179 { 5180 uint16_t i, srvid; 5171 5181 5172 5182 dvbapi_stop_filter(demux_id, TYPE_PAT, msgid); … … 5528 5538 int32_t pid = demux[demux_id].demux_fd[filter_num].pidindex; 5529 5539 uint16_t filtertype = demux[demux_id].demux_fd[filter_num].type; 5530 uint 32_t sctlen = SCT_LEN(buffer);5531 5532 if( (uint32_t) len < sctlen) // invalid CAT length5533 { 5534 cs_log_dbg(D_DVBAPI, "Received filter data with total length 0x%03X but section length is 0x%03X -> invalid length!", len, sctlen);5540 uint16_t sctlen = SCT_LEN(buffer); 5541 5542 if(len < sctlen) 5543 { 5544 cs_log_dbg(D_DVBAPI, "Received filter data with total length 0x%03X but section length is 0x%03X -> invalid length!", len, sctlen); 5535 5545 return; 5536 5546 } … … 5592 5602 if(len != 0) // len = 0 receiver encountered an internal bufferoverflow! 5593 5603 { 5594 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d Filter %d fetched ECM data (ecmlength = 0x%03X):",5604 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d filter %d fetched ECM data (length = 0x%03X):", 5595 5605 demux_id, filter_num + 1, sctlen); 5596 5606 … … 5963 5973 if(len != 0) // len = 0 receiver encountered an internal buffer overflow! 5964 5974 { 5965 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d Filter %d fetched EMM data (emmlength = 0x%03X):",5975 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d filter %d fetched EMM data (length = 0x%03X):", 5966 5976 demux_id, filter_num + 1, sctlen); 5967 5977 … … 6031 6041 if(filtertype == TYPE_SDT) 6032 6042 { 6033 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d Filter %d fetched SDT data (length = 0x%03X):",6043 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d filter %d fetched SDT data (length = 0x%03X):", 6034 6044 demux_id, filter_num + 1, sctlen); 6035 6045 … … 6039 6049 if(filtertype == TYPE_PAT) 6040 6050 { 6041 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d Filter %d fetched PAT data (length = 0x%03X):",6051 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d filter %d fetched PAT data (length = 0x%03X):", 6042 6052 demux_id, filter_num + 1, sctlen); 6043 6053 … … 6047 6057 if(filtertype == TYPE_PMT) 6048 6058 { 6049 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d Filter %d fetched PMT data (length = 0x%03X):",6059 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d filter %d fetched PMT data (length = 0x%03X):", 6050 6060 demux_id, filter_num + 1, sctlen); 6051 6061 … … 6055 6065 if(filtertype == TYPE_CAT) 6056 6066 { 6057 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d Filter %d fetched CAT data (length = 0x%03X):",6067 cs_log_dump_dbg(D_DVBAPI, buffer, sctlen, "Demuxer %d filter %d fetched CAT data (length = 0x%03X):", 6058 6068 demux_id, filter_num + 1, sctlen); 6059 6069
Note:
See TracChangeset
for help on using the changeset viewer.