diff options
Diffstat (limited to 'third_party/aom/usage.dox')
-rw-r--r-- | third_party/aom/usage.dox | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/third_party/aom/usage.dox b/third_party/aom/usage.dox deleted file mode 100644 index 062d35a838..0000000000 --- a/third_party/aom/usage.dox +++ /dev/null @@ -1,111 +0,0 @@ -/*!\page usage Usage - - The aom multi-format codec SDK provides a unified interface amongst its - supported codecs. This abstraction allows applications using this SDK to - easily support multiple video formats with minimal code duplication or - "special casing." This section describes the interface common to all codecs. - For codec-specific details, see the \ref codecs page. - - The following sections are common to all codecs: - - \ref usage_types - - \ref usage_features - - \ref usage_init - - \ref usage_errors - - For more information on decoder and encoder specific usage, see the - following pages: - \if decoder - \li \subpage usage_decode - \endif - \if encoder - \li \subpage usage_encode - \endif - - \section usage_types Important Data Types - There are two important data structures to consider in this interface. - - \subsection usage_ctxs Contexts - A context is a storage area allocated by the calling application that the - codec may write into to store details about a single instance of that codec. - Most of the context is implementation specific, and thus opaque to the - application. The context structure as seen by the application is of fixed - size, and thus can be allocated with automatic storage or dynamically - on the heap. - - Most operations require an initialized codec context. Codec context - instances are codec specific. That is, the codec to be used for the encoded - video must be known at initialization time. See #aom_codec_ctx_t for further - information. - - \subsection usage_ifaces Interfaces - A codec interface is an opaque structure that controls how function calls - into the generic interface are dispatched to their codec-specific - implementations. Applications \ref MUSTNOT attempt to examine or override - this storage, as it contains internal implementation details likely to - change from release to release. - - Each supported codec will expose an interface structure to the application - as an <code>extern</code> reference to a structure of the incomplete type - #aom_codec_iface_t. - - \section usage_features Features - Several "features" are defined that are optionally implemented by codec - algorithms. Indeed, the same algorithm may support different features on - different platforms. The purpose of defining these features is that when - they are implemented, they conform to a common interface. The features, or - capabilities, of an algorithm can be queried from it's interface by using - the aom_codec_get_caps() method. Attempts to invoke features not supported - by an algorithm will generally result in #AOM_CODEC_INCAPABLE. - - \if decoder - Currently defined decoder features include: - - \ref usage_cb - \endif - - \section usage_init Initialization - To initialize a codec instance, the address of the codec context - and interface structures are passed to an initialization function. Depending - on the \ref usage_features that the codec supports, the codec could be - initialized in different modes. - - To prevent cases of confusion where the ABI of the library changes, - the ABI is versioned. The ABI version number must be passed at - initialization time to ensure the application is using a header file that - matches the library. The current ABI version number is stored in the - preprocessor macros #AOM_CODEC_ABI_VERSION, #AOM_ENCODER_ABI_VERSION, and - #AOM_DECODER_ABI_VERSION. For convenience, each initialization function has - a wrapper macro that inserts the correct version number. These macros are - named like the initialization methods, but without the _ver suffix. - - - The available initialization methods are: - \if encoder - \li #aom_codec_enc_init (calls aom_codec_enc_init_ver()) - \li #aom_codec_enc_init_multi (calls aom_codec_enc_init_multi_ver()) - \endif - \if decoder - \li #aom_codec_dec_init (calls aom_codec_dec_init_ver()) - \endif - - - \section usage_errors Error Handling - Almost all codec functions return an error status of type #aom_codec_err_t. - The semantics of how each error condition should be processed is clearly - defined in the definitions of each enumerated value. Error values can be - converted into ASCII strings with the aom_codec_error() and - aom_codec_err_to_string() methods. The difference between these two methods is - that aom_codec_error() returns the error state from an initialized context, - whereas aom_codec_err_to_string() can be used in cases where an error occurs - outside any context. The enumerated value returned from the last call can be - retrieved from the <code>err</code> member of the decoder context as well. - Finally, more detailed error information may be able to be obtained by using - the aom_codec_error_detail() method. Not all errors produce detailed error - information. - - In addition to error information, the codec library's build configuration - is available at runtime on some platforms. This information can be returned - by calling aom_codec_build_config(), and is formatted as a base64 coded string - (comprised of characters in the set [a-z_a-Z0-9+/]). This information is not - useful to an application at runtime, but may be of use to aom for support. - -*/ |