48 cad->
param.info_level = 0;
61 davs2_seq_info_t *headerset,
int ret_type,
AVFrame *
frame)
64 int bytes_per_sample = pic->bytes_per_sample;
71 if (!pic || ret_type == DAVS2_GOT_HEADER) {
72 avctx->
width = headerset->width;
73 avctx->
height = headerset->height;
74 avctx->
pix_fmt = headerset->output_bit_depth == 10 ?
81 for (plane = 0; plane < 3; ++
plane) {
82 int size_line = pic->widths[
plane] * bytes_per_sample;
85 if (!frame->
buf[plane]){
93 for (line = 0; line < pic->lines[
plane]; ++line)
94 memcpy(frame->
data[plane] + line * size_line,
95 pic->planes[plane] + line * pic->strides[plane],
96 pic->widths[plane] * bytes_per_sample);
115 davs2_decoder_close(cad->
decoder);
126 int buf_size = avpkt->
size;
129 int ret = DAVS2_DEFAULT;
135 cad->
packet.data = buf_ptr;
136 cad->
packet.len = buf_size;
143 if (ret == DAVS2_ERROR) {
150 if (ret != DAVS2_DEFAULT) {
170 .wrapper_name =
"libdavs2",
This structure describes decoded (raw) audio or video data.
ptrdiff_t const GLvoid * data
davs2_picture_t out_frame
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame.
static av_cold int init(AVCodecContext *avctx)
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
AVCodec ff_libdavs2_decoder
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
#define AV_LOG_VERBOSE
Detailed information.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static av_cold int davs2_end(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
const char * name
Name of the codec implementation.
enum AVPictureType pict_type
Picture type of the frame.
int width
picture width / height.
static av_cold int davs2_init(AVCodecContext *avctx)
int thread_count
thread count is used to decide how many independent tasks should be passed to execute() ...
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames...
Libavcodec external API header.
AVBufferRef * av_buffer_alloc(int size)
Allocate an AVBuffer of the given size using av_malloc().
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
main external API structure.
uint8_t * data
The data buffer.
#define AV_PIX_FMT_YUV420P10
static enum AVPixelFormat pix_fmts[]
davs2_seq_info_t headerset
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
AVRational av_d2q(double d, int max)
Convert a double precision floating point number to a rational.
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
static int davs2_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
static int davs2_dump_frames(AVCodecContext *avctx, davs2_picture_t *pic, davs2_seq_info_t *headerset, int ret_type, AVFrame *frame)
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed...
#define AVERROR_EXTERNAL
Generic error in an external library.
AVPixelFormat
Pixel format.
This structure stores compressed data.
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...