xref: /aosp_15_r20/external/libaom/usage_dx.dox (revision 77c1e3ccc04c968bd2bc212e87364f250e820521)
1*77c1e3ccSAndroid Build Coastguard Worker/*! \page usage_decode Decoding
2*77c1e3ccSAndroid Build Coastguard Worker
3*77c1e3ccSAndroid Build Coastguard Worker    The aom_codec_decode() function is at the core of the decode loop. It
4*77c1e3ccSAndroid Build Coastguard Worker    processes packets of compressed data passed by the application, producing
5*77c1e3ccSAndroid Build Coastguard Worker    decoded images. The decoder expects packets to comprise exactly one image
6*77c1e3ccSAndroid Build Coastguard Worker    frame of data. Packets \ref MUST be passed in decode order. If the
7*77c1e3ccSAndroid Build Coastguard Worker    application wishes to associate some data with the frame, the
8*77c1e3ccSAndroid Build Coastguard Worker    <code>user_priv</code> member may be set.
9*77c1e3ccSAndroid Build Coastguard Worker
10*77c1e3ccSAndroid Build Coastguard Worker    \ref samples
11*77c1e3ccSAndroid Build Coastguard Worker
12*77c1e3ccSAndroid Build Coastguard Worker
13*77c1e3ccSAndroid Build Coastguard Worker    \section usage_frame_iter Frame Iterator Based Decoding
14*77c1e3ccSAndroid Build Coastguard Worker    Decoded frames are made available to the application
15*77c1e3ccSAndroid Build Coastguard Worker    through the aom_codec_get_frame() iterator. The application initializes the
16*77c1e3ccSAndroid Build Coastguard Worker    iterator storage (of type #aom_codec_iter_t) to NULL, then calls
17*77c1e3ccSAndroid Build Coastguard Worker    aom_codec_get_frame repeatedly until it returns NULL, indicating that all
18*77c1e3ccSAndroid Build Coastguard Worker    images have been returned. This process may result in zero, one, or many
19*77c1e3ccSAndroid Build Coastguard Worker    frames that are ready for display, depending on the codec.
20*77c1e3ccSAndroid Build Coastguard Worker
21*77c1e3ccSAndroid Build Coastguard Worker
22*77c1e3ccSAndroid Build Coastguard Worker*/
23