OggComponent/VorbisComponent: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
Line 4: Line 4:


=== Introduction ===
=== Introduction ===
This project consists on integrating the Ogg Format and Vorbis Codec into MacOsX. That will result on having that in every sound application.
This project consists on integrating the Ogg Format and Vorbis Codec into MacOS X. That will result on having that in every sound application.


The work consists on two main parts.
The work consists of two main parts.
* The Audio File Format should be recognised
* The Audio File Format should be recognised
* The Sound should be coded/decodec.
* The Sound should be coded/decodec.


To do such tasks, new Core Audio API will be used.
To do such tasks, the new Core Audio API will be used.


The former part would consist on the creation of an [http://developer.apple.com/documentation/MusicAudio/Reference/CAAudioTooboxRef/AudioFileComponent/CompositePage.html AudioFileComponent]. That component has to implement the AudioFileComponentBase AudioFileFormat and AudiofileObject clases. The examples on CoreAudio/AudioFile is a good starting point. It implements a rawAudio file reader/writer. The OGG part of ogg-vorbis should go here. The streaming support go here too.
The first part would consist of the creation of an [http://developer.apple.com/documentation/MusicAudio/Reference/CAAudioTooboxRef/AudioFileComponent/CompositePage.html AudioFileComponent]. That component has to implement the AudioFileComponentBase AudioFileFormat and AudiofileObject classes. The example on CoreAudio/AudioFile is a good starting point. It implements a rawAudio file reader/writer. The OGG part of ogg-vorbis should go here. The streaming support go here too.


The second part is the codec support. To support Vorbis, the creation of a [http://developer.apple.com/documentation/MusicAudio/Reference/CoreAudio/audiocodec/chapter_3_section_1.html#//apple_ref/doc/uid/TP30001108-CH204 AudioCodec] is needed. The example on CoreAudio/AudioCodecs is a good starting point too. It implements a IMA4 codec. No file format are implied here. So, it should be a glue ( that I hasn't discovered yet ) from AudioFileComponent API to know that contained data is Vorbis and launching the CodecComponent.
The second part is the codec support. To support Vorbis, the creation of a [http://developer.apple.com/documentation/MusicAudio/Reference/CoreAudio/audiocodec/chapter_3_section_1.html#//apple_ref/doc/uid/TP30001108-CH204 AudioCodec] is needed. The example on CoreAudio/AudioCodecs is a good starting point too. It implements an IMA4 codec. No file format is implied here. So, there should be a glue ( that I haven't discovered yet ) from the AudioFileComponent API to know that contained data is Vorbis and launches the correct AudioCodec.


Finally, for the rest of Ogg Codecs, just the second part is needed.


Finally, for the rest of Ogg Codecs, just the second part is needed.  
NOTE: This is not sufficient for full OS X support.  Many if not most OS X applications (iTunes, for example) use Quicktime APIs for playback and encoding of media files.  Quicktime does not use the Core Audio components (yet).  If we want to support those applications it will be necessary to also create two Quicktime Components.  We would need a Movie Import component and a Movie Export component (codes 'eat ' and 'spit').  It has been suggested that some time in the future Quicktime will use Core Audio components if they exist, but it is not known when that will happen.  In any case, the Quicktime components will still be necessary for Theora support and may even be necessary for multi-link Vorbis files as well.


Work in progress...
Work in progress...

Revision as of 22:58, 13 September 2005

Integrating OGG into MacOsX

Warning: this project is in study/design stage.

Introduction

This project consists on integrating the Ogg Format and Vorbis Codec into MacOS X. That will result on having that in every sound application.

The work consists of two main parts.

  • The Audio File Format should be recognised
  • The Sound should be coded/decodec.

To do such tasks, the new Core Audio API will be used.

The first part would consist of the creation of an AudioFileComponent. That component has to implement the AudioFileComponentBase AudioFileFormat and AudiofileObject classes. The example on CoreAudio/AudioFile is a good starting point. It implements a rawAudio file reader/writer. The OGG part of ogg-vorbis should go here. The streaming support go here too.

The second part is the codec support. To support Vorbis, the creation of a AudioCodec is needed. The example on CoreAudio/AudioCodecs is a good starting point too. It implements an IMA4 codec. No file format is implied here. So, there should be a glue ( that I haven't discovered yet ) from the AudioFileComponent API to know that contained data is Vorbis and launches the correct AudioCodec.

Finally, for the rest of Ogg Codecs, just the second part is needed.

NOTE: This is not sufficient for full OS X support. Many if not most OS X applications (iTunes, for example) use Quicktime APIs for playback and encoding of media files. Quicktime does not use the Core Audio components (yet). If we want to support those applications it will be necessary to also create two Quicktime Components. We would need a Movie Import component and a Movie Export component (codes 'eat ' and 'spit'). It has been suggested that some time in the future Quicktime will use Core Audio components if they exist, but it is not known when that will happen. In any case, the Quicktime components will still be necessary for Theora support and may even be necessary for multi-link Vorbis files as well.

Work in progress...