Index: source/libvpx/usage.dox |
=================================================================== |
--- source/libvpx/usage.dox (revision 290053) |
+++ source/libvpx/usage.dox (working copy) |
@@ -57,9 +57,6 @@ |
the vpx_codec_get_caps() method. Attempts to invoke features not supported |
by an algorithm will generally result in #VPX_CODEC_INCAPABLE. |
- Currently defined features available in both encoders and decoders include: |
- - \subpage usage_xma |
- |
\if decoder |
Currently defined decoder features include: |
- \ref usage_cb |
@@ -70,9 +67,7 @@ |
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. Most notably, the application may choose to |
- use \ref usage_xma mode to gain fine grained control over how and where |
- memory is allocated for the codec. |
+ 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 |
@@ -136,73 +131,3 @@ |
possible." |
*/ |
- |
- |
-/*! \page usage_xma External Memory Allocation |
- Applications that wish to have fine grained control over how and where |
- decoders allocate memory \ref MAY make use of the eXternal Memory Allocation |
- (XMA) interface. Not all codecs support the XMA \ref usage_features. |
- |
- To use a decoder in XMA mode, the decoder \ref MUST be initialized with the |
- vpx_codec_xma_init_ver() function. The amount of memory a decoder needs to |
- allocate is heavily dependent on the size of the encoded video frames. The |
- size of the video must be known before requesting the decoder's memory map. |
- This stream information can be obtained with the vpx_codec_peek_stream_info() |
- function, which does not require a constructed decoder context. If the exact |
- stream is not known, a stream info structure can be created that reflects |
- the maximum size that the decoder instance is required to support. |
- |
- Once the decoder instance has been initialized and the stream information |
- determined, the application calls the vpx_codec_get_mem_map() iterator |
- repeatedly to get a list of the memory segments requested by the decoder. |
- The iterator value should be initialized to NULL to request the first |
- element, and the function will return #VPX_CODEC_LIST_END to signal the end of |
- the list. |
- |
- After each segment is identified, it must be passed to the codec through the |
- vpx_codec_set_mem_map() function. Segments \ref MUST be passed in the same |
- order as they are returned from vpx_codec_get_mem_map(), but there is no |
- requirement that vpx_codec_get_mem_map() must finish iterating before |
- vpx_codec_set_mem_map() is called. For instance, some applications may choose |
- to get a list of all requests, construct an optimal heap, and then set all |
- maps at once with one call. Other applications may set one map at a time, |
- allocating it immediately after it is returned from vpx_codec_get_mem_map(). |
- |
- After all segments have been set using vpx_codec_set_mem_map(), the codec may |
- be used as it would be in normal internal allocation mode. |
- |
- \section usage_xma_seg_id Segment Identifiers |
- Each requested segment is identified by an identifier unique to |
- that decoder type. Some of these identifiers are private, while others are |
- enumerated for application use. Identifiers not enumerated publicly are |
- subject to change. Identifiers are non-consecutive. |
- |
- \section usage_xma_seg_szalign Segment Size and Alignment |
- The sz (size) and align (alignment) parameters describe the required size |
- and alignment of the requested segment. Alignment will always be a power of |
- two. Applications \ref MUST honor the alignment requested. Failure to do so |
- could result in program crashes or may incur a speed penalty. |
- |
- \section usage_xma_seg_flags Segment Flags |
- The flags member of the segment structure indicates any requirements or |
- desires of the codec for the particular segment. The #VPX_CODEC_MEM_ZERO flag |
- indicates that the segment \ref MUST be zeroed by the application prior to |
- passing it to the application. The #VPX_CODEC_MEM_WRONLY flag indicates that |
- the segment will only be written into by the decoder, not read. If this flag |
- is not set, the application \ref MUST insure that the memory segment is |
- readable. On some platforms, framebuffer memory is writable but not |
- readable, for example. The #VPX_CODEC_MEM_FAST flag indicates that the segment |
- will be frequently accessed, and that it should be placed into fast memory, |
- if any is available. The application \ref MAY choose to place other segments |
- in fast memory as well, but the most critical segments will be identified by |
- this flag. |
- |
- \section usage_xma_seg_basedtor Segment Base Address and Destructor |
- For each requested memory segment, the application must determine the |
- address of a memory segment that meets the requirements of the codec. This |
- address is set in the <code>base</code> member of the #vpx_codec_mmap |
- structure. If the application requires processing when the segment is no |
- longer used by the codec (for instance to deallocate it or close an |
- associated file descriptor) the <code>dtor</code> and <code>priv</code> |
- members can be set. |
-*/ |