It isn't look hard to find a gap in libcdio or libiso9660 or think of
something you'd like added. Here are some of the many known problems
and feature requests.

* UDF support.

* API overhaul. hvr has expressed interest but it's unlikely he'll ever
  have the time to do. It could be done in conjunction with a wrappers
  for C++, Perl, Python, ... The idea is that those interfaces would not
  show the ugliness of the current C interface. For example instead of 
  read_mode2, read_mode1, read_audio, there might be a read(mode, ...).

  - Address static loglevel variable (nboullis at debian.org)

* All of the API should be finished on all OS's (or the API adjusted).

* Fix the current gaps:

  - SCSI-MMC on OSX,
  - CD-Text support working more often? wide character support
    (Burkhard Plaum has indicated he might do)
  - more accurate drive capabilities 
  - wxwindows interface to cd-drive
  - more accurate CD track classification (Form 1/2, Mode 1/2)
  - complete the image readers, e.g. "silence" and ability to use
    more than one file in cdrdao.
  - multi-session CDs 

* mmc_read_cd often doesn't work when request reading a large number of blocks.

* Is paranoia correct? Get a better handle on it. Ensure more of the
  drive and OS-specific features that work on GNU/Linux work
  elsewhere. Regression tests over more kinds of failures.

* Exclusive access of CD-ROM versus non-exclusive? 
   
* Adjusting operations based on known models. Via MMC, We often have
  the ability to find out what drive is in use. That could be used (as
  it was in cdparanoia) to customize the method used for various
  operations. Alternatively it could be read from a configuration
  file, but right now there's no internal structure for holding all of
  the capabilities.

* Combine iso-read and iso-info into an "iso-tar" for listing or
  extracting files". Ideally something matching the relevant command
  set of "tar" would be nice, as that is widely used and probably
  fairly complete in thing that might be desired for listing/extracting.

* Add something to show what kind of CD media is in a drive. Ideally: CD
  (purchased), CD Write Once, CD Read/Write, but what is there is
  probably something like Cyanine, PhthaloCyanine, Metallized Azo,
  Advanced PhthaloCyanine, Formazan. See
  http://www.cdmediaworld.com/hardware/cdrom/cd_dye.shtml or
  http://www.cd-info.com/CDIC/History/Commentary/Parker/stcroix.html

  The discmode type can be used to classify DVD media and it also
  classifies for CD track formats (in addition to CD *content*
  classification). Note there is nothing for DVD content; see the below
  list of things which probably won't get added.

  Given the mismatch between DVD and CD meanings in discmode, the
  discmode type probably needs to be redone.

* Write a real cue parser and TOC parser using bison.
  A pcct grammar is given in cdrdao's trackdb TocParser.g and CueParser.g
  The parsing is pretty much done, need to fold in semantic routines and
  improve error reporting.

* conversion tools. Assuming parser done, it should be simple to use
  write simple conversion routines: 
   - CD images's to iso9660 .iso's
   - TOC <=> CUE

* Test more disc image types in regression testing, like CD-I.

* Convert to use glib, removing ds.h 
  (Revise vcdimager too)

* Delete and rename files in an iso9660 image (mephisto75 at web.de)

* Some things where libcdio will probably not expand in:
 
  -  DVD things, especially DVD-ROM (use libdvdread) 
  -  writing applications (use cdrdao or cdrtools)
  -  more proprietary undocumented image format (unless someone else is willing
     to do the work). But the fuzzy ISO 9660 detection may help here.


If there is something you really want done on the above list or have
something else you want done, it will go a lot faster if you attempt
to undertake doing it. Patches are always welcome (and CVS write
access is available for those who have demonstrated reasonable ability
through contributions.)

$Id: TODO,v 1.11 2005/07/11 11:51:07 rocky Exp $
