#include <linux/videodev2.h>
#include <sys/ioctl.h>
#include "libavutil/pixfmt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/decode.h"
#include "libavcodec/internal.h"
#include "v4l2_context.h"
#include "v4l2_m2m.h"
#include "v4l2_fmt.h"
Go to the source code of this file.
|
static int | v4l2_try_start (AVCodecContext *avctx) |
|
static int | v4l2_prepare_decoder (V4L2m2mContext *s) |
|
static int | v4l2_receive_frame (AVCodecContext *avctx, AVFrame *frame) |
|
static av_cold int | v4l2_decode_init (AVCodecContext *avctx) |
|
static av_cold int | v4l2_decode_close (AVCodecContext *avctx) |
|
| M2MDEC (h264, "H.264", AV_CODEC_ID_H264, "h264_mp4toannexb") |
|
| M2MDEC (hevc, "HEVC", AV_CODEC_ID_HEVC, "hevc_mp4toannexb") |
|
| M2MDEC (mpeg1, "MPEG1", AV_CODEC_ID_MPEG1VIDEO, NULL) |
|
| M2MDEC (mpeg2, "MPEG2", AV_CODEC_ID_MPEG2VIDEO, NULL) |
|
| M2MDEC (mpeg4, "MPEG4", AV_CODEC_ID_MPEG4, NULL) |
|
| M2MDEC (h263, "H.263", AV_CODEC_ID_H263, NULL) |
|
| M2MDEC (vc1, "VC1", AV_CODEC_ID_VC1, NULL) |
|
| M2MDEC (vp8, "VP8", AV_CODEC_ID_VP8, NULL) |
|
| M2MDEC (vp9, "VP9", AV_CODEC_ID_VP9, NULL) |
|
◆ OFFSET
◆ FLAGS
◆ M2MDEC_CLASS
#define M2MDEC_CLASS |
( |
|
NAME | ) |
|
◆ M2MDEC
#define M2MDEC |
( |
|
NAME, |
|
|
|
LONGNAME, |
|
|
|
CODEC, |
|
|
|
bsf_name |
|
) |
| |
Value:
const
AVCodec ff_ ## NAME ## _v4l2m2m_decoder = { \
.
name = #NAME
"_v4l2m2m" , \
.id = CODEC , \
.priv_class = &v4l2_m2m_ ## NAME ## _dec_class, \
.bsfs = bsf_name, \
.wrapper_name = "v4l2m2m", \
}
Definition at line 241 of file v4l2_m2m_dec.c.
◆ v4l2_try_start()
◆ v4l2_prepare_decoder()
◆ v4l2_receive_frame()
◆ v4l2_decode_init()
◆ v4l2_decode_close()
◆ M2MDEC() [1/9]
◆ M2MDEC() [2/9]
◆ M2MDEC() [3/9]
◆ M2MDEC() [4/9]
◆ M2MDEC() [5/9]
◆ M2MDEC() [6/9]
◆ M2MDEC() [7/9]
◆ M2MDEC() [8/9]
◆ M2MDEC() [9/9]
◆ options
Initial value:= {
{ "num_capture_buffers", "Number of buffers in the capture context",
}
Definition at line 226 of file v4l2_m2m_dec.c.
#define FF_CODEC_CAP_SETS_PKT_DTS
Decoders marked with FF_CODEC_CAP_SETS_PKT_DTS want to set AVFrame.pkt_dts manually.
static av_cold int v4l2_decode_close(AVCodecContext *avctx)
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
#define LIBAVUTIL_VERSION_INT
Describe the class of an AVClass context structure.
static CopyRet receive_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame)
const char * av_default_item_name(void *ptr)
Return the context name.
#define V4L_M2M_DEFAULT_OPTS
static const AVOption options[]
static av_cold int v4l2_decode_init(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
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...
static int v4l2_receive_frame(AVCodecContext *avctx, AVFrame *frame)
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define M2MDEC_CLASS(NAME)
#define AV_CODEC_CAP_AVOID_PROBING
Decoder is not a preferred choice for probing.