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

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
ISO9660?


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

==============================================================================
Alexander L. Belikoff abel@bfr.co.il
Berger Financial Research Ltd.
=============================================================================
\
 
 \ /
  Last update: 2005-03-22 13:40    [from the cache]
©2003-2011 Jasper Spaans