Hi, Im triying to send a full list of all frequencies in all streams
First I try to add a new descriptor class with frequencies
Code:
class frequency_descriptor_loop_item(DVBobject):
def pack(self):
fmt = "!L"
return pack(fmt,
self.center_frequency,
)
class frequency_list_descriptor(Descriptor):
descriptor_tag = 0x62
def bytes(self):
frequency_list_bytes = string.join(
map(lambda x: x.pack(),
self.frequency_list_descriptor_loop),
"")
FMT = "!%dsB" % len(frequency_list_bytes)
return pack(FMT,
frequency_list_bytes,
self.coding_type
)
But this doesn't work
After i try this code, and probably can work with some fix (because when I try to have an automatic o manual search on frequency 306.000 Mhz, find the 5 first programs sended in first port 45500, but after continue the search trying to get the rest of channels wihtout success, and the inverse if i want in 314.000 Mhz, find the next 5 programs but can't get the 5 first)
Code:
#
# Network Information Table
#
nit = network_information_section(
network_id = 3001,
network_descriptor_loop = [
network_descriptor(
network_name = "MyNet",
),
],
transport_stream_loop = [
transport_stream_loop_item(
transport_stream_id = 1,
original_network_id = 3001,
transport_descriptor_loop = [
transport_stream_cable_descriptor(
frequency = 0x03060000,
FEC_outer = 0x0000,
modulation = 0x03, # 64 QAM
symbol_rate = 0x0069000,
FEC_inner = 0x0000,
),
service_list_descriptor(
dvb_service_descriptor_loop = [
service_descriptor_loop_item(
service_ID = 2, # Ids provided by a D5 multiplexor
service_type = 1,
),
service_descriptor_loop_item(
service_ID = 4,
service_type = 1,
),
...
],
),
logical_channel_descriptor(
lcn_service_descriptor_loop = [
lcn_service_descriptor_loop_item(
service_ID = tve_service_id,
visible_service_flag = 1, #49153,
logical_channel_number = 1, #tve_program_number,
),
lcn_service_descriptor_loop_item(
service_ID = antena3_service_id,
visible_service_flag = 1,#49154,
logical_channel_number = 2, #antena3_program_number,
),
...
],
),
],
),
transport_stream_loop_item(
transport_stream_id = 2,
original_network_id = 3001,
transport_descriptor_loop = [
transport_stream_cable_descriptor(
frequency = 0x03140000,
FEC_outer = 0x0000,
modulation = 0x03, # 64 QAM
symbol_rate = 0x0069000,
FEC_inner = 0x0000,
),
service_list_descriptor(
dvb_service_descriptor_loop = [
lcn_service_descriptor_loop_item(
service_ID = 2,
visible_service_flag = 1,
logical_channel_number = 1,
),
lcn_service_descriptor_loop_item(
service_ID = 4,
visible_service_flag = 1,
logical_channel_number = 2,
),
...
],
),
logical_channel_descriptor(
lcn_service_descriptor_loop = [
lcn_service_descriptor_loop_item(
service_ID = 2,
visible_service_flag = 1,
logical_channel_number = 6,
),
lcn_service_descriptor_loop_item(
service_ID = 4,
visible_service_flag = 1,
logical_channel_number = 7,
),
...
],
),
],
),
],
current_nex_indicator = 1,
version_number = version,
section_number = 0,
last_section_number = 0,
)
#
# Service Description Table (ETSI EN 300 468 5.2.3)
#
sdt = service_description_section(
transport_stream_id = 1,
original_network_id = 3001,
service_loop = [
service_loop_item(
service_ID = 2,
EIT_schedule_flag = 1, # 0 no current even information is broadcasted, 1 broadcasted
EIT_present_following_flag = 1, # 0 no next event information is broadcasted, 1 is broadcasted
running_status = 4, # 4 service is running, 1 not running, 2 starts in a few seconds, 3 pausing
free_CA_mode = 0, # 0 means service is not scrambled, 1 means at least a stream is scrambled
service_descriptor_loop = [
service_descriptor(
service_type = 1, # digital television service
service_provider_name = "MyNet",
service_name = "TVE 1",
),
],
),
service_loop_item(
service_ID = 4,
EIT_schedule_flag = 1, # 0 no current even information is broadcasted, 1 broadcasted
EIT_present_following_flag = 1, # 0 no next event information is broadcasted, 1 is broadcasted
running_status = 4, # 4 service is running, 1 not running, 2 starts in a few seconds, 3 pausing
free_CA_mode = 0, # 0 means service is not scrambled, 1 means at least a stream is scrambled
service_descriptor_loop = [
service_descriptor(
service_type = 1, # digital television service
service_provider_name = "MyNet",
service_name = "Antena 3",
),
],
),
...
],
current_nex_indicator = 1,
version_number = peluche_version,
section_number = 0,
last_section_number = 0,
)
sdt2 = service_description_section(
transport_stream_id = 2,
original_network_id = 3001,
service_loop = [
service_loop_item(
service_ID = 2,
EIT_schedule_flag = 1, # 0 no current even information is broadcasted, 1 broadcasted
EIT_present_following_flag = 1, # 0 no next event information is broadcasted, 1 is broadcasted
running_status = 4, # 4 service is running, 1 not running, 2 starts in a few seconds, 3 pausing
free_CA_mode = 0, # 0 means service is not scrambled, 1 means at least a stream is scrambled
service_descriptor_loop = [
service_descriptor(
service_type = 1, # digital television service
service_provider_name = "MyNet",
service_name = "Hollywood",
),
],
),
service_loop_item(
service_ID = 4,
EIT_schedule_flag = 1, # 0 no current even information is broadcasted, 1 broadcasted
EIT_present_following_flag = 1, # 0 no next event information is broadcasted, 1 is broadcasted
running_status = 4, # 4 service is running, 1 not running, 2 starts in a few seconds, 3 pausing
free_CA_mode = 0, # 0 means service is not scrambled, 1 means at least a stream is scrambled
service_descriptor_loop = [
service_descriptor(
service_type = 1, # digital television service
service_provider_name = "MyNet",
service_name = "Somos",
),
],
),
...
],
current_nex_indicator = 1,
version_number = version,
section_number = 0,
last_section_number = 0,
)
Where is my fail?