OggStream

From XiphWiki
Revision as of 21:51, 2 May 2006 by 1146633488 (talk | contribs)
Jump to navigation Jump to search

Goals

  • Abstract:
    • application (app) can be nothing more than a gui frontend to liboggstream
      • allows very simple media players, editors, and stream systems to be developed
      • minimizes duplicated effort (and thus faster deployment)
      • ensures consistant Ogg support for all media players (ie, chaining, seeking, etc)
    • can also be used to just decode codecs, choosing to handle file/stream receiving


  • Technical:
    • apps need to know information about a stream;
      • what codecs it contains
      • what its total length is (or non-seekable)
    • apps need to be able to exchange uncompressed data with the library for encoding/decoding
    • for non-transcoding operations (ie, streaming), apps also need to be able to exchange raw codec packets
    • when meta/effects codecs are available, apps need to be able to access "processed" and "unprocessed" data
    • support multiple "protocol" plugins (ie, file, http, etc)
      • must provide buffered/cached info for app. (ie, for seek bar to show buffer status)
        • makes it easy to show holes in stream
      • allow app to provide data through "pipe" or "memory" protocol plugin
    • "Auto Update" system for automatic plugin search/installation from central site
      • list licenses and restrictions
        • it should prefer Xiph, then Free, then Proprietary, and finally Commercial
        • this can either be based on their country or simply run with US IP law
      • Linux-based systems can use distro-specific installation method (Gentoo can use Portage, Redhat use RPM, etc)

API

You'll find the most recent API design at http://svn.xiph.org/experimental/arc/ogg2+oggs/include/ogg2/

Application API

Plugin API

There are three kinds of plugins: input plugins, codec plugins, and output plugins. These plugins are chained together by liboggstream to connect a "circuit" from the input(s) to the output(s) which fufill the requirements of the client. If a "circuit" cannot be established liboggstream should return an appropriate error, whereas the application can utilize the plugin browser functions to find and install the missing plugins through an appropriate method.

Input Plugins have a method and output a specific format. This format is provided after the plugin is initialized. Multiple input plugins may be opened to pull data from multiple sources (ie, an audio source and video source).

Codec Plugins change the data from one format to another. In almost every case they are needed to satisfy the requirements of the application to process the input format to the output format. They can be used in series to satisfy requirements.

Output Plugins send the formatted data (encoded, transcoded, or decoded) to it's final destination. It needs an output method and is opened with a specific input format. Some output plugins may only support one format (Ogg, pcm, yuv, etc).













[We are delicate. We do not delete your content.] [l_sp2007]

ringtone maker Godsmack Awake godsmack voodoo sean paul temperature Sean Paul We Be Burnin natasha bedingfield unwritten 50 cent mp3 Bad Day Daniel Powter Daniel Powter mp3 Goodbye My Lover James Blunt System Of A Down mp3 Sean Paul mp3 Metallica mp3 Shakira mp3 Black Eyed Peas mp3 Madonna mp3 eminem mp3 Fall Out Boy Grand Theft Autumn Jack Johnson mp3 oscar dresses mother of the bride dresses cocktail dresses Flower Girl Dresses Formal prom Dresses Plus Size Prom Dresses Free Verizon Ringtone nextel ringtone verizon ringtone US Cellular Ringtone free sprint ringtone verizon ringtone verizon ringtone bcbg shoes free sprint ringtones cheap prom dresses sexy prom dresses waterford crystal swarovski crystal bead mesothelioma lawsuits mesothelioma symptoms mesothelioma diagnosis Cingular Ringtone free kyocera ringtones Free Nextel Ringtone informal wedding dresses bridal gowns Discount Bridal Gowns Plus Size Swimwear no fax payday loans countrywide home loans fast cash loan guaranteed Naturalizer Shoes Free Kyocera Ringtone formal prom dresses Sexy Prom Dresses Naturalizer Shoes towel warmer Aero Bed Free Sprint Ringtones Free Verizon Ringtones free nextel ringtones sexy prom dress Formal Prom Dresses cheap prom dresses Plus Size Prom Dresses tiffany prom dresses erotic games strip poker pokemon trading card game rom hoyle card games buy ativan online buy ativan buy alprazolam online buy alprazolam cheap tramadol buy bontril online fentermine how to buy fioricet on line cheap ultram without prescription buy ultram without prescription teen bra Bra Teen Cleavage Micro Bikini