descrambler_notify_deliver( mpegts_service_t *t, descramble_info_t *di )
{
streaming_message_t *sm;
- struct descramble_info *di2;
int r;
lock_assert(&t->s_stream_mutex);
}
memcpy(t->s_descramble_info, di, sizeof(*di));
- di2 = malloc(sizeof(*di2));
- memcpy(di2, di, sizeof(*di2));
- sm = streaming_msg_create_data(SMT_DESCRAMBLE_INFO, di2);
- sm->sm_data = di;
-
+ sm = streaming_msg_create_data(SMT_DESCRAMBLE_INFO, di);
streaming_service_deliver((service_t *)t, sm);
}
tvhdebug(LS_DESCRAMBLER, "no key for service='%s'", t->s_dvb_svcname);
di = calloc(1, sizeof(*di));
- di->pid = t->s_components.set_pmt_pid;
+ pthread_mutex_lock(&t->s_stream_mutex);
+ di->pid = t->s_components.set_pmt_pid;
descrambler_notify_deliver(t, di);
+ pthread_mutex_unlock(&t->s_stream_mutex);
}
void