Opened 13 years ago

Closed 10 years ago

Last modified 10 years ago

#9592 closed Bug Report - General (Fixed)

No updates via eit

Reported by: lugiber@… Owned by: Karl Egly
Priority: minor Milestone: 0.28
Component: MythTV - EIT Version: 0.24-fixes
Severity: medium Keywords: eit
Cc: Ticket locked: no

Description

I'm running ubuntu maverick with myth 0.24-fixes but the epg doesn't get updated.

I have (of course) followed the wiki and enabled eit scans on all appropriate places in mythtv-setup. All channel scanning is done via mythtv-setup, but still no network id was provided so i entered it manually into the database. I live in sweden and use the "comhem" dvb-c network. The network id i entered was 40999. I have also started mythbackend with the options "siparser,eit,channel" to verify that it searches for program schedules. And the backend does search, the problem is that it doesn't seem to find any. My television set finds the epg just fine.

If you need any more info or help debugging/testing please let me know. I am willing to spend a lot of time for this to work again.

Thanks for a great peice of software, i've been using it daily since 0.16.

/Peter

Attachments (2)

rc01.diff (2.4 KB) - added by McBlau@… 13 years ago.
EIT-Flags always true + Force EIT with NID 222
0015-Obey-useonairguide-and-enable-it-for-kabelplus-DVB-C.patch (2.3 KB) - added by Karl Egly 11 years ago.
variant of the patch

Download all attachments as: .zip

Change History (30)

comment:1 in reply to:  description Changed 13 years ago by McBlau@…

Replying to lugiber@…:

I'm running ubuntu maverick with myth 0.24-fixes but the epg doesn't get updated.

I have (of course) followed the wiki and enabled eit scans on all appropriate places in mythtv-setup. All channel scanning is done via mythtv-setup, but still no network id was provided so i entered it manually into the database. I live in sweden and use the "comhem" dvb-c network. The network id i entered was 40999. I have also started mythbackend with the options "siparser,eit,channel" to verify that it searches for program schedules. And the backend does search, the problem is that it doesn't seem to find any. My television set finds the epg just fine.

If you need any more info or help debugging/testing please let me know. I am willing to spend a lot of time for this to work again.

Thanks for a great peice of software, i've been using it daily since 0.16.

/Peter

Hi, i had the same Problem and did a little research by myself. My Provider (kabelsignal.at, NID 222) changed Channels at the end of January and no EPG was received by MythTv? from Feb. 1. on until now (TV-Set showed EPG). The reason is, that in the SDT the flags EIT* are missing, a Test with dvbsnoop showed this. I downloaded the source, did changes in 3 files (assuming EPG* flags are always true) and compiled - EPG is here again.

I think the best fix for this Problem would be, that if "useonairguide" is set on a channel, MythTv? should try to pull EIT regardless of what the SDT says.

comment:2 Changed 13 years ago by wie.ge@…

hello i have the same problem with kabsi - can you explain in detail what to do thanks gerald

comment:3 Changed 13 years ago by mcblau@…

I made a rather primitive hack in 3 files (1 is used by the channelscanner, 2 by actally setup grabbing EIT

Diff :

  • libs/libmythtv/channelscan/channelscan_sm.cpp

    diff U3 /root/mythtv-0.24/libs/libmythtv/channelscan/channelscan_sm.cpp /root/mythtv-0.24.rc01/libs/libmythtv/channelscan/channelscan_sm.cpp
    old new  
    999999{
    10001000    // HACK beg -- special exception for this network
    10011001    //             (dbver == "1067")
    1002     bool force_guide_present = (sdt->OriginalNetworkID() == 70);
     1002    bool force_guide_present = (sdt->OriginalNetworkID() == 70) || (sdt->OriginalNetworkID() == 222);
    10031003    // HACK end -- special exception for this network
    10041004
    10051005    // Figure out best service name and callsign...
  • libs/libmythtv/mpeg/dvbtables.cpp

    diff U3 /root/mythtv-0.24/libs/libmythtv/mpeg/dvbtables.cpp /root/mythtv-0.24.rc01/libs/libmythtv/mpeg/dvbtables.cpp
    old new  
    103103        str.append(QString("  Service #%1 SID(0x%2) ")
    104104                   .arg(i, 2, 10).arg(ServiceID(i), 0, 16));
    105105        str.append(QString("eit_schd(%1) eit_pf(%2) encrypted(%3)\n")
    106                    .arg(HasEITSchedule(i) ? "t" : "f")
    107                    .arg(HasEITPresentFollowing(i) ? "t" : "f")
     106                   .arg(HasEITSchedule(i) ? "t" : "t")
     107                   .arg(HasEITPresentFollowing(i) ? "t" : "t")
    108108                   .arg(IsEncrypted(i) ? "t" : "f"));
    109109
    110110        if (0 != ServiceDescriptorsLength(i))
  • libs/libmythtv/mpeg/dvbstreamdata.cpp

    diff U3 /root/mythtv-0.24/libs/libmythtv/mpeg/dvbstreamdata.cpp /root/mythtv-0.24.rc01/libs/libmythtv/mpeg/dvbstreamdata.cpp
    old new  
    408408
    409409    for (uint i = 0; i < sdt->ServiceCount(); i++)
    410410    {
    411         if (sdt->HasEITSchedule(i) || sdt->HasEITPresentFollowing(i))
     411        if (sdt->HasEITSchedule(i) || sdt->HasEITPresentFollowing(i) || true )
    412412            _dvb_has_eit[sdt->ServiceID(i)] = true;
    413413    }
    414414

comment:4 Changed 13 years ago by McBlau@…

These changes look rather silly, but i wanted to leave the original source intact. regards, R.

Changed 13 years ago by McBlau@…

Attachment: rc01.diff added

EIT-Flags always true + Force EIT with NID 222

comment:5 Changed 13 years ago by Raymond Wagner

Milestone: 0.24.1unknown
Severity: highmedium

Resetting milestone/severity to defaults.

comment:6 Changed 12 years ago by stuartm

Milestone: unknown0.25
Status: newinfoneeded_new

So in summary, the network indicates no EIT is present even if it's there.

It's always best to try fixing these upstream since most times it's not an intentional on behalf of the broadcaster. Has anyone tried contacting them and reporting the fault?

Has anyone tested again a few months later to see if the broadcast tables are still broken?

I don't think we'll accept a patch that enables EIT regardless, so any 'fix' would have to be along the lines of a fixup, an explicit exception for this and other networks with the same problem.

comment:7 Changed 12 years ago by stuartm

Type: Bug ReportBug Report - General

comment:8 in reply to:  7 Changed 12 years ago by mcblau@…

Replying to stuartm:

Yes, your summary is correct and the error is still there, contacting the cable-provider results in: they will not fix it, because almost every cable receiver shows EIT data on the affected channels and there is no need to fix anything. In my opinion it would not hurt to act slightly out of the specifications, a good compromise would be to show the absence of EIT-indication on channel scan (e.g.: not ticked checkbox) but try to pull data when the user wants the software to do so - software shoud always do what the user tells it, not what the programmer thinks what is the best for the user ;-) - especially if it has no bad side effects.

comment:9 Changed 12 years ago by dekarl@…

Lets see, Peter (the OP) was talking about ComHem? in Sweden and seems to see #10217

The text and the PDF referenced at http://www.comhem.se/comhem/kundservice/hjalp-med-v-ra-tjanster/hjalp-med-tv/fr-gor-och-svar/-/698504/613272/-/index.html suggest that he might also need #7486 and the correct network_id from the PDF.

It would be nice to test if using the values from dvbsnoop on PID 0x12 would unbreak EIT reception for Peter. (use original_network_id and transport_id from the transmitted EIT sections to seed the values in the dtv_multiplex table)

McBlau? and Gerald have the same issue (no epg) but on KabelSignal? in AT and caused by something completely different (wrong signaling of EIT presence)

comment:10 Changed 12 years ago by Stuart Auchterlonie

Milestone: 0.250.26

comment:11 Changed 12 years ago by dekarl@…

another round of Sunday code reading inspired by yet another provider messing up their SDT ... (http://www.mythtv.org/pipermail/mythtv-users/2012-July/336884.html DVB-T Greece?)

After digging the standards and MythTV code I actually do like the idea of obeying "useonairguide" even if the signaling is wrong and defaulting "useonairguide" to enabled for known broken providers.

The ServiceDescriptionTable::toString() patch should be left out imho as it makes debugging harder by printing out false data.

comment:12 Changed 12 years ago by flori@…

Hi there,

having a similar issue on DVB-T transports in Austria. For some reason I am missing EIT for 3 out of 10 channels. Network ID is the same for all 3 transports, which these channels are on. The multiplex table seems fine. It seems though that maybe those 3 missing EITs come from the same transport. How can I check this? What are the tools and options to debug this correctly?

Other that that I would also support being able to manually force reading EIT for them if possible.

comment:13 Changed 12 years ago by Kenni Lund [kenni a kelu dot dk]

Milestone: 0.260.26.1

comment:14 Changed 11 years ago by Karl Egly

Keywords: EIT removed
Owner: changed from Stuart Auchterlonie to Karl Egly
Status: infoneeded_newassigned

comment:15 in reply to:  12 Changed 11 years ago by Karl Egly

Replying to flori@…:

It would be best to track each provider/country in its own ticket as it gets quite confusion when everything is mixed into one ticket. (this ticket already is about Sweden, Austria, DVB-C and DVB-T) Please follow up in a new ticket to avoid confusion.

How can I check this? What are the tools and options to debug this correctly?

The issue of EIT presence not being properly being signaled can be verified by looking at

EIT_schedule_flag: 0 (0x00)
EIT_present_following_flag: 0 (0x00)

in the SDT by running "dvbsnoop -n 1 -nph 0x11" while tuned to the transport in question, see http://dvbsnoop.sourceforge.net/examples/example-sdt.html Both should be "1" for services with guide data present.

Changed 11 years ago by Karl Egly

variant of the patch

comment:16 in reply to:  6 Changed 11 years ago by Karl Egly

Replying to stuartm:

any 'fix' would have to be along the lines of a fixup, an explicit exception for this and other networks with the same problem.

The original patch and my variant should

a) forcible enable useonairguide for all channels from the same original_network_id in a fixup style at the time of the channel scan. Its up to the user to manually enable useonairguide for providers that are not fixedup, yet.

b) enable passive EIT collection for all channels. With the optimized negative caching in [374937dd] I value the gain when its needed over the cost when its not needed

c) the active scan will still only steer to transports with at least one channel with useonairguide set

I'm not committing it but posting it here for review instead due to b)

McBlau? / Gerald, can you verify that the SDT still does not signal guide presence after the merger of kabelsignal to kabelplus? I'd appreciate if you can test my variant of the patch if it is still needed.

comment:17 Changed 11 years ago by yiannividalis@…

To Dekarl:

I've faced the same problem with this ticket for some months (the link on comment 11 was mine). By using the first patch on this ticket I've been successfull in having EIT listings again, after adding the "
(sdt->OriginalNetworkID() == 65330)" part for my provider's id.

I tried the second patch but unfortunately it doesn't work for me. Repatching the first one brought EIT back.

If you decide to commit any patch into myth, could you please add my provider (ERT Greece, 65330) to the list of providers?

Best regards,

Yianni.

comment:18 Changed 11 years ago by paulh

Milestone: 0.26.10.28

comment:19 Changed 10 years ago by angela.schmid@…

Since this problem is 3 years old and I run into it for the second time and lost a lot of time, I would appreciate this problem fixed. Not especially for me, but for the many newbies.

I use the following patch, as my provider does not send correct SDT information:

index 40d056d..c4d1ce9
--- a/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp
+++ b/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp

@@ -436,7 +438,7 @@ void DVBStreamData::ProcessSDT(uint tsid, const ServiceDescriptionTable *sdt)

     for (uint i = 0; i < sdt->ServiceCount(); i++)
     {
-        if (sdt->HasEITSchedule(i) || sdt->HasEITPresentFollowing(i))
+        if (sdt->HasEITSchedule(i) || sdt->HasEITPresentFollowing(i) || true)
             _dvb_has_eit[sdt->ServiceID(i)] = true;
     }

As a user has to set useonairguide explicitly, I don't see anything positive to check the SDT. When the multiplex has no real EPG data it is fine. When it has EPG data it will be processed based on the useonairguide setting. There is no performance profit checking the SDT beforehand. When I am wrong, please explain.

comment:20 in reply to:  19 Changed 10 years ago by Stuart Auchterlonie

Replying to angela.schmid@…:

I use the following patch, as my provider does not send correct SDT information:

So fundamentally, your provider sends the SDT out saying they do not have EIT data when actually they do?

comment:21 Changed 10 years ago by angela.schmid@…

Yes. One channel is correct, where they send 7 days EPG. All other multipex have no correct setting in the SDT, but I need them, as they only contain 24 hours subtitles.

comment:22 Changed 10 years ago by tport@…

Here in Switzerland my provider show exactly the same behavior as angela.schmid states, thus I am also living with this dirty hack to have eit data.

comment:23 Changed 10 years ago by mcblau@…

Wow ! This one is rather old and its fun to see activity here again, meanwhile my provider changed his signaling according to the DVB-Specs, so the problem does not affect me anymore, but its good to see that others have benefits from my Q&D patch. Let's hope the developers will change the code to be more tolerant to ignorant providers...

Best, R.

comment:24 Changed 10 years ago by fr.herbers@…

This is a mean bug. I have troubles atm with my system hanging once a month. I ran into this problem today for the third time. Hope this get fixed for all of us in 0.27-fixes.

comment:25 Changed 10 years ago by lester1966@…

I have the same issue with community channel C31 in Melbourne Australia. I have sent them an email asking them to look into the issue, but I don't hold high hopes for this.

+1 for an override that is controllable by the user and does no harm. Sometimes you need to have work around that is much easier than compiling from source.

comment:26 Changed 10 years ago by Karl Dietz <dekarl@…>

In 7af260e6ff315fd511477e3cd1efb2e0b5cd0a67/mythtv:

Obey useonairguide and enable it for ERT

Ignore the SDT in the EIT scanner, thus obeying useonairguide.
Add quirk for ONID 65330 (ERT) to the channel scanner.

Refs #9592

comment:27 Changed 10 years ago by Karl Egly

Resolution: Fixed
Status: assignedclosed

You should now be able to manually set "use on air guide" in the channel editor for any channel in master. I can add an override per original_network_id to the channel scanner, to simply enable EIT for all channels of the network by default. If your provider needs such treatment then please open one ticket per country/provider with the relevant information.

comment:28 Changed 10 years ago by Karl Dietz <dekarl@…>

In ef4af9b3dee5583f61e9ec89d5071f717b294da6/mythtv:

Obey useonairguide and enable it for ERT

Ignore the SDT in the EIT scanner, thus obeying useonairguide.
Add quirk for ONID 65330 (ERT) to the channel scanner.

Refs #9592

(cherry picked from commit 7af260e6ff315fd511477e3cd1efb2e0b5cd0a67)

Note: See TracTickets for help on using tickets.