csa: fix some silly mistakes in TS processing

I have now managed to get a cwc decryption to work on my system.
This commit is contained in:
Adam Sutton 2013-06-17 16:40:59 +01:00
parent 9e5d3ae933
commit 88578c22a6
4 changed files with 7 additions and 2 deletions

View file

@ -33,7 +33,7 @@ struct mpegts_table;
/* PIDs */
#define DVB_PAT_PID 0x00
#define DVB_CAT_PID 0x02
#define DVB_CAT_PID 0x01
#define DVB_NIT_PID 0x10
#define DVB_SDT_PID 0x11
#define DVB_BAT_PID 0x11

View file

@ -499,6 +499,7 @@ static int
dvb_ca_callback
(mpegts_table_t *mt, const uint8_t *ptr, int len, int tableid)
{
(void)dvb_table_begin(mt, ptr, len, tableid, 0, NULL, NULL, NULL);
#if ENABLE_CWC
cwc_emm((uint8_t*)ptr, len, (uintptr_t)mt->mt_opaque, mt->mt_mux);
#endif
@ -530,6 +531,8 @@ dvb_cat_callback
case DVB_DESC_CA:
caid = ( ptr[0] << 8) | ptr[1];
pid = ((ptr[2] & 0x1f) << 8) | ptr[3];
tvhdebug("cat", " caid %04X (%d) pid %04X (%d)",
(uint16_t)caid, (uint16_t)caid, pid, pid);
if(pid != 0)
mpegts_table_add(mm, 0, 0, dvb_ca_callback,
(void*)caid, "ca", MT_FULL, pid);

View file

@ -102,7 +102,7 @@ ts_recv_packet0
case SCT_CA:
if(st->es_section == NULL)
st->es_section = calloc(1, sizeof(mpegts_psi_section_t));
mpegts_psi_section_reassemble(st->es_section, tsb, 1, got_ca_section, st);
mpegts_psi_section_reassemble(st->es_section, tsb, 0, got_ca_section, st);
break;
default:

View file

@ -891,6 +891,8 @@ service_restart(service_t *t, int had_components)
if(t->s_refresh_feed != NULL)
t->s_refresh_feed(t);
descrambler_service_start(t);
if(TAILQ_FIRST(&t->s_components) != NULL) {
sm = streaming_msg_create_data(SMT_START,