Opened 5 months ago

#13463 assigned Bug Report - General

Incorrect classification of data channels as TV channels

Reported by: Klaas de Waal Owned by: Klaas de Waal
Priority: minor Milestone: needs_triage
Component: MythTV - Mythtv-setup Version: Master Head
Severity: medium Keywords: DVB SDT service_type Echostar
Cc: Stuart Auchterlonie Ticket locked: no

Description

Some DVB satellite channels are incorrectly classified as TV channels. For example, channel "GFD Service" on Astra-1 19.2E is added to the list of TV channels even when in mythtv-setup/Channel Editor/Channel? Scan/Desired? Services only "TV" is selected.

Analysis shows that "GFD Service" has service_type 0x96. This is not a TV service but a "user defined" value as defined in "Table 89:Service type coding", page 83, DVB Bluebook A038, Feb 2019.

In MythTV the service_type evaluation is done in dvbdescriptors.h, function IsDTV. In addition to the service_type values defined in Table 89 there are also a number of user defined values classified as TV.
These additional values are used in the Dish/Echostar/Nimiq? satellite channels to identify TV channels, as described in ticket #2372. The service type 0x96 used by "GFD Service" is one of those additional values.

As I understand it, the user defined service_type values should be preceded by a private_data_specifier that identifies the user, as defined in https://www.dvbservices.com/identifiers/private_data_spec_id

In the aforementioned Astra-1 streams the private_data_specifier is present and has the value 0x2 which corresponds to BskyB.

The correct solution, as I see it, is to use the Dish/Echostar/Nimiq? service types only when they have been preceded by the correct private data specifier. For this I need to know if there are private data specifiers present and what the values are. If somebody knows this please tell me!

Another possibility is to use the original network ID to identify Dish/Echostar/Nimiq? services. This is implicitly suggested in comment 5 of ticket #2372 where the table dtv_privatetypes is mentioned. This table contains a network ID and a list of service types. However, I have not found code that does actually use this table. Also, given the rather static nature of these numbers (ticket #2372 was closed 11 years ago) a hard-coded implementation might be the best solution.

Comments are welcome!

Change History (0)

Note: See TracTickets for help on using tickets.