======================= Design notes for kissdx ======================= Design goals: ------------- kissdx is an enhanced kissd. The enhancements are: 1. Support for playing the VOB/IFO/BUP files in a VIDEO_TS folder as if it was a DVD This functionality will be based on code from wizd, which again depends on libdvdread. 2. Support for playing DVD ISO images This functionality will be based on code from wizd, which again depends on libdvdread. 3. Support for playing playlists This functionality will be based on code from armlink. So kissdx is meant to be the coming together of some good ideas already implemented in existing disparate packages. 1. Playing the VOB/IFO/BUP files in a VIDEO_TS folder ----------------------------------------------------- - We must present the DVD movie to the player as a single file, a virtual media file. A file extension of mpeg or mpg is probably the right choice here, but maybe srt files are not supported for mp*g, only avi? 2006-08-30/VT: Decided to present the DVD as a virtual FOLDER, containing a virtual FILE for each title. - Subtitles can be supported by presenting a virtual subtitles file with the same filename as the virtual media file and a file extension of srt. - 2006-08-30/VT: Decided to use libdvdread to present VIDEO_TS folder as well as ISO, since libdvdread handles them in exactly the same way. - We use a special prefix to the name of the virtual folder to recognize it as such when the player asks for it. 2. Support for playing DVD ISO images ------------------------------------- - We must read the ISO contents through libdvdread. - The video files in the ISO must be presented as a single virtual media file, like with VOB/IFO/BUP playing. 2006-08-30/VT: Decided to present the DVD as a virtual FOLDER, containing a virtual FILE for each title. - Subtitles will be handled in the same way as for VOB/IFO/BUP playing. 3. Support for playing play lists ---------------------------------- - The playlist must be presented to the player as a directory containing the files in the playlist. This will be a "virtual" directory, and the files inside will be pointers to the real files. ========================== Resources for development: ========================== GNU gcc: http://gcc.gnu.org/onlinedocs/ GNU C lib: http://www.delorie.com/gnu/docs/glibc/libc.html C: http://www.phim.unibe.ch/comp_doc/c_manual/C/master_index.html DVD-info: http://www.dvd-replica.com/DVD/productinfo.php Indexed source code of libdvdread: http://lxr-itec.uni-klu.ac.at/vitooki/source/3rdparty/libdvdread/