Opened 7 months ago

Last modified 7 months ago

#13405 assigned Patch - Bug Fix

EIT missing on some HDHomeRun DVB-C channels

Reported by: Klaas de Waal Owned by: Klaas de Waal
Priority: minor Milestone: needs_triage
Component: MythTV - EIT Version: Master Head
Severity: medium Keywords: DVB EIT HDHomeRun
Cc: Stuart Auchterlonie Ticket locked: no

Description

On DVB channels received with the four-channel HDHomeRun DVB-C network tuner only the first channel received by mythbackend has the EIT information. When more than one channel is received then the additional channels do not have the EIT information.
This is caused by how the mythbackend sets the PID filters in the HDHomeRun, as shown by the following piece of debug output:

2019-02-09 16:15:21.768390 I  HDHRSH[1](1410F45C): Filter: '0x0000-0x0001 0x0010-0x0012 0x0014 0x0064-0x0069 0x07d0-0x07d1 0x07db-0x07dd 0x0835-0x0837 0x0899 0x08fc 0x0c80 0x0f02'
2019-02-09 16:15:32.840527 I  HDHRSH[2](1410F45C): Filter: '0x0000-0x0001 0x0010-0x0011 0x0014 0x0064-0x0069 0x07d0 0x08fc 0x0b54 0x0dac 0x125c-0x125d 0x1268 0x12c1 0x1388'
2019-02-09 16:14:24.121511 I  HDHRSH[5](1410F45C): Filter: '0x0000-0x0001 0x0010-0x0011 0x0014 0x0064-0x0069 0x07d0 0x08fc 0x0dac 0x125c 0x1388-0x1389 0x1393 0x13ed'

The PID filter settings can be read more easily with the hdhomerun_config utility. In this case (at a different moment, hence different PID values) this gives:

[klaas@modu hdhomerun_config_gui]$ hdhomerun_config 1410F45C get /tuner1/filter
0x0000-0x0001 0x0010-0x0012 0x0014 0x0064-0x0069 0x01f6 0x01f8 0x01fa 0x01fc 0x01fe 0x0200 0x0202 0x07d0 0x08fc-0x08fd 0x0907-0x0908 0x0961-0x0963 0x09c5-0x0f02
[klaas@modu hdhomerun_config_gui]$ hdhomerun_config 1410F45C get /tuner2/filter
0x0000-0x0001 0x0010-0x0011 0x0014 0x0064-0x0069 0x07d0 0x08fc 0x0b54 0x0dac 0x125c-0x125d 0x1268 0x12c1 0x1388
[klaas@modu hdhomerun_config_gui]$ hdhomerun_config 1410F45C get /tuner3/filter
0x0000-0x0001 0x0010-0x0011 0x0014 0x0064-0x0069 0x01f4 0x01f6 0x01f8 0x01fa 0x01fc 0x01fe 0x0200 0x0202 0x0204 0x0206 0x0208 0x020a-0x0fa2
[klaas@modu hdhomerun_config_gui]$

Here also the filter of the first tuner includes PID range 0x0010-0x0012, thus including the EIT PID 0x12; the filters of the second and third tuner do not include PID 0x12.

Initial PID filter values DVB_NIT_PID, DVB_SDT_PID and DVB_TDT_PID are set in the constructor and in the Reset function of DVBStreamData (file dvbstreamdata.cpp).
The problem is fixed by adding DVB_EIT_PID to this list.
This is how the PID filters look after the patch has been applied, recording on three of the four channels:

[klaas@modu hdhomerun_config_gui]$ hdhomerun_config 1410F45C get /tuner0/filter
0x0000-0x0001 0x0010-0x0012 0x0014 0x0064-0x0069 0x07d0 0x08fc 0x0b54 0x0dac 0x0f02 0x125c 0x1388-0x1389 0x1394 0x13ed
[klaas@modu hdhomerun_config_gui]$ hdhomerun_config 1410F45C get /tuner1/filter
0x0000-0x0001 0x0010-0x0012 0x0014 0x0064-0x0069 0x01f6 0x01f8 0x01fa 0x01fc 0x01fe 0x0200 0x0202 0x07d0 0x08fc 0x0a28-0x0a29 0x0a33-0x0a34 0x0a8d-0x0ed8
[klaas@modu hdhomerun_config_gui]$ hdhomerun_config 1410F45C get /tuner2/filter
0x0000-0x0001 0x0010-0x0012 0x0014 0x0064-0x0069 0x07d0-0x07d1 0x07db 0x0835 0x08fc 0x1004 0x125c 0x14b4

Now all three tuner filters include PID range 0x0010-0x0012.

A patch for the fix in dvbstreamdata.cpp is attached.

The question remains why the EIT is received on my KNC-One DVB-C tuners and on the first channel of the HDHomeRun without this fix.

FYI, this problem appeared with extensive testing of ticket #10101 in which EIT data is used to make recording timing more accurate. This fails when there is no EIT data available.

Attachments (1)

20190210-eit-pid.patch (748 bytes) - added by Klaas de Waal 7 months ago.
Add DVB_EIT_PID to initial PID filter

Download all attachments as: .zip

Change History (2)

Changed 7 months ago by Klaas de Waal

Attachment: 20190210-eit-pid.patch added

Add DVB_EIT_PID to initial PID filter

comment:1 Changed 7 months ago by Stuart Auchterlonie

Owner: changed from Karl Egly to Klaas de Waal
Status: newassigned
Note: See TracTickets for help on using tickets.