Modify

Ticket #5562 (closed defect: fixed)

Opened 4 years ago

Last modified 2 years ago

scanning Astra 28.2 doesn't populate the default authority descriptor

Reported by: stuarta Owned by: janne
Priority: minor Milestone: 0.23
Component: MythTV - Channel Scanner Version: head
Severity: low Keywords:
Cc: Ticket locked: no

Description

scanning Astra 28.2 (dvb-s) doesn't pickup the default authority descriptor. The equivalent scan on dvb-t picks up the default authority descriptors

This is used in EIT to create programid's & seriesid's

Stuart

Attachments

patch1_addbat.patch (5.3 KB) - added by David Matthews <dm@…> 3 years ago.
patch2_descriptors_tables.patch (1.8 KB) - added by David Matthews <dm@…> 3 years ago.
patch3_listeners.patch (4.8 KB) - added by David Matthews <dm@…> 3 years ago.
patch4_scanning.patch (9.5 KB) - added by David Matthews <dm@…> 3 years ago.
ticket5562-quilt.tar.gz (5.6 KB) - added by stuarta 3 years ago.
Quilt Patchset containing work in progress of patch4 of David's original set of patches
t5562_populate_default_authority.diff (20.2 KB) - added by janne 3 years ago.
untested
t5562_populate_default_authority_r21414.diff (17.7 KB) - added by janne 3 years ago.
t5562_default_authority_r21554.diff (19.6 KB) - added by janne 3 years ago.
updated to r21554 and added verbose messages
log-dvbt-full-uk-scan-r21591-t5562.tar.bz2 (38.6 KB) - added by Nick Morrott <knowledgejunkie (at) gmail (dot) com> 3 years ago.
mythconverg-dvbt-full-uk-scan-r21591-t5562.sql.bz2 (4.8 KB) - added by Nick Morrott <knowledgejunkie (at) gmail (dot) com> 3 years ago.
log-dvbs-tuned-scan-astra2-r21591-t5562.tar.bz2 (10.4 KB) - added by Nick Morrott <knowledgejunkie (at) gmail (dot) com> 3 years ago.
mythconverg-dvbs-tuned-scan-astra2-r21591-t5562.sql.bz2 (1.7 KB) - added by Nick Morrott <knowledgejunkie (at) gmail (dot) com> 3 years ago.
defaultauthority-0-22-fixes-r23473.patch (11.9 KB) - added by Douglas Mackay <douglas.mackay@…> 2 years ago.
defaultauthority-trunk-r23491.patch (11.9 KB) - added by Douglas Mackay <douglas.mackay@…> 2 years ago.
defaultauthority_patch2-0-22-fixes-r23473.patch (9.1 KB) - added by Douglas Mackay <douglas.mackay@…> 2 years ago.
defaultauthority_patch2-trunk-r23491.patch (9.1 KB) - added by Douglas Mackay <douglas.mackay@…> 2 years ago.

Change History

comment:1 Changed 4 years ago by anonymous

The descriptor is found in the BAT for satellite and as such covers all the services on a transponder.

comment:2 Changed 4 years ago by David Waring <david.waring@…>

Note: See #5603 for a patch for network level default authorities. BAT parsing would need to be added to that in order to satisfy this ticket.

comment:3 Changed 3 years ago by Dibblah

  • Status changed from new to assigned

Changed 3 years ago by David Matthews <dm@…>

Changed 3 years ago by David Matthews <dm@…>

Changed 3 years ago by David Matthews <dm@…>

Changed 3 years ago by David Matthews <dm@…>

comment:4 Changed 3 years ago by David Matthews <dm@…>

I've been looking into this and the attached patches enable the channel scanner to pick up the default authority from Freesat data. The default authority is actually transmitted using BAT and SDTo on the non-standard PID 3841. BAT is used where many channels share the same default authority, essentially BBC and ITV; and SDTo for the remainder. One complication that appeared during testing was that there are SDTo, and possibly BAT, on PID 0x11 with the same ID as those on PID 3841 but different versions.

Patches 1, 2 and 3 are fairly straightforward. I originally used the BAT code from #5530 but once it became clear that the layout of a BAT was essentially the same as a NIT I largely copied the code from there.

Patch 4, which adds this into the scanner, is more complicated. The existing logic is driven by the arrival of the NIT and SDT. When both have been seen the information from the SDT is added to the database and the next transport is selected. In the case of the Freesat default authority it is necessary to wait until all the information from the BAT and SDTo has been collected before the SDT can be processed, but with the proviso that not all services in the SDT have a default authority. This is done by looking at the SDT when it first arrives and setting a timer of 10 seconds for the first of the BAT and SDTo to arrive. Each BAT and SDTo is processed to add the default authorities to a map and the timer extended. The next time an SDT arrives after the time has expired it can be processed. This all works because DVBStreamData only allows tables with a particular version through once. The version for SDT is reset (actually DTVSignalMonitor::HandleSDT does this anyway) so that it can be seen again. The changes to ScanStreamData? are to ensure that only the BAT and SDTo on the desired pid are processed.

Note: While developing this patch I came across a bug that causes "mythtv-setup -v siparser" to segfault at the end of a channel scan. The problem is that the destructor for SIScan calls SIScan::loc after the channel object has been deleted. The fix is to set channel to zero in deleteLater and this fix is included in patch4.

comment:5 Changed 3 years ago by stuarta

(In [19620]) Refs #5562. Fixes a channel scanner segfault that has been around for a while. The fix was found by David Matthews while working on this ticket. This one line is found in patch4_scanning.patch

comment:6 Changed 3 years ago by stuarta

(In [20417]) Refs #5562, Refs #2695. Adds the Bouquet Table parsing class for BAT support.

comment:7 Changed 3 years ago by stuarta

(In [20418]) Refs #5562, Refs #2695. Bouquet Table plumbing. Adds the plumbing to start collecting BAT tables as they are found in the broadcast stream.

comment:8 Changed 3 years ago by stuarta

(In [20419]) Refs #5562, Refs #2695. Whitespace only cleanup of dvbdescriptors.cpp

comment:9 Changed 3 years ago by stuarta

(In [20420]) Refs #5562, Refs #2695. A bunch of dvbdescriptor updates.

Creates a ServiceDescriptorMapping? class to provide a single point to convert service descriptors.

Make ServiceDescriptor? use the ServiceDescriptorMapping? class.

Make the BouquetNameDescriptor? toString useful.

Enhance the CountryAvailabilityDescriptor? to print out country codes.

Finish off ServiceListDescriptor? toString. Uses ServiceDescriptorMapping? class.

Adds DefaultAuthorityDescriptor?.

Add plumbing to print out DefaultAuthorityDescriptor?, BouquetNameDescriptor?, CountryAvailabilityDescriptor?, ServiceListDescriptor? when present in the broadcast stream.

comment:10 Changed 3 years ago by stuarta

  • Status changed from assigned to started

comment:11 Changed 3 years ago by stuarta

(In [20652]) Refs #2695, Refs #5562. Adds default_authority column to channelscan_channel.

Default Authority's can be channel specific or mplex specific.

Changed 3 years ago by stuarta

Quilt Patchset containing work in progress of patch4 of David's original set of patches

comment:12 Changed 3 years ago by stuarta

  • Owner changed from stuarta to janne
  • Status changed from started to assigned

I've uploaded the work in progress at porting Patch4 from David's original patchset to the new scanner. I'm not likely to have time to finish it before 0.22

What works: BAT parsing. DVB-T Default Authorities -> channelscan_channel What doesn't:

  • DVB-S BAT default authorities from BAT -> channelscan_dtv_multiplex
  • Default Authorities from channelscan_channel -> channel
  • Default Authorities from channelscan_dtv_multiplex -> dtv_multiplex

Changed 3 years ago by janne

untested

comment:13 Changed 3 years ago by janne

t5562_populate_default_authority.diff reworked from stuarta's patches:[BR] channelscan_channel default authority should be populated from SDT, SDTo and BAT[BR] channel default authority should be updated on insert or update

There seems to be no compelling reason to use default authority in both tables. If there is one it can be easily added.

comment:14 Changed 3 years ago by janne

(In [21413]) Allows scanstreamdata to listen on the additional freesat SI PID, Refs #5562

adds freesat SI and EIT PIDs

based on patch by: David Matthews and Stuart Auchterlonie

Changed 3 years ago by janne

Changed 3 years ago by janne

updated to r21554 and added verbose messages

comment:15 Changed 3 years ago by Nick Morrott <knowledgejunkie (at) gmail (dot) com>

Real-world UK DVB-T testing of the t5562_default_authority_r21554.diff applied against trunk r21591 is very positive - all major channels/groups (BBC/ITV/Channel4/Five) were assigned their respective default authorities, several others were assigned their own default authority.

22/86 channels were not assigned a default authority.

Logs and DB tables attached.

DVB-S testing to follow shortly.

Changed 3 years ago by Nick Morrott <knowledgejunkie (at) gmail (dot) com>

Changed 3 years ago by Nick Morrott <knowledgejunkie (at) gmail (dot) com>

comment:16 Changed 3 years ago by Nick Morrott <knowledgejunkie (at) gmail (dot) com>

Real-world Astra 2 DVB-S testing of the t5562_default_authority_r21554.diff applied against trunk r21591 is very negative - the full tuned scan was completely broken on my system and produced no usable channels.

Initial observations were:

i) only the starting mux was scanned
ii) all channels on that mux were incorrectly 'detected' as MPEG channels
iii) none of the channels/muxes had their default authority recorded

Logs and DB tables attached.

Changed 3 years ago by Nick Morrott <knowledgejunkie (at) gmail (dot) com>

Changed 3 years ago by Nick Morrott <knowledgejunkie (at) gmail (dot) com>

comment:17 Changed 3 years ago by Nick Morrott <knowledgejunkie (at) gmail (dot) com>

Note that my DVB-S testing output includes scans of different muxes and decryption settings to see if the breakage was consistent (and it was).

comment:18 Changed 3 years ago by stuartm

  • Component changed from channelscan to MythTV - Channel Scanner

comment:19 Changed 3 years ago by janne

  • Milestone changed from 0.22 to 0.23

pushing this to 0.23

comment:20 Changed 3 years ago by stephengrobertson@…

I'm just wanting to check my reading of this, that this implies that currently [22552] scanning DVB-T will not insert default authority data and therefore because of #5603 programid data will be also not be populated.

comment:21 Changed 3 years ago by janne

(In [22612]) Adds default authority handling to the new channel scanner. Refs #5562

based on patch by: David Matthews and Stuart Auchterlonie

comment:22 Changed 3 years ago by stuarta

(In [22616]) Closes #7441, Refs #5562. Backport [22612] and [22613] to 0.22-fixes.

This fixes a regression with the rewritten channel scanner that caused it to no longer populate the default_authority information for a channel on DVB-T.

Changed 2 years ago by Douglas Mackay <douglas.mackay@…>

Changed 2 years ago by Douglas Mackay <douglas.mackay@…>

comment:23 Changed 2 years ago by Douglas Mackay <douglas.mackay@…>

Port of David's patch to new channel scanner.

Tested successfully with UK DVB-T Freeview & UK DVB-S Freesat

Changed 2 years ago by Douglas Mackay <douglas.mackay@…>

Changed 2 years ago by Douglas Mackay <douglas.mackay@…>

comment:24 Changed 2 years ago by Douglas Mackay <douglas.mackay@…>

Updated patches that don't touch scanstreamdata

comment:25 Changed 2 years ago by stuartm

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [23704]) Fix default authority parsing for DVB-S. Closes #5562.

View

Add a comment

Modify Ticket

Action
as closed
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.