Skip to content

My personal OSCam TODO

Georgi Chorbadzhiyski edited this page Mar 12, 2013 · 8 revisions

This page lists TODO items that I personally think should be done. Not all of them are important, not all of them would be done and not all of them even make sense. This is just a list of things that I'm planning to work on when I have time.

WebIf:

  • Use config tables to reduce WebIf code related to config editing.
    • Currently we have two places that generate config vars and check default values.
      • three places if we count module-monitor.
  • Generate uniq template id in enum based on filename and use it instead of the names (makes it easier to find templates on the disk and reduces binary size).
    • Discuss this in the forum.
    • pushed to github, saves 1.2K text size...
  • Do not pass pictures internally as base64.
    • Load pictures directly from disk (picons).
      • Discuss this in the forum.
  • Save templates using the same names as files in webif/ in addition to XXX.tpl files.
    • Discuss this in the forum.
  • Add sensitive data filtering in WebIf (what, where?).

Memory:

  • Improve structure sizes: http://www.streamboard.tv/wbb2/thread.php?postid=452820
    • FTAB is big offender (2.2k).
  • Most of modules don't use the whole PTAB (use only 1 port).
    • Use ptab only for modules that need more than one port?
  • Investigate all static variables.
  • Investigate dynamic stack usage.
    • make EXTRA_CC_WARN=-Wstack-usage=2048

Config/Build:

  • Create configure script (NOT BASED ON AUTOCONF!!!) that checks compilers, libusb, libcrypto, pcsc, etc and suggests the correct make params. It should be pretty simple script, not a monstrosity.
  • Once "configure" is created:
    • Investigate what advantages cmake offers and add improvements to build system until cmake can be axed.

Releases/Infrastructure:

  • Create changelog from 1.10 to -current and start the release process of 1.20 (more like 2.0).
    • Where is the cutout point? I think we can already do it, we have more than enough since 1.10
  • WISHLIST Setup build service similar to download.oscam.to
  • WISHLIST Convert oscam repo to git (trac integration would be needed).
  • WISHLIST We should have mailing list like a normal project.

Reduce ifdefs where it makes sense:

  • There still too many CS_CACHEEX and CS_ANTICASC ifdefs.
    • git grep '#if'| grep -E -v "^(minilzo|extapi)" | cut -d" " -f2- | sed 's/ *//' | sort | uniq -c | sort -rn

Irdeto reader:

  • Record gamma card init and make it work (when I get my season intf).

Docs:

Completed tasks that were on the TODO:

  • done Remove static vars from module-monitor.
  • done Move big reader specific variables into private structures.
  • done Fix PTAB size because its excessive (68k!) r8456
  • done Use minilzo to compress the templates thus reducing the binary size. r8446
  • done Use jhash to generate template name hashes in page_gen.c /implemented differently in r8434/
  • done webif: Convert templates array to struct template.
  • done webif: Handle CSS and other resources like templates.
  • done webif: Extract content from module-webif-pages.h into different files and build the header on the fly.
  • done Split lcd/monitor/webif configuration in WebIf.
  • done Split oscam.c its too big for its own good.
  • done create oscam-ecm.c
  • done create oscam-emm.c
  • done Fix signal handling of the parent process (ctrl-c in the console is not catched by the sig handler).
  • done Add getopt_long() support.
  • done Parse configuration based on data structures.
  • done Create real drivers from card readers.
  • done Add configuration for different card readers.
  • done Update minilzo code to the latest version.
  • done Add cs_{malloc,realloc}_nofail() and cleanup the call sites (remove the last parameter of cs_malloc()).
  • done Add cs_strdup() and use it where it is needed (the new config parser have kind of obsoleted this one).
  • done Reduce ARM ifdefs (they are related to leds).
  • done Add led_type configuration to remove even more ifdefs (see: cs_switch_led_from_thread())
  • done Split STAPI code from module-dvbapi and csctapi/ifd_phoenix.c into separate files.
  • done Add --enable and --disable to config.sh to allow control of configuration variables.
Clone this wiki locally