Name | libogg |
---|---|
Developer | Xiph.Org Foundation |
Latest release version | 1.2.2 |
Latest release date | |
Operating system | Cross-platform |
Genre | reference implementation (multiplexer/demultiplexer) |
License | BSD-style license |
Website | Xiph.org downloads |
Ogg is a free, open container format maintained by the Xiph.Org Foundation. The creators of the Ogg format state that it is unrestricted by software patents and is designed to provide for efficient streaming and manipulation of high quality digital multimedia.
The Ogg container format can multiplex a number of independent streams for audio, video, text (such as subtitles), and metadata.
In the Ogg multimedia framework, Theora provides a lossy video layer. The audio layer is most commonly provided by the music-oriented Vorbis format but other options include the human speech compression codec Speex, the lossless audio compression codec FLAC, and OggPCM.
Before 2007, the .ogg filename extension was used for all files whose content used the Ogg container format. Since 2007, the Xiph.Org Foundation recommends that .ogg only be used for Ogg Vorbis audio files. The Xiph.Org Foundation decided to create a new set of file extensions and media types to describe different types of content such as .oga for audio only files, .ogv for video with or without sound (including Theora), and .ogx for multiplexed Ogg.
As of December 7, 2010, the current version of the Xiph.Org Foundation's reference implementation, is libogg 1.2.2. Another version, libogg2, has been in development, but is awaiting a rewrite as of 2008. Both software libraries are free software, released under the new BSD license. Ogg reference implementation was separated from Vorbis on September 2, 2000.
Because the format is free, and its reference implementation is non-copylefted, Ogg's various codecs have been incorporated into a number of different free and proprietary media players, both commercial and non-commercial, as well as portable media players and GPS receivers from different manufacturers. All wikis that are hosted by Wikia have support for Ogg audio files.
The project started in 1994. It was originally named Squish but that was already trademarked so the project underwent a name change. The new name, OggSquish, was used until 2001 when it was changed again to Ogg. Ogg has since come to refer to the file format, which is now part of the larger Xiph.org multimedia project. Today, the Squish only refers to a particular codec of the Ogg format.
The format consists of chunks of data each called an Ogg Page. Each page begins with the characters, OggS, to identify the file as Ogg format.
A serial number and page number in the page header identifies each page as part of a series of pages making up a bitstream. Multiple bitstreams may be multiplexed in the file where pages from each bitstream are ordered by the seek time of the contained data. Bitstreams may also be appended to existing files, a process known as chaining, to cause the bitstreams to be decoded in sequence.
A BSD-licensed library, called libogg, is available to encode and decode data from Ogg streams. Independent Ogg implementations are used in several projects such as RealPlayer and a set of DirectShow filters.
;Capture pattern – 32 bits :The capture pattern or sync code is a magic number used to ensure synchronisation when parsing Ogg files. Every page starts with the four ASCII character sequence OggS. This assists in resynchronising a parser in cases where data has been lost or is corrupted, and is a sanity check before commencing parsing the page structure.
;Version – 8 bits :This field indicates the version of the Ogg bitstream format, to allow for future expansion. It is currently mandated to be 0.
;Header type – 8 bits :This is an 8 bit field of flags, which indicates the type of page that follows. The rightmost or least significant bit is considered bit 0, with value 0x01, the next least significant digit is bit 1, with value 0x02. The third is bit 2, with value 0x04, and so on. :{| class="wikitable" ! style="width:5%;"|Bit ! style="width:10%;"|Value ! style="width:10%;"|Flag ! style="width:75%;"|Page type |- |0 |0x01 |Continuation |The first packet on this page is a continuation of the previous packet in the logical bitstream. |- |1 |0x02 |BOS |Beginning Of Stream. This page is the first page in the logical bitstream. The BOS flag must be set on the first page of every logical bitstream, and must not be set on any other page. |- |2 |0x04 |EOS |End Of Stream. This page is the last page in the logical bitstream. The EOS flag must be set on the final page of every logical bitstream, and must not be set on any other page. |}
;Granule position – 64 bits :A granule position is the time marker in Ogg files. It is an abstract value, whose meaning is determined by the codec. It may for example be a count of the number of samples, the number of frames or a more complex scheme.
;Bitstream serial number – 32 bits :This field is a serial number that identifies a page as belonging to a particular logical bitstream. Each logical bitstream in a file has a unique value, and this field allows implementations to deliver the pages to the appropriate decoder. In a typical vorbis and theora file, one stream is the audio (vorbis), and the other is the video (theora)
;Page sequence number – 32 bits :This field is a monotonically increasing field for each logical bitstream. The first page is 0, the second 1, etc. This allows implementations to detect when data has been lost.
;Checksum – 32 bits :This field provides a checksum of the data in the entire page, performed with the checksum field set to 0. This allows verification that the data has not been corrupted since it was created. Pages that fail the checksum should be discarded.
;Page segments – 8 bits :This field indicates the number of segments that exist in this page. It also indicates how many bytes are in the segment table that follows this field. There can be a maximum of 255 segments in any one page.
;Segment table :The segment table is an 8 bit vector of values indicating the length of each segment within the page body. The number of segments is determined from the preceding Page Segments field. Each segment is between 0 and 255 bytes in length.
The segments provide a way to group segments into packets, which are meaningful units of data for the decoder. When the segment's length is indicated to be 255, this indicates that the following segment is to be concatenated to this one and is part of the same packet. When the segment's length is 0–254, this indicates that this segment is the final segment in this packet. Where a packet's length is a multiple of 255, the final segment is length 0.
Where the final packet continues on the next page, the final segment value is 255, and the continuation flag is set on the following page to indicate that the start of the new page is a continuation of last page.
Metadata must currently be included in the codec. There is fairly good software support for Vorbis metadata—often referred to as comments. But software support for Theora and FLAC comments in Ogg containers is very limited.
Ogg reference implementation was separated from Vorbis on September 2, 2000.
In May 2003, two Internet RFCs were published relating to the format. The Ogg bitstream was defined in RFC 3533 (which is classified as 'informative') and its Internet content type (application/ogg
) in RFC 3534 (which is, , a proposed standard protocol). In September 2008, RFC 3534 was obsoleted by RFC 5334, which added content types video/ogg
, audio/ogg
and filename extensions .ogx, .ogv, .oga, .spx.
<video>
and <audio>
elements. This was in accordance with the original recommendation outlined in, but later removed from, the HTML 5 draft specification (see Ogg controversy).
Being a container format, Ogg can embed audio and video in various formats (such as Dirac, MNG, CELT, MPEG-4, MP3 and others) but Ogg was intended and usually is used with the following Xiph.org free codecs:
Category:Container formats Category:Free multimedia codecs, containers, and splitters Category:Xiph.Org projects Category:Open formats Category:Filename extensions
This text is licensed under the Creative Commons CC-BY-SA License. This text was originally published on Wikipedia and was developed by the Wikipedia community.
The World News (WN) Network, has created this privacy statement in order to demonstrate our firm commitment to user privacy. The following discloses our information gathering and dissemination practices for wn.com, as well as e-mail newsletters.
We do not collect personally identifiable information about you, except when you provide it to us. For example, if you submit an inquiry to us or sign up for our newsletter, you may be asked to provide certain information such as your contact details (name, e-mail address, mailing address, etc.).
When you submit your personally identifiable information through wn.com, you are giving your consent to the collection, use and disclosure of your personal information as set forth in this Privacy Policy. If you would prefer that we not collect any personally identifiable information from you, please do not provide us with any such information. We will not sell or rent your personally identifiable information to third parties without your consent, except as otherwise disclosed in this Privacy Policy.
Except as otherwise disclosed in this Privacy Policy, we will use the information you provide us only for the purpose of responding to your inquiry or in connection with the service for which you provided such information. We may forward your contact information and inquiry to our affiliates and other divisions of our company that we feel can best address your inquiry or provide you with the requested service. We may also use the information you provide in aggregate form for internal business purposes, such as generating statistics and developing marketing plans. We may share or transfer such non-personally identifiable information with or to our affiliates, licensees, agents and partners.
We may retain other companies and individuals to perform functions on our behalf. Such third parties may be provided with access to personally identifiable information needed to perform their functions, but may not use such information for any other purpose.
In addition, we may disclose any information, including personally identifiable information, we deem necessary, in our sole discretion, to comply with any applicable law, regulation, legal proceeding or governmental request.
We do not want you to receive unwanted e-mail from us. We try to make it easy to opt-out of any service you have asked to receive. If you sign-up to our e-mail newsletters we do not sell, exchange or give your e-mail address to a third party.
E-mail addresses are collected via the wn.com web site. Users have to physically opt-in to receive the wn.com newsletter and a verification e-mail is sent. wn.com is clearly and conspicuously named at the point of
collection.If you no longer wish to receive our newsletter and promotional communications, you may opt-out of receiving them by following the instructions included in each newsletter or communication or by e-mailing us at michaelw(at)wn.com
The security of your personal information is important to us. We follow generally accepted industry standards to protect the personal information submitted to us, both during registration and once we receive it. No method of transmission over the Internet, or method of electronic storage, is 100 percent secure, however. Therefore, though we strive to use commercially acceptable means to protect your personal information, we cannot guarantee its absolute security.
If we decide to change our e-mail practices, we will post those changes to this privacy statement, the homepage, and other places we think appropriate so that you are aware of what information we collect, how we use it, and under what circumstances, if any, we disclose it.
If we make material changes to our e-mail practices, we will notify you here, by e-mail, and by means of a notice on our home page.
The advertising banners and other forms of advertising appearing on this Web site are sometimes delivered to you, on our behalf, by a third party. In the course of serving advertisements to this site, the third party may place or recognize a unique cookie on your browser. For more information on cookies, you can visit www.cookiecentral.com.
As we continue to develop our business, we might sell certain aspects of our entities or assets. In such transactions, user information, including personally identifiable information, generally is one of the transferred business assets, and by submitting your personal information on Wn.com you agree that your data may be transferred to such parties in these circumstances.