Please note that this book is in no way a reference documentation on how DVDs work. Its only purpose is to describe the API available for programmers in VideoLAN Client. It is assumed that you have basic knowledge of what MPEG is. The following paragraph is just here as a reminder : AC3 : Digital Audio Compression Standard Specification for coding audio data, used in DVD. The documentation is freely available . B (bi-directional) picture Picture decoded from its own data, and from the data of the previous and next (that means in the future) reference pictures (I or P pictures). It is the most compressed picture format, but it is less fault-tolerant. DVD : Digital Versatile Disc Disc hardware format, using the UDF file system, an extension of the ISO 9660 file system format and a video format which is an extension of the MPEG-2 specification. It basically uses MPEG-2 PS files, with subtitles and sound tracks encoded as private data and fed into non-MPEG decoders, along with .ifo files describing the contents of the DVD. DVD specifications are very hard to get, and it takes some time to reverse-engineer it. Sometimes DVD are zoned and scrambled, so we use a brute-force algorithm to find the key. ES : Elementary Stream Continuous stream of data fed into a decoder, without any multiplexing layer. ES streams can be MPEG video MPEG audio, AC3 audio, LPCM audio, SPU subpictures... Field picture Picture split in two fields, even and odd, like television does. DVDs coming from TV shows typically use field pictures. Frame picture Picture without even/odd discontinuities, unlike field pictures. DVDs coming from movies typically use frame pictures. I (intra) picture Picture independantly coded. It can be decoded without any other reference frame. It is regularly sent (like twice a second) for resynchronization purposes. IDCT : Inverse Discrete Cosinus Transform IDCT is a classical mathematical algorithm to convert from a space domain to a frequency domain. In a nutshell, it codes differences instead of coding all absolute pixels. MPEG uses an 2-D IDCT in the video decoder, and a 1-D IDCT in the audio decoder. LPCM : Linear Pulse Code Modulation LPCM is a non-compressed audio encoding, available in DVDs. MPEG : Motion Picture Expert Group Specification describing a standard syntax of files and streams for carrying motion pictures and sound. MPEG-1 is ISO/IEC 11172 (three books), MPEG-2 is ISO/IEC 13818. MPEG-4 version 1 is out, but this player doesn't support it. It is relatively easy to get an MPEG specification from ISO or equivalent, drafts are even freely available on the Internet. P (predictive) picture Picture decoded from its own data and data from a reference picture, which is the last I or P picture received. PES : Packetized Elementary Stream A chunk of elementary stream. It often corresponds to a logical boundary of the stream (for instance a picture change), but it is not mandatory. PES carry the synchronization information. PTS : Presentation Time Stamp Time at which the content of a PES packet is supposed to be played. It is used for A/V synchronization. PS : Program Stream File format obtained by concatenating PES packets and inserting Pack headers and System headers (for timing information). It is the only format described in MPEG-1, and the most used format in MPEG-2. RGB : Red Green Blue Picture format where every pixel is calculated in a vector space whose coordinates are red, green, and blue. This is natively used by monitors and TV sets. SPU : Sub Picture Unit Picture format allowing to do overlays, such as subtitles or DVD menus. SCR : System Clock Reference Time at which the first byte of a particular pack is supposed to be fed to the decoder. VLC uses it to read the stream at the right pace. SDL : Simple DirectMedia Layer SDL is a cross-platform multimedia library designed to provide fast access to the video framebuffer and the audio device. Since version 1.1, it features YUV overlay support, which reduces decoding times by a third. TS : Transport Stream Stream format constituted of fixed size packets (188 bytes), defined by ISO/IEC 13818-1. PES packets are split among several TS packets. A TS stream can contain several programs. It is used in streaming applications, in particular for satellite or cable broadcasting. YUV : Luminance/Chrominance Picture format with 1 coordinate of luminance (black and white) and 2 coordinates of chrominance (red and blue). This is natively used by PAL video system, for backward compatibility with older black and white TV sets. Your eyes distinguish luminance variations much better than chrominance variations, so you can compress them more. It is therefore well suited for image compression, and is used by the MPEG specification. The RGB picture can be obtained from the YUV one via a costly matrix multiply operation, which can be done in hardware by most modern video cards ("YUV acceleration").