Opened 17 years ago
Closed 15 years ago
#5562 closed defect (fixed)
scanning Astra 28.2 doesn't populate the default authority descriptor
Reported by: | Stuart Auchterlonie | Owned by: | Janne Grunau |
---|---|---|---|
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 (16)
Change History (41)
comment:1 Changed 17 years ago by
comment:2 Changed 17 years ago by
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 16 years ago by
Status: | new → assigned |
---|
Changed 16 years ago by
Attachment: | patch1_addbat.patch added |
---|
Changed 16 years ago by
Attachment: | patch2_descriptors_tables.patch added |
---|
Changed 16 years ago by
Attachment: | patch3_listeners.patch added |
---|
Changed 16 years ago by
Attachment: | patch4_scanning.patch added |
---|
comment:4 Changed 16 years ago by
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 16 years ago by
comment:6 Changed 16 years ago by
comment:7 Changed 16 years ago by
comment:8 Changed 16 years ago by
comment:9 Changed 16 years ago by
(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 16 years ago by
Status: | assigned → started |
---|
comment:11 Changed 16 years ago by
Changed 16 years ago by
Attachment: | ticket5562-quilt.tar.gz added |
---|
Quilt Patchset containing work in progress of patch4 of David's original set of patches
comment:12 Changed 16 years ago by
Owner: | changed from Stuart Auchterlonie to Janne Grunau |
---|---|
Status: | started → 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
comment:13 Changed 16 years ago by
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 16 years ago by
Changed 16 years ago by
Attachment: | t5562_populate_default_authority_r21414.diff added |
---|
Changed 16 years ago by
Attachment: | t5562_default_authority_r21554.diff added |
---|
updated to r21554 and added verbose messages
comment:15 Changed 16 years ago by
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 16 years ago by
Attachment: | log-dvbt-full-uk-scan-r21591-t5562.tar.bz2 added |
---|
Changed 16 years ago by
Attachment: | mythconverg-dvbt-full-uk-scan-r21591-t5562.sql.bz2 added |
---|
comment:16 Changed 16 years ago by
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 16 years ago by
Attachment: | log-dvbs-tuned-scan-astra2-r21591-t5562.tar.bz2 added |
---|
Changed 16 years ago by
Attachment: | mythconverg-dvbs-tuned-scan-astra2-r21591-t5562.sql.bz2 added |
---|
comment:17 Changed 16 years ago by
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 16 years ago by
Component: | channelscan → MythTV - Channel Scanner |
---|
comment:20 Changed 16 years ago by
comment:21 Changed 16 years ago by
comment:22 Changed 16 years ago by
Changed 15 years ago by
Attachment: | defaultauthority-0-22-fixes-r23473.patch added |
---|
Changed 15 years ago by
Attachment: | defaultauthority-trunk-r23491.patch added |
---|
comment:23 Changed 15 years ago by
Port of David's patch to new channel scanner.
Tested successfully with UK DVB-T Freeview & UK DVB-S Freesat
Changed 15 years ago by
Attachment: | defaultauthority_patch2-0-22-fixes-r23473.patch added |
---|
Changed 15 years ago by
Attachment: | defaultauthority_patch2-trunk-r23491.patch added |
---|
comment:25 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The descriptor is found in the BAT for satellite and as such covers all the services on a transponder.