MMAL Video Decoder.
More...
#include <bcm_host.h>
#include <interface/mmal/mmal.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 "avcodec.h"
#include "internal.h"
#include "libavutil/atomic.h"
#include "libavutil/avassert.h"
#include "libavutil/buffer.h"
#include "libavutil/common.h"
#include "libavutil/opt.h"
#include "libavutil/log.h"
Go to the source code of this file.
|
static void | ffmmal_poolref_unref (FFPoolRef *ref) |
|
static void | ffmmal_release_frame (void *opaque, uint8_t *data) |
|
static int | ffmmal_set_ref (AVFrame *frame, FFPoolRef *pool, MMAL_BUFFER_HEADER_T *buffer) |
|
static void | ffmmal_stop_decoder (AVCodecContext *avctx) |
|
static av_cold int | ffmmal_close_decoder (AVCodecContext *avctx) |
|
static void | input_callback (MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer) |
|
static void | output_callback (MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer) |
|
static void | control_port_cb (MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer) |
|
static int | ffmmal_fill_output_port (AVCodecContext *avctx) |
|
static enum AVColorSpace | ffmmal_csp_to_av_csp (MMAL_FOURCC_T fourcc) |
|
static int | ffmal_update_format (AVCodecContext *avctx) |
|
static av_cold int | ffmmal_init_decoder (AVCodecContext *avctx) |
|
static void | ffmmal_flush (AVCodecContext *avctx) |
|
static int | ffmmal_add_packet (AVCodecContext *avctx, AVPacket *avpkt) |
|
static int | ffmmal_fill_input_port (AVCodecContext *avctx) |
|
static int | ffmal_copy_frame (AVCodecContext *avctx, AVFrame *frame, MMAL_BUFFER_HEADER_T *buffer) |
|
static int | ffmmal_read_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame) |
|
static int | ffmmal_decode (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) |
|
MMAL Video Decoder.
Definition in file mmaldec.c.
#define MAX_DELAYED_FRAMES 16 |
static int ffmmal_set_ref |
( |
AVFrame * |
frame, |
|
|
FFPoolRef * |
pool, |
|
|
MMAL_BUFFER_HEADER_T * |
buffer |
|
) |
| |
|
static |
static void input_callback |
( |
MMAL_PORT_T * |
port, |
|
|
MMAL_BUFFER_HEADER_T * |
buffer |
|
) |
| |
|
static |
static void output_callback |
( |
MMAL_PORT_T * |
port, |
|
|
MMAL_BUFFER_HEADER_T * |
buffer |
|
) |
| |
|
static |
static void control_port_cb |
( |
MMAL_PORT_T * |
port, |
|
|
MMAL_BUFFER_HEADER_T * |
buffer |
|
) |
| |
|
static |
static enum AVColorSpace ffmmal_csp_to_av_csp |
( |
MMAL_FOURCC_T |
fourcc | ) |
|
|
static |
Initial value:= {
.name = "h264_mmal",
}
HW acceleration though MMAL, data[3] contains a pointer to the MMAL_BUFFER_HEADER_T structure...
Definition at line 759 of file mmaldec.c.
Initial value:={
{
"extra_buffers",
"extra buffers", 0x42,
AV_OPT_TYPE_INT, {.i64 = 10}, 0, 256, 0},
}
Definition at line 766 of file mmaldec.c.
Initial value:= {
.class_name = "mmaldec",
}
#define LIBAVUTIL_VERSION_INT
static const AVOption options[]
Definition at line 771 of file mmaldec.c.
Initial value:= {
.name = "h264_mmal",
}
static void flush(AVCodecContext *avctx)
static av_cold int init(AVCodecContext *avctx)
static int ffmmal_decode(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
#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 void ffmmal_flush(AVCodecContext *avctx)
static av_cold int ffmmal_init_decoder(AVCodecContext *avctx)
static av_cold int ffmmal_close_decoder(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static const AVClass ffmmaldec_class
static enum AVPixelFormat pix_fmts[]
static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avpkt)
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
HW acceleration though MMAL, data[3] contains a pointer to the MMAL_BUFFER_HEADER_T structure...
AVPixelFormat
Pixel format.
Definition at line 777 of file mmaldec.c.