[lkml]   [1997]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectLinux videoCD support

    Hi everybody,

    Recently I've started mucking with video CDs. The only way to read
    them in Linux I've found so far, is through the userfs thingy, which
    is slow inelegant etc. So, since I've been permanently looking for a
    good reason to start hacking the kernel, I've come up with an idea of
    implementing a kernel-level vcdfs.

    Unfortunately, I haven't found any documentation on the VCD structure,
    so it is a bit of a pain in the ass now.

    There are basically a number of issues to take into account while
    developing such thing. I need some help from more experienced people:

    I. Format issues

    The 1st track is, as far as I understand, in ISO9660 format, and it
    contains a number of files required by the VCD standard. Generally
    speaking, those files are not required to play the VCD
    successfully. However, ideally, vcdfs must show those files as well.

    All the remaining tracks contain MPEG data. They may be mapped to
    separate files (like track01, track02 etc).

    II. Implementation possibilities

    1. Interpret the 1st track as a real ISO FS, and the rest as a
    collection of MPEG tracks. In this case it may be worth to implement
    the thing as a part of isofs (say, a separate option 'vcd')

    2. Treat the CD as a regular ISO one. But whenever a user tries to
    read the contents of an MPEGAV directory (I think, this name is
    predefined by the standard), populate it with the "track" files.

    3. Omit the 1st track altogether. In this case it may be easier to
    implement it as a separate filesystem

    Finally, the questions:

    1. Is there any on-line document on VCD format, and possibly, on

    2. I know how to get track information through ioctl's (CDROMGETTOCHDR
    etc). How do I get the same information in the kernel mode? I cannot
    call ioctl, can I? So, basically what is the equivalent to the
    following user-level code:

    int fd = open("/dev/cdrom", ...

    ioctl(fd, CDROMGETTOCHDR, &th);

    3. What kernel should I use? I mean, should I just be better off with
    a 2.0.x series, or I should grab the 2.1 one, so that I'd take into
    account all recent movements in the kernel development? If yes, than
    which one is stable enough? ;)

    4. Is anybody else doing any CD-related development in the kernel?

    Sorry for the newbie questions, but again, I'm just beginning with
    kernel hacking, so please be patient...

    Thanks in advance,


    Alexander L. Belikoff
    Berger Financial Research Ltd.

     \ /
      Last update: 2005-03-22 13:40    [W:0.021 / U:0.832 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site