The EIT header ID field should not contain the network ID, but,
instead, the service_id of the program described at EIT.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
goto free_service_list;
m->si.eit = vidtv_psi_eit_table_init(m->network_id,
- m->transport_stream_id);
+ m->transport_stream_id,
+ programs->service_id);
if (!m->si.eit)
goto free_nit;
struct vidtv_psi_table_eit
*vidtv_psi_eit_table_init(u16 network_id,
- u16 transport_stream_id)
+ u16 transport_stream_id,
+ __be16 service_id)
{
struct vidtv_psi_table_eit *eit;
const u16 SYNTAX = 0x1;
eit->header.bitfield = cpu_to_be16((SYNTAX << 15) | (ONE << 14) | (ONES << 12));
- eit->header.id = cpu_to_be16(network_id);
+ eit->header.id = service_id;
eit->header.current_next = ONE;
eit->header.version = 0x1f;
struct vidtv_psi_table_eit
*vidtv_psi_eit_table_init(u16 network_id,
- u16 transport_stream_id);
+ u16 transport_stream_id,
+ u16 service_id);
/**
* struct vidtv_psi_eit_write_args - Arguments for writing an EIT section