Hello Guest, if you are reading this it means you have not registered yet. Please take a second, Click here to register, and in a few simple steps you will be able to enjoy our community and use our OpenViX support section.
Page 1 of 2 12 LastLast
Results 1 to 15 of 16

Thread: CrossEPG development thread for 6.5 images

  1. #1

    Title
    Senior Member
    Join Date
    Dec 2012
    Posts
    550
    Thanks
    57
    Thanked 19 Times in 18 Posts

    CrossEPG development thread for 6.5 images

    I did a clean install of a new Vix image then I did this:

    Menu > Setup > EPG > CrossEPG > OpenTV Providers

    Press OK on "Sky UK OpenTV (Astra2 on 28.2)" and it should now be ticked. Press Yellow to download. In previous images the download would finish and I'd be back in the same menu. But on the most recent Vix image it attempts to download but crashes before it can do so. Log attached: Enigma2_crash_2024-03-25_10-11-02 = OpenTV Download.log

    CrossEPG plugin also gave some error messages when installing it but it still said it installed.

  2. #2

    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    265
    Thanks
    60
    Thanked 572 Times in 188 Posts

    Question CrossEPG development thread for 6.5 images

    I would guess it was maybe broken since time_t and time functions changed from 32 bit to 64 bit in openembedded?

    see: defaultsetup: Enable largefile and 64bit time_t support systemwide for 32 bit platforms

    There are differencies in the time related declaration types and structs between crossepg and enigma2.
    For example in some struct start_time variables are defined as uint32_t and some are defined as time_t, so probably no longer have a matching struct size.

    I would guess the cursor position within file read/write no longer matches up and are no longer set to the correct position for what crossepg writes and what engima2 expects to read.

    eg.
    Code:
    fread(&title, sizeof(epgdb_title_t), 1, headers);

  3. #3

    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    265
    Thanks
    60
    Thanked 572 Times in 188 Posts
    Not tested or build with these changes, but an initial quick look at the code suggest that at least these two lines in the code that crossepg uses to write are maybe not in line with what enigma2 code expects to read in the eEPGCache::crossepgImportEPGv21 function.

    diff --git a/src/common/epgdb/epgdb.c b/src/common/epgdb/epgdb.c
    Code:
    index 230caed..9962603 100644
    --- a/src/common/epgdb/epgdb.c
    +++ b/src/common/epgdb/epgdb.c
    @@ -32,7 +32,7 @@ typedef struct epgdb_title_header_s
     {
     	uint16_t	event_id;
     	uint16_t	mjd;
    -	uint32_t	start_time;
    +	time_t		start_time;
     	uint16_t	length;
     	uint8_t		genre_id;
     	uint8_t		flags;
    @@ -194,7 +194,7 @@ bool epgdb_save (void(*progress_callback)(int, int))
     		if (progress_callback != NULL)
     			progress_callback (progress_count, progress_max);
     	}
    -	fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (uint32_t) * 2), SEEK_SET);
    +	fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (time_t) * 2), SEEK_SET);
     	fwrite (&channels_count, sizeof (uint32_t), 1, fd_h);
     	fflush (fd_h);
     	fsync (fileno (fd_h));

  4. The Following 2 Users Say Thank You to LraiZer For This Useful Post:

    abu baniaz (26-03-24),Ev0 (26-03-24)

  5. #4
    abu baniaz's Avatar
    Title
    Moderator
    Join Date
    Sep 2010
    Location
    East London
    Posts
    23,364
    Thanks
    6,444
    Thanked 9,160 Times in 6,235 Posts
    Hopefully done correctly. Bitbake file changed to point to point my repo.
    https://github.com/AbuBaniaz/e2openp...50a7710fe52350

    I got this crash
    Attached Files Attached Files

  6. #5

    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    265
    Thanks
    60
    Thanked 572 Times in 188 Posts
    I'll do a debug test build some time this week if possible to see if i can see why it is crashing.

    I would guess the crash occurs somewhere around..
    gmtim(time_t) and toBCD(time->tm_hour) code in engima2.

  7. The Following 2 Users Say Thank You to LraiZer For This Useful Post:

    abu baniaz (26-03-24),twol (26-03-24)

  8. #6

    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    265
    Thanks
    60
    Thanked 572 Times in 188 Posts
    Missed some obvious bits in last patch..
    OK, so just tested this patch and crossepg opentv epg downloaded for 28.2e and loaded ok into GUI for me.
    Code:
    diff --git a/src/common/epgdb/epgdb.c b/src/common/epgdb/epgdb.c
    index 230caed..ac24b6b 100644
    --- a/src/common/epgdb/epgdb.c
    +++ b/src/common/epgdb/epgdb.c
    @@ -32,7 +32,7 @@ typedef struct epgdb_title_header_s
     {
     	uint16_t	event_id;
     	uint16_t	mjd;
    -	uint32_t	start_time;
    +	time_t		start_time;
     	uint16_t	length;
     	uint8_t		genre_id;
     	uint8_t		flags;
    @@ -194,7 +194,7 @@ bool epgdb_save (void(*progress_callback)(int, int))
     		if (progress_callback != NULL)
     			progress_callback (progress_count, progress_max);
     	}
    -	fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (uint32_t) * 2), SEEK_SET);
    +	fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (time_t) * 2), SEEK_SET);
     	fwrite (&channels_count, sizeof (uint32_t), 1, fd_h);
     	fflush (fd_h);
     	fsync (fileno (fd_h));
    @@ -285,7 +285,7 @@ bool epgdb_load ()
     	char tmp[256];
     	unsigned char revision;
     	uint32_t channels_count, i, j, aliases_groups_count, indexes_count;
    -	uint32_t now = time (NULL);
    +	time_t now = time (NULL);
     	
     	epgdb_index_init ();
    Code:
    diff --git a/src/common/epgdb/epgdb.h b/src/common/epgdb/epgdb.h
    index 6f36ed3..1566586 100644
    --- a/src/common/epgdb/epgdb.h
    +++ b/src/common/epgdb/epgdb.h
    @@ -16,7 +16,7 @@ typedef struct epgdb_title_s
     	/* same elements of epgdb_title_header_t */
     	uint16_t	event_id;
     	uint16_t	mjd;
    -	uint32_t	start_time;
    +	time_t		start_time;
     	uint16_t	length;
     	uint8_t		genre_id;
     	uint8_t		flags;

  9. The Following 4 Users Say Thank You to LraiZer For This Useful Post:

    abu baniaz (26-03-24),Donnie (29-03-24),Ev0 (26-03-24),twol (26-03-24)

  10. #7
    Ev0's Avatar
    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    1,053
    Thanks
    347
    Thanked 428 Times in 266 Posts
    Quote Originally Posted by LraiZer View Post
    Missed some obvious bits in last patch..
    OK, so just tested this patch and crossepg opentv epg downloaded for 28.2e and loaded ok into GUI for me.
    Code:
    diff --git a/src/common/epgdb/epgdb.c b/src/common/epgdb/epgdb.c
    index 230caed..ac24b6b 100644
    --- a/src/common/epgdb/epgdb.c
    +++ b/src/common/epgdb/epgdb.c
    @@ -32,7 +32,7 @@ typedef struct epgdb_title_header_s
     {
         uint16_t    event_id;
         uint16_t    mjd;
    -    uint32_t    start_time;
    +    time_t        start_time;
         uint16_t    length;
         uint8_t        genre_id;
         uint8_t        flags;
    @@ -194,7 +194,7 @@ bool epgdb_save (void(*progress_callback)(int, int))
             if (progress_callback != NULL)
                 progress_callback (progress_count, progress_max);
         }
    -    fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (uint32_t) * 2), SEEK_SET);
    +    fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (time_t) * 2), SEEK_SET);
         fwrite (&channels_count, sizeof (uint32_t), 1, fd_h);
         fflush (fd_h);
         fsync (fileno (fd_h));
    @@ -285,7 +285,7 @@ bool epgdb_load ()
         char tmp[256];
         unsigned char revision;
         uint32_t channels_count, i, j, aliases_groups_count, indexes_count;
    -    uint32_t now = time (NULL);
    +    time_t now = time (NULL);
         
         epgdb_index_init ();
    Code:
    diff --git a/src/common/epgdb/epgdb.h b/src/common/epgdb/epgdb.h
    index 6f36ed3..1566586 100644
    --- a/src/common/epgdb/epgdb.h
    +++ b/src/common/epgdb/epgdb.h
    @@ -16,7 +16,7 @@ typedef struct epgdb_title_s
         /* same elements of epgdb_title_header_t */
         uint16_t    event_id;
         uint16_t    mjd;
    -    uint32_t    start_time;
    +    time_t        start_time;
         uint16_t    length;
         uint8_t        genre_id;
         uint8_t        flags;
    So with these changes, OpenTv now works for me (as in it downloads and saves the epg now).

    However there is some random junk in the listings, so it seems more work is needed still.

    Also Rytec does not seem to be working (I tried replacing all unit32_t entries with time_t in all files in crossepg) but that didn't seem to do anything.


  11. #8
    abu baniaz's Avatar
    Title
    Moderator
    Join Date
    Sep 2010
    Location
    East London
    Posts
    23,364
    Thanks
    6,444
    Thanked 9,160 Times in 6,235 Posts
    Quite a few commits here: Maybe some useful to us
    https://github.com/OpenVisionE2/Cros...ommits/master/

  12. #9

    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    265
    Thanks
    60
    Thanked 572 Times in 188 Posts
    dbmerge also still has hardcoded calculations, make it same as rest.
    Code:
    diff --git a/src/common/dbmerge/dbmerge.c b/src/common/dbmerge/dbmerge.c
    index 197dbb5..34a97c1 100644
    --- a/src/common/dbmerge/dbmerge.c
    +++ b/src/common/dbmerge/dbmerge.c
    @@ -158,7 +158,7 @@ bool dbmerge_merge (FILE *fd_h, FILE *fd_d, void(*progress_callback)(int, int))
     		return false;
     	}
     
    -	fseek (fd_h, 22, SEEK_SET);
    +	fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (time_t) * 2), SEEK_SET);
     
     	fread (&channels_count, sizeof (int), 1, fd_h);
     	for (i=0; i<channels_count; i++)
    Last edited by LraiZer; 27-03-24 at 23:26.

  13. The Following 2 Users Say Thank You to LraiZer For This Useful Post:

    abu baniaz (28-03-24),Ev0 (27-03-24)

  14. #10
    Ev0's Avatar
    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    1,053
    Thanks
    347
    Thanked 428 Times in 266 Posts
    Quote Originally Posted by LraiZer View Post
    dbmerge also still has hardcoded calculations, make it same as rest.
    Code:
    diff --git a/src/common/dbmerge/dbmerge.c b/src/common/dbmerge/dbmerge.c
    index 197dbb5..34a97c1 100644
    --- a/src/common/dbmerge/dbmerge.c
    +++ b/src/common/dbmerge/dbmerge.c
    @@ -158,7 +158,7 @@ bool dbmerge_merge (FILE *fd_h, FILE *fd_d, void(*progress_callback)(int, int))
             return false;
         }
     
    -    fseek (fd_h, 22, SEEK_SET);
    +    fseek (fd_h, strlen (MAGIC_HEADERS) + sizeof (unsigned char) + (sizeof (time_t) * 2), SEEK_SET);
     
         fread (&channels_count, sizeof (int), 1, fd_h);
         for (i=0; i<channels_count; i++)
    Now it crashes for me:

    Code:
    <   204.041058> [CrossEPG_Loader] loading data with crossepg patch v21
    <   204.041128> [epgcache][CrossEPG V21 patch] start crossepg import
    <   204.041287> [epgcache][CrossEPG V21 patch] 0 aliases groups in crossepg db
    <   204.041363> PC: 000c6580
    <   204.041377> Fault Address: 00000008
    <   204.041384> Error Code: 519
    <   204.041516> Backtrace:
    <   204.041689> /usr/bin/enigma2(_Z17handleFatalSignaliP9siginfo_tPv) [0x78920]
    <   204.041770> /lib/libc.so.6(__default_rt_sa_restorer) [0xB5D48070]
    <   204.041941> /usr/bin/enigma2(_ZN9eEPGCache20crossepgImportEPGv21ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE) [0xC6580]
    <   204.042162> /usr/bin/enigma2(n/a) [0x1807F0]
    <   204.042172> -------FATAL SIGNAL (11)


  15. #11
    Ev0's Avatar
    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    1,053
    Thanks
    347
    Thanked 428 Times in 266 Posts
    Ok I have reverted that last commit, I then deleted the crossepg folder from /media/usb, then removed and reinstalled crossepg from the feeds.

    It seems it works correctly now (no junk in the opentv listings) and also "some" rytec seems to work, but I don't think that is a plugin issue and more likely the servers / files not updated.


  16. #12

    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    265
    Thanks
    60
    Thanked 572 Times in 188 Posts
    Why did you have to revert? The dbmerge patch above has nothing to do with your crash and is indeed 100% required!

    dbmerge is only used in defragment and when the download protocol is set at xepg to download compressed crossepg database files instead of xmltv files.

    It is ESSENTIAL that all crossepg database files be deleted from media when moving from oe-a 5.3 to oe-a 5.4 as they are not compatible due to the change from 32 to 64 bit time_t.

    DO NOT PRESS defragment without the dbmerge patch or your crossepg folder will fill with new expediential database sizes in the background. Only a reboot would stop this process.

    After the required dbmerge patch is added, would be a good idea to bump the version number so you know you must have version 0.9.1 to be compatible with oe-a 5.4 images.

    Code:
    diff --git a/VERSION b/VERSION
    index 6b4eb6f..cbb513d 100644
    --- a/VERSION
    +++ b/VERSION
    @@ -1 +1 @@
    -0.9.0
    +0.9.1+gitr
    
    
    diff --git a/src/enigma2/python/version.py b/src/enigma2/python/version.py
    index 051849a..52117f1 100644
    --- a/src/enigma2/python/version.py
    +++ b/src/enigma2/python/version.py
    @@ -1 +1 @@
    -version = "0.9.0"
    +version = "0.9.1+gitr"
    
    
    diff --git a/src/version.h b/src/version.h
    index 5e40ed5..9c09588 100644
    --- a/src/version.h
    +++ b/src/version.h
    @@ -1 +1 @@
    -#define RELEASE "0.9.0"
    +#define RELEASE "0.9.1+gitr"
    Last edited by LraiZer; 28-03-24 at 21:44.

  17. The Following User Says Thank You to LraiZer For This Useful Post:

    abu baniaz (30-03-24)

  18. #13
    Ev0's Avatar
    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    1,053
    Thanks
    347
    Thanked 428 Times in 266 Posts
    Quote Originally Posted by LraiZer View Post
    Why did you have to revert? The dbmerge patch above has nothing to do with your crash and is indeed 100% required!

    dbmerge is only used in defragment and when the download protocol is set at xepg to download compressed crossepg database files instead of xmltv files.

    It is ESSENTIAL that all crossepg database files be deleted from media when moving from oe-a 5.3 to oe-a 5.4 as they are not compatible due to the change from 32 to 64 bit time_t.

    DO NOT PRESS defragment without the dbmerge patch or your crossepg folder will fill with new expediential database sizes in the background. Only a reboot would stop this process.

    After the required dbmerge patch is added, would be a good idea to bump the version number so you know you must have version 0.9.1 to be compatible with oe-a 5.4 images.

    Code:
    diff --git a/VERSION b/VERSION
    index 6b4eb6f..cbb513d 100644
    --- a/VERSION
    +++ b/VERSION
    @@ -1 +1 @@
    -0.9.0
    +0.9.1+gitr
    
    
    diff --git a/src/enigma2/python/version.py b/src/enigma2/python/version.py
    index 051849a..52117f1 100644
    --- a/src/enigma2/python/version.py
    +++ b/src/enigma2/python/version.py
    @@ -1 +1 @@
    -version = "0.9.0"
    +version = "0.9.1+gitr"
    
    
    diff --git a/src/version.h b/src/version.h
    index 5e40ed5..9c09588 100644
    --- a/src/version.h
    +++ b/src/version.h
    @@ -1 +1 @@
    -#define RELEASE "0.9.0"
    +#define RELEASE "0.9.1+gitr"
    Yes it's possible that I forgot to remove everything before I tested with the dbmerge changes, hence it crashed (I ran it 3 times and it crashed everytime), so I reverted and rebuilt and it's been fine since.

    However @Twol has been testing with the dbmerge changes and says it is working fine for him, so it is quite likely I didn't remove everything first.


  19. #14
    twol's Avatar
    Title
    Moderator
    Join Date
    Apr 2012
    Posts
    8,423
    Thanks
    997
    Thanked 2,895 Times in 2,248 Posts
    @LraiZer - currently I cannot break it, but waiting until tomorrow when it has new Rytec data to load……
    Providing it doesn,t crash, then I think your changes have fixed most issues, which will be great as I really like to have Crossepg available.

    Thanks for all your efforts, fingers crossed for tomorrows scheduled update.
    Gigablue Quad 4K & UE 4K
    .........FBC Tuners:
    ------------------> GT-Sat unicable LNB to 1.5M dish(28.2E)
    ------------------> Gigablue unicable LNB to 80 cm dish(19.2E)
    .......................> FBC & DVB-S2X into 90cm dish (27.5W) Opticum robust Unicable LNB
    AX HD61, Edision Osmio 4K+, Zgemma H9Combo, Octagon SF8008 , gbtrio4k, h9se using unicable ports
    Zgemma H9 C/S into Giga4K

  20. #15

    Title
    V.I.P
    Join Date
    Jan 2011
    Posts
    265
    Thanks
    60
    Thanked 572 Times in 188 Posts
    I think the only outstanding issue i can see, is when someone uploads xepg crossepg database files for download that have been created using images before oe-a 5.4 but you are now downloading them to dbmerge using the new oe-a 5.4 image. They will not be compatible. Even DB REVISION check increment from 7 to 8 would have no use if they had used 0.9.1 to create it.
    Last edited by LraiZer; 28-03-24 at 22:07.

  21. The Following 3 Users Say Thank You to LraiZer For This Useful Post:

    abu baniaz (30-03-24),bbbuk (29-03-24),Joe_90 (29-03-24)

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.