Feature #903

Internal Huffman tables

Added by cmsa over 2 years ago. Updated over 2 years ago.

Status:New Start date:03/14/2012
Priority:Normal Due date:
Assignee:dimeptr % Done:

0%

Category:- Spent time: -
Target version:-

Description

Some years ago I used EEPG to create a similar plugin for Topfield.
As this environment is somehow more embedded and has more difficulties with file IO and parsing, I re-coded the two Huffman tables to be internal.
Would you be interested if I backport that into eepg?
It eliminates the need to open, read and parse the files.

Cf. http://freesattotgd.svn.sourceforge.net/viewvc/freesattotgd/3FF/

patch.txt.gz - git diff experimental huffman (29.9 kB) cmsa, 03/22/2012 04:27 pm

freesat-internal.diff.bz2 (51.1 kB) dimeptr, 05/23/2012 06:10 pm

History

Updated by dimeptr over 2 years ago

If you provide patch I will test it and maybe implement it

Updated by cmsa over 2 years ago

I do now have a diff / a branch available.
How would you want to receive it?

Updated by dimeptr over 2 years ago

a diff is fine

Updated by cmsa over 2 years ago

So tried this here some days in my environment, seems to be working for me.
This patches the experimental branch, here comes a "git diff experimental huffman".

Updated by dimeptr over 2 years ago

The initial files are already loaded into memory internally as FreesatT1 and FreesatT2 so there is no point to hard-code memtable once again. load_freesat_file could be modified (renamed) to use FreesatT1 and FreesatT2.

Updated by cmsa over 2 years ago

Did you look at the patch? File IO of the two tables is REPLACED by putting the into the code.
These files have been necessary in a time, when the coding was unknown and still evolved.
Now these tables are in their final state. The advantage of compiling it in is:
- simpler and compact code
- no file ops necessary
- no dynamic heap memory (mallocs), everything is in DATA

Updated by dimeptr over 2 years ago

I have made some changes that I think are better from memory and loading point of view.
On my system it works fine. Test it on your system and if it is OK I will implement it in experimental branch

Also available in: Atom PDF