if ( data[ptr-1] < 0x40 )
--ptr;
- uniqueEPGKey service( HILO(eit->service_id), HILO(eit->original_network_id), HILO(eit->transport_stream_id) );
+ // Cablecom HACK .. tsid / onid in eit data are incorrect.. so we use
+ // it from running service (just for current transport stream eit data)
+ bool use_eit_chid = data[0] == 0x4F || data[0] > 0x5F;
+ eDVBChannelID chid = channel->channel->getChannelID();
+ uniqueEPGKey service( HILO(eit->service_id),
+ use_eit_chid ? HILO(eit->original_network_id) : chid.original_network_id.get(),
+ use_eit_chid ? HILO(eit->transport_stream_id) : chid.transport_stream_id.get() );
+
eit_event_struct* eit_event = (eit_event_struct*) (data+ptr);
int eit_event_size;
int duration;