| Index: third_party/libvpx/source/libvpx/usage_dx.dox
|
| diff --git a/third_party/libvpx/source/libvpx/usage_dx.dox b/third_party/libvpx/source/libvpx/usage_dx.dox
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..883ce24926f0cc8dbfeb71adb189c1943ddf0b61
|
| --- /dev/null
|
| +++ b/third_party/libvpx/source/libvpx/usage_dx.dox
|
| @@ -0,0 +1,62 @@
|
| +/*! \page usage_decode Decoding
|
| +
|
| + The vpx_codec_decode() function is at the core of the decode loop. It
|
| + processes packets of compressed data passed by the application, producing
|
| + decoded images. The decoder expects packets to comprise exactly one image
|
| + frame of data. Packets \ref MUST be passed in decode order. If the
|
| + application wishes to associate some data with the frame, the
|
| + <code>user_priv</code> member may be set. The <code>deadline</code>
|
| + parameter controls the amount of time in microseconds the decoder should
|
| + spend working on the frame. This is typically used to support adaptive
|
| + \ref usage_postproc based on the amount of free CPU time. For more
|
| + information on the <code>deadline</code> parameter, see \ref usage_deadline.
|
| +
|
| + \ref samples
|
| +
|
| +
|
| + \section usage_cb Callback Based Decoding
|
| + There are two methods for the application to access decoded frame data. Some
|
| + codecs support asynchronous (callback-based) decoding \ref usage_features
|
| + that allow the application to register a callback to be invoked by the
|
| + decoder when decoded data becomes available. Decoders are not required to
|
| + support this feature, however. Like all \ref usage_features, support can be
|
| + determined by calling vpx_codec_get_caps(). Callbacks are available in both
|
| + frame-based and slice-based variants. Frame based callbacks conform to the
|
| + signature of #vpx_codec_put_frame_cb_fn_t and are invoked once the entire
|
| + frame has been decoded. Slice based callbacks conform to the signature of
|
| + #vpx_codec_put_slice_cb_fn_t and are invoked after a subsection of the frame
|
| + is decoded. For example, a slice callback could be issued for each
|
| + macroblock row. However, the number and size of slices to return is
|
| + implementation specific. Also, the image data passed in a slice callback is
|
| + not necessarily in the same memory segment as the data will be when it is
|
| + assembled into a full frame. For this reason, the application \ref MUST
|
| + examine the rectangles that describe what data is valid to access and what
|
| + data has been updated in this call. For all their additional complexity,
|
| + slice based decoding callbacks provide substantial speed gains to the
|
| + overall application in some cases, due to improved cache behavior.
|
| +
|
| +
|
| + \section usage_frame_iter Frame Iterator Based Decoding
|
| + If the codec does not support callback based decoding, or the application
|
| + chooses not to make use of that feature, decoded frames are made available
|
| + through the vpx_codec_get_frame() iterator. The application initializes the
|
| + iterator storage (of type #vpx_codec_iter_t) to NULL, then calls
|
| + vpx_codec_get_frame repeatedly until it returns NULL, indicating that all
|
| + images have been returned. This process may result in zero, one, or many
|
| + frames that are ready for display, depending on the codec.
|
| +
|
| +
|
| + \section usage_postproc Postprocessing
|
| + Postprocessing is a process that is applied after a frame is decoded to
|
| + enhance the image's appearance by removing artifacts introduced in the
|
| + compression process. It is not required to properly decode the frame, and
|
| + is generally done only when there is enough spare CPU time to execute
|
| + the required filters. Codecs may support a number of different
|
| + postprocessing filters, and the available filters may differ from platform
|
| + to platform. Embedded devices often do not have enough CPU to implement
|
| + postprocessing in software. The filter selection is generally handled
|
| + automatically by the codec, depending on the amount of time remaining before
|
| + hitting the user-specified \ref usage_deadline after decoding the frame.
|
| +
|
| +
|
| +*/
|
|
|