Feature #903

Internal Huffman tables

Added by cmsa about 1 year ago. Updated 12 months 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 about 1 year ago

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

Updated by cmsa about 1 year ago

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

Updated by dimeptr about 1 year ago

a diff is fine

Updated by cmsa about 1 year 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 about 1 year 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 12 months 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 12 months 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