#include <errno.h>
#include <stdarg.h>
#include "common.h"
#include "picture.h"
#include "data.h"
#include "version.h"
Go to the source code of this file.
◆ DAV1D_MAX_FRAME_DELAY
#define DAV1D_MAX_FRAME_DELAY 256 |
◆ DAV1D_MAX_THREADS
#define DAV1D_MAX_THREADS 256 |
◆ Dav1dContext
◆ Dav1dRef
◆ Dav1dDecodeFrameType
Enumerator |
---|
DAV1D_DECODEFRAMETYPE_ALL | decode and return all frames
|
DAV1D_DECODEFRAMETYPE_REFERENCE | decode and return frames referenced by other frames only
|
DAV1D_DECODEFRAMETYPE_INTRA | decode and return intra frames only (includes keyframes)
|
DAV1D_DECODEFRAMETYPE_KEY | decode and return keyframes only
|
◆ Dav1dEventFlags
Enumerator |
---|
DAV1D_EVENT_FLAG_NEW_SEQUENCE | The last returned picture contains a reference to a new Sequence Header, either because it's the start of a new coded sequence, or the decoder was flushed before it was generated.
|
DAV1D_EVENT_FLAG_NEW_OP_PARAMS_INFO | The last returned picture contains a reference to a Sequence Header with new operating parameters information for the current coded sequence.
|
◆ Dav1dInloopFilterType
Enumerator |
---|
DAV1D_INLOOPFILTER_NONE | |
DAV1D_INLOOPFILTER_DEBLOCK | |
DAV1D_INLOOPFILTER_CDEF | |
DAV1D_INLOOPFILTER_RESTORATION | |
DAV1D_INLOOPFILTER_ALL | |
◆ dav1d_apply_grain()
Apply film grain to a previously decoded picture. If the picture contains no film grain metadata, then this function merely returns a new reference.
- Parameters
-
c | Input decoder instance. |
out | Output frame. The caller assumes ownership of the returned reference. |
in | Input frame. No ownership is transferred. |
- Returns
- 0: Success, and a frame is returned. Other negative DAV1D_ERR codes: Error due to lack of memory or because of invalid passed-in arguments.
- Note
- If
Dav1dSettings.apply_grain
is true, film grain was already applied by dav1d_get_picture
, and so calling this function leads to double application of film grain. Users should only call this when needed.
◆ dav1d_close()
Close a decoder instance and free all associated memory.
- Parameters
-
c_out | The decoder instance to close. *c_out will be set to NULL. |
◆ dav1d_default_settings()
Initialize settings to default values.
- Parameters
-
◆ dav1d_flush()
Flush all delayed frames in decoder and clear internal decoder state, to be used when seeking.
- Parameters
-
- Note
- Decoding will start only after a valid sequence header OBU is delivered to dav1d_send_data().
◆ dav1d_get_decode_error_data_props()
Retrieve the user-provided metadata associated with the input data packet for the last decoding error reported to the user, i.e. a negative return value (not EAGAIN) from dav1d_send_data() or dav1d_get_picture().
- Parameters
-
c | Input decoder instance. |
out | Output Dav1dDataProps. On success, the caller assumes ownership of the returned reference. |
- Returns
- 0 on success, or < 0 (a negative DAV1D_ERR code) on error.
◆ dav1d_get_event_flags()
Fetch a combination of DAV1D_EVENT_FLAG_* event flags generated by the decoding process.
- Parameters
-
c | Input decoder instance. |
flags | Where to write the flags. |
- Returns
- 0 on success, or < 0 (a negative DAV1D_ERR code) on error.
- Note
- Calling this function will clear all the event flags currently stored in the decoder.
◆ dav1d_get_frame_delay()
Get the decoder delay, which is the number of internally buffered frames, not including reference frames. This value is guaranteed to be >= 1 and <= max_frame_delay.
- Parameters
-
- Returns
- Decoder frame delay on success, or < 0 (a negative DAV1D_ERR code) on error.
- Note
- The returned delay is valid only for a Dav1dContext initialized with the provided Dav1dSettings.
◆ dav1d_get_picture()
Return a decoded picture.
- Parameters
-
c | Input decoder instance. |
out | Output frame. The caller assumes ownership of the returned reference. |
- Returns
- 0: Success, and a frame is returned. DAV1D_ERR(EAGAIN): Not enough data to output a frame. dav1d_send_data() should be called with new input. Other negative DAV1D_ERR codes: Error during decoding or because of invalid passed-in arguments.
- Note
- To drain buffered frames from the decoder (i.e. on end of stream), call this function until it returns DAV1D_ERR(EAGAIN).
int res;
read_data(&data);
do {
packet. It eventually will after one or more frames have been
returned in this loop.
free_and_abort();
if (res < 0) {
free_and_abort();
} else
output_and_unref_picture(&p);
}
while (data.
sz || read_data(&data) == SUCCESS);
do {
if (res < 0) {
free_and_abort();
} else
output_and_unref_picture(&p);
} while (res == 0);
#define DAV1D_ERR(e)
Definition common.h:58
DAV1D_API int dav1d_get_picture(Dav1dContext *c, Dav1dPicture *out)
DAV1D_API int dav1d_send_data(Dav1dContext *c, Dav1dData *in)
size_t sz
data size
Definition data.h:42
◆ dav1d_open()
Allocate and open a decoder instance.
- Parameters
-
c_out | The decoder instance to open. *c_out will be set to the allocated context. |
s | Input settings context. |
- Note
- The context must be freed using dav1d_close() when decoding is finished.
- Returns
- 0 on success, or < 0 (a negative DAV1D_ERR code) on error.
◆ dav1d_parse_sequence_header()
Parse a Sequence Header OBU from bitstream data.
- Parameters
-
out | Output Sequence Header. |
buf | The data to be parser. |
sz | Size of the data. |
- Returns
- 0: Success, and out is filled with the parsed Sequence Header OBU parameters. DAV1D_ERR(ENOENT): No Sequence Header OBUs were found in the buffer. Other negative DAV1D_ERR codes: Invalid data in the buffer, invalid passed-in arguments, and other errors during parsing.
- Note
- It is safe to feed this function data containing other OBUs than a Sequence Header, as they will simply be ignored. If there is more than one Sequence Header OBU present, only the last will be returned.
◆ dav1d_send_data()
Feed bitstream data to the decoder, in the form of one or multiple AV1 Open Bitstream Units (OBUs).
- Parameters
-
c | Input decoder instance. |
in | Input bitstream data. On success, ownership of the reference is passed to the library. |
- Returns
- 0: Success, and the data was consumed. DAV1D_ERR(EAGAIN): The data can't be consumed. dav1d_get_picture() should be called to get one or more frames before the function can consume new data. Other negative DAV1D_ERR codes: Error during decoding or because of invalid passed-in arguments. The reference remains owned by the caller.
◆ dav1d_version()
DAV1D_API const char * dav1d_version |
( |
void |
| ) |
|
◆ dav1d_version_api()
DAV1D_API unsigned dav1d_version_api |
( |
void |
| ) |
|