FFmpeg
Classes | Macros | Typedefs
mmaldec.c File Reference

MMAL Video Decoder. More...

#include <bcm_host.h>
#include <interface/mmal/mmal.h>
#include <interface/mmal/mmal_parameters_video.h>
#include <interface/mmal/util/mmal_util.h>
#include <interface/mmal/util/mmal_util_params.h>
#include <interface/mmal/util/mmal_default_components.h>
#include <interface/mmal/vc/mmal_vc_api.h>
#include <stdatomic.h>
#include "avcodec.h"
#include "hwaccel.h"
#include "internal.h"
#include "libavutil/avassert.h"
#include "libavutil/buffer.h"
#include "libavutil/common.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/log.h"

Classes

struct  FFBufferEntry
 
struct  FFPoolRef
 
struct  FFBufferRef
 
struct  MMALDecodeContext
 

Macros

#define MAX_DELAYED_FRAMES   16
 
#define FFMMAL_DEC_CLASS(NAME)
 
#define FFMMAL_DEC(NAME, ID)
 

Typedefs

typedef struct FFBufferEntry FFBufferEntry
 
typedef struct FFPoolRef FFPoolRef
 
typedef struct FFBufferRef FFBufferRef
 
typedef struct MMALDecodeContext MMALDecodeContext
 

Detailed Description

MMAL Video Decoder.

Macro Definition Documentation

§ FFMMAL_DEC

#define FFMMAL_DEC (   NAME,
  ID 
)
Value:
FFMMAL_DEC_CLASS(NAME) \
AVCodec ff_##NAME##_mmal_decoder = { \
.name = #NAME "_mmal", \
.long_name = NULL_IF_CONFIG_SMALL(#NAME " (mmal)"), \
.type = AVMEDIA_TYPE_VIDEO, \
.id = ID, \
.priv_data_size = sizeof(MMALDecodeContext), \
.init = ffmmal_init_decoder, \
.close = ffmmal_close_decoder, \
.decode = ffmmal_decode, \
.flush = ffmmal_flush, \
.priv_class = &ffmmal_##NAME##_dec_class, \
.caps_internal = FF_CODEC_CAP_SETS_PKT_DTS, \
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_MMAL, \
AV_PIX_FMT_YUV420P, \
AV_PIX_FMT_NONE}, \
.hw_configs = mmal_hw_configs, \
.wrapper_name = "mmal", \
};
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
Definition: avcodec.h:1056
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: avcodec.h:984
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
Definition: mmaldec.c:68
#define FF_CODEC_CAP_SETS_PKT_DTS
Decoders marked with FF_CODEC_CAP_SETS_PKT_DTS want to set AVFrame.pkt_dts manually.
Definition: internal.h:55
HW acceleration though MMAL, data[3] contains a pointer to the MMAL_BUFFER_HEADER_T structure...
Definition: pixfmt.h:223
AVPixelFormat
Pixel format.
Definition: pixfmt.h:60

§ FFMMAL_DEC_CLASS

#define FFMMAL_DEC_CLASS (   NAME)
Value:
static const AVClass ffmmal_##NAME##_dec_class = { \
.class_name = "mmal_" #NAME "_dec", \
.item_name = av_default_item_name, \
.option = options, \
.version = LIBAVUTIL_VERSION_INT, \
};
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:191
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
Definition: log.h:72
Describe the class of an AVClass context structure.
Definition: log.h:67