Opened 3 years ago

Last modified 3 years ago

#12718 infoneeded_new Bug Report - General

IPTV channels with dual programs in PAT do not work

Reported by: andrej.filipcic@… Owned by:
Priority: minor Milestone: unknown
Component: MythTV - Recording Version: Unspecified
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Some IPTV channels have more complex PAT, an example for 3 of them:

  • PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
  • PROGRAM_ID=701 (0x2BD), PMT_PID: 701(0x2BD)
  • PROGRAM_ID=1 (0x01), PMT_PID: 32(0x20)
  • PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
  • PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
  • PROGRAM_ID=2500 (0x9C4), PMT_PID: 2590(0xA1E)

Typically, the non 0 program is the one to select. A simple fix in IPTVSignalMonitor::HandlePAT solves the issue for me, where the highest program number is selected.

Attachments (2)

iptv-0.27.patch (1.8 KB) - added by andrej.filipcic@… 3 years ago.
mythbackend.log (10.1 KB) - added by andrej.filipcic@… 3 years ago.

Download all attachments as: .zip

Change History (7)

Changed 3 years ago by andrej.filipcic@…

Attachment: iptv-0.27.patch added

comment:1 Changed 3 years ago by Karl Egly

Component: MythTV - GeneralMythTV - Recording
Status: newinfoneeded_new

What version are you seeing this issue with?

I fixed that in August 2013 for IPTV in [9d4b5e2313ea0b1eb7718264782f529bd88c555d]. See the discussion in #11791.

comment:2 Changed 3 years ago by andrej.filipcic@…

With both fixes/0.27 and origin/fixes/0.28 branches.

The fix you have describes does not work for me, the program selected stays at 0.

comment:3 Changed 3 years ago by andrej.filipcic@…

To be more precise, it seems that the part of the code in your patch is never reached, since it breaks at the beginning of the first block of DTVSignalMonitor::HandlePAT:

    AddFlags(kDTVSigMon_PATSeen);
    int pmt_pid = pat->FindPID(programNumber);
    if (GetStreamData() && pmt_pid)
    {
        AddFlags(kDTVSigMon_PATMatch);
        GetStreamData()->AddListeningPID(pmt_pid);
        insert_crc(seen_table_crc, *pat);
        return;
    }

comment:4 Changed 3 years ago by Karl Egly

I don't understand how that can happen.

Can you add a backend log? What is the program_number in the channel database?

Changed 3 years ago by andrej.filipcic@…

Attachment: mythbackend.log added

comment:5 Changed 3 years ago by andrej.filipcic@…

Attached the mythbackend log for the 1st channel, where program 701 should be used.

Note: See TracTickets for help on using tickets.