enum Dav1dDecodeFrameType {
DAV1D_DECODEFRAMETYPE_ALL = 0, ///< decode and return all frames
DAV1D_DECODEFRAMETYPE_REFERENCE = 1,///< decode and return frames referenced by other frames only
DAV1D_DECODEFRAMETYPE_INTRA = 2, ///< decode and return intra frames only (includes keyframes)
DAV1D_DECODEFRAMETYPE_KEY = 3, ///< decode and return keyframes only
};
typedefstruct Dav1dSettings {
int n_threads; ///< number of threads (0 = number of logical cores in host system, default 0)
int max_frame_delay; ///< Set to 1 for low-latency decoding (0 = ceil(sqrt(n_threads)), default 0)
int apply_grain; ///< whether to apply film grain on output frames (default 1)
int operating_point; ///< select an operating point for scalable AV1 bitstreams (0 - 31, default 0)
int all_layers; ///< output all spatial layers of a scalable AV1 biststream (default 1) unsigned frame_size_limit; ///< maximum frame size, in pixels (0 = unlimited, default 0)
Dav1dPicAllocator allocator; ///< Picture allocator callback.
Dav1dLogger logger; ///< Logger callback.
int strict_std_compliance; ///< whether to abort decoding on standard compliance violations ///< that don't affect actual bitstream decoding (e.g. inconsistent ///< or invalid metadata, default 0)
int output_invisible_frames; ///< output invisibly coded frames (in coding order) in addition ///< to all visible frames. Because of show-existing-frame, this ///< means some frames may appear twice (once when coded, ///< once when shown, default 0)
enum Dav1dInloopFilterType inloop_filters; ///< postfilters to enable during decoding (default ///< DAV1D_INLOOPFILTER_ALL)
enum Dav1dDecodeFrameType decode_frame_type; ///< frame types to decode (default ///< DAV1D_DECODEFRAMETYPE_ALL)
uint8_t reserved[16]; ///< reserved for future use
} Dav1dSettings;
/** *Returnadecodedpicture. * *@paramcInputdecoderinstance. *@paramoutOutputframe.Thecallerassumesownershipofthereturned *reference. * *@return *0:Success,andaframeisreturned. *DAV1D_ERR(EAGAIN):Notenoughdatatooutputaframe.dav1d_send_data() *shouldbecalledwithnewinput. *OthernegativeDAV1D_ERRcodes:Errorduringdecodingorbecauseofinvalid *passed-inarguments. * *@noteTodrainbufferedframesfromthedecoder(i.e.onendofstream), *callthisfunctionuntilitreturnsDAV1D_ERR(EAGAIN). * *@code{.c} *Dav1dDatadata={0}; *Dav1dPicturep={0}; *intres; * *read_data(&data); *do{ *res=dav1d_send_data(c,&data); *// Keep going even if the function can't consume the current data *packet.Iteventuallywillafteroneormoreframeshavebeen *returnedinthisloop. *if(res<0&&res!=DAV1D_ERR(EAGAIN)) *free_and_abort(); *res=dav1d_get_picture(c,&p); *if(res<0){ *if(res!=DAV1D_ERR(EAGAIN)) *free_and_abort(); *}else *output_and_unref_picture(&p); *// Stay in the loop as long as there's data to consume. *}while(data.sz||read_data(&data)==SUCCESS); * *// Handle EOS by draining all buffered frames. *do{ *res=dav1d_get_picture(c,&p); *if(res<0){ *if(res!=DAV1D_ERR(EAGAIN)) *free_and_abort(); *}else *output_and_unref_picture(&p); *}while(res==0); *@endcode
*/
DAV1D_API int dav1d_get_picture(Dav1dContext *c, Dav1dPicture *out);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.