#include <drm_fourcc.h>
#include <pthread.h>
#include <rockchip/mpp_buffer.h>
#include <rockchip/rk_mpi.h>
#include <time.h>
#include <unistd.h>
#include "avcodec.h"
#include "decode.h"
#include "hwconfig.h"
#include "internal.h"
#include "libavutil/buffer.h"
#include "libavutil/common.h"
#include "libavutil/frame.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_drm.h"
#include "libavutil/imgutils.h"
#include "libavutil/log.h"
Go to the source code of this file.
◆ RECEIVE_FRAME_TIMEOUT
#define RECEIVE_FRAME_TIMEOUT 100 |
◆ FRAMEGROUP_MAX_FRAMES
#define FRAMEGROUP_MAX_FRAMES 16 |
◆ INPUT_MAX_PACKETS
#define INPUT_MAX_PACKETS 4 |
◆ RKMPP_DEC_CLASS
#define RKMPP_DEC_CLASS |
( |
|
NAME | ) |
|
Value: static const AVClass rkmpp_##NAME##_dec_class = { \
};
Definition at line 556 of file rkmppdec.c.
◆ RKMPP_DEC
#define RKMPP_DEC |
( |
|
NAME, |
|
|
|
ID, |
|
|
|
BSFS |
|
) |
| |
Value:
const
AVCodec ff_##NAME##_rkmpp_decoder = { \
.
name = #NAME
"_rkmpp", \
.priv_class = &rkmpp_##NAME##_dec_class, \
AV_PIX_FMT_NONE}, \
.bsfs = BSFS, \
.wrapper_name = "rkmpp", \
};
Definition at line 562 of file rkmppdec.c.
◆ rkmpp_get_codingtype()
◆ rkmpp_get_frameformat()
static uint32_t rkmpp_get_frameformat |
( |
MppFrameFormat |
mppformat | ) |
|
|
static |
◆ rkmpp_write_data()
◆ rkmpp_close_decoder()
◆ rkmpp_release_decoder()
static void rkmpp_release_decoder |
( |
void * |
opaque, |
|
|
uint8_t * |
data |
|
) |
| |
|
static |
◆ rkmpp_init_decoder()
◆ rkmpp_send_packet()
◆ rkmpp_release_frame()
static void rkmpp_release_frame |
( |
void * |
opaque, |
|
|
uint8_t * |
data |
|
) |
| |
|
static |
◆ rkmpp_retrieve_frame()
◆ rkmpp_receive_frame()
◆ rkmpp_flush()
◆ rkmpp_hw_configs
AVPixelFormat
Pixel format.
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
static int rkmpp_init_decoder(AVCodecContext *avctx)
@ AV_PIX_FMT_DRM_PRIME
DRM-managed buffers exposed through PRIME buffer sharing.
static enum AVPixelFormat pix_fmts[]
#define LIBAVUTIL_VERSION_INT
Describe the class of an AVClass context structure.
static void flush(AVCodecContext *avctx)
static CopyRet receive_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame)
static int rkmpp_close_decoder(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
static int rkmpp_receive_frame(AVCodecContext *avctx, AVFrame *frame)
#define HW_CONFIG_INTERNAL(format)
const char * name
Name of the codec implementation.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
static const AVCodecHWConfigInternal *const rkmpp_hw_configs[]
#define RKMPP_DEC_CLASS(NAME)
#define AV_CODEC_CAP_AVOID_PROBING
Decoder is not a preferred choice for probing.
static void rkmpp_flush(AVCodecContext *avctx)