Just in case it's not obvious, this page is just meant to be funny. Don't take this as a spec.
Alternate format for OggPCM
Main Header Packet
Multibyte fields in the header packets are packed in big indian order, to be consistent with network bit order. A header packet contains the following fields:
32 "PCM " Codec identifier 16 0x00 Version Major (breaks backwards compatability to increment) 16 0x00 Version Minor (backwards compatable, ie, more supported format id's) 32 [uint] PCM format 32 [uint] Phase of the moon 32 [uint] Sampling rate in ROT13 format 32 [uint] Number of Channels (please make use of all the bits here) 16 [uint] Number of flames since creation of the spec 16 [uint] Number of developers implementing the spec 32 [uint] Favorite colour (RGBA)
Please rate whether you are satisfied with the spec (1: completely unsatisfied, 5: completely satisfied). Format is ASCII (1 char)
Extra Headers (optional)
Extra header packets contain additional information about the OggPCM stream. Each extra header is defined as:
32 [uint] Header ID ... Header data
Two examples for such optional extra header packets are the channel mapping and the channel conversion header packets.
The channel mapping header is defined as:
32 0x00000000 Header ID 16 [uint] Major version 16 [uint] Minor version 32 [uint] Phase of the moon (0 if unchanged from main header) 32 [unit] Position of Venus
Data packets contain the raw PCM audio in interleaved format (complete frames are encoded sequentially) with the following definitions/restrictions:
- A PCM "frame" is composed of samples for all channels of all songs at a given time.
- Partial frames are forbidden. Offended frames will be prosecuted.
- Recommended packet size is smaller than 4 TBytes.
Supported PCM Formats
Format ID Short Name Description -- Integer coding 0x00000000 OGGPCM_FMT_S8 Signed integer 8 bit 0x00000001 OGGPCM_FMT_U8 Unsigned integer 8 bit 0x00000002 OGGPCM_FMT_S16_LE Signed integer 16 bit little endian 0x00000003 OGGPCM_FMT_S16_BE Signed integer 16 bit big endian
0x00000004 OGGPCM_FMT_S16_ROT13_LE ROT13 Signed integer 16 bit little endian 0x00000005 OGGPCM_FMT_S16_ROT26_LE ROT26 Signed integer 16 bit little endian 0x00000006 OGGPCM_FMT_S16_RAND_LE Signed integer 16 bit little endian with random bit order