Commit 91a8a240 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

media: vidtv: properly fill EIT service_id



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: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 1d2b2a6d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -450,7 +450,8 @@ int vidtv_channel_si_init(struct vidtv_mux *m)
		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;

+3 −2
Original line number Diff line number Diff line
@@ -1809,7 +1809,8 @@ void vidtv_psi_eit_event_assign(struct vidtv_psi_table_eit *eit,

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;
@@ -1824,7 +1825,7 @@ struct vidtv_psi_table_eit

	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;
+2 −1
Original line number Diff line number Diff line
@@ -738,7 +738,8 @@ struct vidtv_psi_table_eit {

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