Modify
Warning Please read the Ticket HowTo before creating or commenting on a ticket. Failure to do so may cause your ticket to be rejected or result in a slower response.

Opened 3 years ago

Last modified 13 days ago

#9592 assigned Bug Report - General

No updates via eit

Reported by: lugiber@… Owned by: dekarl
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@… 3 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 dekarl 15 months ago.
variant of the patch

Download all attachments as: .zip

Change History (25)

comment:1 in reply to: ↑ description Changed 3 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 3 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 3 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 3 years ago by McBlau@…

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

Changed 3 years ago by McBlau@…

EIT-Flags always true + Force EIT with NID 222

comment:5 Changed 3 years ago by wagnerrp

  • Milestone changed from 0.24.1 to unknown
  • Severity changed from high to medium

Resetting milestone/severity to defaults.

comment:6 follow-up: Changed 2 years ago by stuartm

  • Milestone changed from unknown to 0.25
  • Status changed from new to infoneeded_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 follow-up: Changed 2 years ago by stuartm

  • Type changed from Bug Report to Bug Report - General

comment:8 in reply to: ↑ 7 Changed 2 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 2 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 2 years ago by stuarta

  • Milestone changed from 0.25 to 0.26

comment:11 Changed 21 months 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 follow-up: Changed 20 months 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 19 months ago by kenni

  • Milestone changed from 0.26 to 0.26.1

comment:14 Changed 16 months ago by dekarl

  • Keywords EIT removed
  • Owner changed from stuarta to dekarl
  • Status changed from infoneeded_new to assigned

comment:15 in reply to: ↑ 12 Changed 15 months ago by dekarl

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 15 months ago by dekarl

variant of the patch

comment:16 in reply to: ↑ 6 Changed 15 months ago by dekarl

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 15 months 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 9 months ago by paulh

  • Milestone changed from 0.26.1 to 0.28

comment:19 follow-up: Changed 3 weeks 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 2 weeks ago by stuarta

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 2 weeks 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 2 weeks 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 13 days 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.

Add Comment

Modify Ticket

Action
as assigned .
Author


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

 
Note: See TracTickets for help on using tickets.