vcd-info: Introduction

 
 1 Introduction
 **************
 
 Note in the guide, we use the term Video CD to mean some sort of Video
 Compact Disc.  There are various formats of Video Compact Discs, the
 oldest format of which is called "VCD" and is followed by a version
 number: 1.0, 1.1 or 2.0.  Hopefully it should also be clear by context
 whether we are referring to a class of Video Compact Discs or the
 specific older format called VCD _version-number_.
 
    'vcd-info''s mission in life is to display the contents of a Video CD
 or CD image.  Well, that's not actually true--if given an audio CD
 (CD-DA) or some other kind of CD, 'vcd-info' will try to display some
 information about that, perhaps just a list of the tracks, with varying
 degrees of success; However Video CDs are what 'vcd-info' understands
 best and it will you the most detail about.  The disk "image" does not
 have to reside on a physical Compact Disc; 'vcd-info' understand the
 BIN/CUE disk-image format used by a popular DOS/Window mastering tool.
 
    You might use the information from 'vcd-info' as a diagnostic or
 analytical tool.  It may help you understand a particular Video CD that
 you have.  Or it might be useful in conjunction with or in debugging a
 Video CD you are creating ("authoring").  But debugging is probably best
 left for another tool; 'vcd-info' will only let you display information,
 you can't modify anything with this tool and it is not interactive.
 
    Although I imagine most of the time this is how you will use
 'vcd-info', there are some subsidiary uses.
 
    'vcd-info' shows information about a Video CD and as such the
 information shown reflects, sort of, the way the information is stored.
 So in a sense 'vcd-info' can teach you a little bit about how a Video CD
 is laid out.
 
    In writing an Video CD input plugin for a media player, I wanted to
 get bits of information about the Video CD to display in the media
 player, such as the Video CD format used and the volume name.  Before
 writing a C library for such purposes, a lower-tech, and more
 loosely-coupled way to do this was used.  The program ran 'vcd-info'
 with the specific information request and parsed the text output.  For
 example, to get just the format that the Video CD on the"default" CD-ROM
 device is in you might run:
 
        vcd-info --no-banner --show-format
 
    To get the album information you might run:
 
        vcd-info --no-banner --show-info album
 
    After doing this for a while and seeing this was useful, I then wrote
 a Video CD "info" library.  A library is much faster and furthermore
 much of the information is saved away in memory reducing the amount of
 disk I/O. Later it turned out that I could completely remove the
 CD-reading routines from the VCD module and get this from another
 library, but that's a different story.  What's relevant is that after
 creating this library, I then modified 'vcd-info' to use this library
 'libvcdinfo'.  The 'vcd-info' code then got shorter as some of it
 getting moved inside the library.  And this program served as a test bed
 for the 'libvcdinfo'.
 
    So the last thing that 'vcd-info' may be of useful for is if you want
 to see how to use the 'libvcdinfo' library; you can consult the source
 program and see how 'vcd-info' gets its information.