#include <vpx/vpx_encoder.h>
#include <vpx/vp8cx.h>
#include "avcodec.h"
#include "internal.h"
#include "libavutil/base64.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
Go to the source code of this file.
Data Structures | |
struct | FrameListData |
Portion of struct vpx_codec_cx_pkt from vpx_encoder.h. More... | |
struct | VP8EncoderContext |
Defines | |
#define | VPX_DISABLE_CTRL_TYPECHECKS 1 |
#define | VPX_CODEC_DISABLE_COMPAT 1 |
#define | OFFSET(x) offsetof(VP8Context, x) |
#define | VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM |
Typedefs | |
typedef struct VP8EncoderContext | VP8Context |
Functions | |
static av_cold void | log_encoder_error (AVCodecContext *avctx, const char *desc) |
static av_cold void | dump_enc_cfg (AVCodecContext *avctx, const struct vpx_codec_enc_cfg *cfg) |
static void | coded_frame_add (void *list, struct FrameListData *cx_frame) |
static av_cold void | free_coded_frame (struct FrameListData *cx_frame) |
static av_cold void | free_frame_list (struct FrameListData *list) |
static av_cold int | codecctl_int (AVCodecContext *avctx, enum vp8e_enc_control_id id, int val) |
static av_cold int | vp8_free (AVCodecContext *avctx) |
static av_cold int | vp8_init (AVCodecContext *avctx) |
static void | cx_pktcpy (struct FrameListData *dst, const struct vpx_codec_cx_pkt *src) |
static int | storeframe (AVCodecContext *avctx, struct FrameListData *cx_frame, uint8_t *buf, int buf_size, AVFrame *coded_frame) |
Store coded frame information in format suitable for return from encode(). | |
static int | queue_frames (AVCodecContext *avctx, uint8_t *buf, int buf_size, AVFrame *coded_frame) |
Queue multiple output frames from the encoder, returning the front-most. | |
static int | vp8_encode (AVCodecContext *avctx, uint8_t *buf, int buf_size, void *data) |
Variables | |
static const char * | ctlidstr [] |
String mappings for enum vp8e_enc_control_id. | |
static const AVOption | options [] |
class { | |
class_name = "libvpx encoder" | |
item_name = av_default_item_name | |
option = options | |
version = LIBAVUTIL_VERSION_INT | |
}; | |
static const AVCodecDefault | defaults [] |
AVCodec | ff_libvpx_encoder |
Definition in file libvpxenc.c.
#define OFFSET | ( | x | ) | offsetof(VP8Context, x) |
Definition at line 549 of file libvpxenc.c.
#define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM |
Definition at line 550 of file libvpxenc.c.
#define VPX_CODEC_DISABLE_COMPAT 1 |
Definition at line 27 of file libvpxenc.c.
#define VPX_DISABLE_CTRL_TYPECHECKS 1 |
Definition at line 26 of file libvpxenc.c.
typedef struct VP8EncoderContext VP8Context |
static av_cold int codecctl_int | ( | AVCodecContext * | avctx, | |
enum vp8e_enc_control_id | id, | |||
int | val | |||
) | [static] |
static void coded_frame_add | ( | void * | list, | |
struct FrameListData * | cx_frame | |||
) | [static] |
static void cx_pktcpy | ( | struct FrameListData * | dst, | |
const struct vpx_codec_cx_pkt * | src | |||
) | [inline, static] |
static av_cold void dump_enc_cfg | ( | AVCodecContext * | avctx, | |
const struct vpx_codec_enc_cfg * | cfg | |||
) | [static] |
static av_cold void free_coded_frame | ( | struct FrameListData * | cx_frame | ) | [static] |
static av_cold void free_frame_list | ( | struct FrameListData * | list | ) | [static] |
static av_cold void log_encoder_error | ( | AVCodecContext * | avctx, | |
const char * | desc | |||
) | [static] |
Definition at line 93 of file libvpxenc.c.
Referenced by codecctl_int(), vp8_encode(), and vp8_init().
static int queue_frames | ( | AVCodecContext * | avctx, | |
uint8_t * | buf, | |||
int | buf_size, | |||
AVFrame * | coded_frame | |||
) | [static] |
Queue multiple output frames from the encoder, returning the front-most.
In cases where vpx_codec_get_cx_data() returns more than 1 frame append the frame queue. Return the head frame if available.
AVERROR(EINVAL) on output size error
AVERROR(ENOMEM) on coded frame queue data allocation error
Definition at line 428 of file libvpxenc.c.
Referenced by vp8_encode().
static int storeframe | ( | AVCodecContext * | avctx, | |
struct FrameListData * | cx_frame, | |||
uint8_t * | buf, | |||
int | buf_size, | |||
AVFrame * | coded_frame | |||
) | [static] |
Store coded frame information in format suitable for return from encode().
Write buffer information from cx_frame to buf & buf_size. Timing/frame details to coded_frame.
AVERROR(EINVAL) on error
Definition at line 398 of file libvpxenc.c.
Referenced by queue_frames().
static int vp8_encode | ( | AVCodecContext * | avctx, | |
uint8_t * | buf, | |||
int | buf_size, | |||
void * | data | |||
) | [static] |
Definition at line 506 of file libvpxenc.c.
static av_cold int vp8_free | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 207 of file libvpxenc.c.
static av_cold int vp8_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 219 of file libvpxenc.c.
const { ... } [static] |
class_name = "libvpx encoder" |
Definition at line 594 of file libvpxenc.c.
const char* ctlidstr[] [static] |
Initial value:
{ [VP8E_UPD_ENTROPY] = "VP8E_UPD_ENTROPY", [VP8E_UPD_REFERENCE] = "VP8E_UPD_REFERENCE", [VP8E_USE_REFERENCE] = "VP8E_USE_REFERENCE", [VP8E_SET_ROI_MAP] = "VP8E_SET_ROI_MAP", [VP8E_SET_ACTIVEMAP] = "VP8E_SET_ACTIVEMAP", [VP8E_SET_SCALEMODE] = "VP8E_SET_SCALEMODE", [VP8E_SET_CPUUSED] = "VP8E_SET_CPUUSED", [VP8E_SET_ENABLEAUTOALTREF] = "VP8E_SET_ENABLEAUTOALTREF", [VP8E_SET_NOISE_SENSITIVITY] = "VP8E_SET_NOISE_SENSITIVITY", [VP8E_SET_SHARPNESS] = "VP8E_SET_SHARPNESS", [VP8E_SET_STATIC_THRESHOLD] = "VP8E_SET_STATIC_THRESHOLD", [VP8E_SET_TOKEN_PARTITIONS] = "VP8E_SET_TOKEN_PARTITIONS", [VP8E_GET_LAST_QUANTIZER] = "VP8E_GET_LAST_QUANTIZER", [VP8E_SET_ARNR_MAXFRAMES] = "VP8E_SET_ARNR_MAXFRAMES", [VP8E_SET_ARNR_STRENGTH] = "VP8E_SET_ARNR_STRENGTH", [VP8E_SET_ARNR_TYPE] = "VP8E_SET_ARNR_TYPE", [VP8E_SET_CQ_LEVEL] = "VP8E_SET_CQ_LEVEL", }
Definition at line 73 of file libvpxenc.c.
Referenced by codecctl_int().
const AVCodecDefault defaults[] [static] |
Initial value:
{ { "qmin", "-1" }, { "qmax", "-1" }, { "g", "-1" }, { "keyint_min", "-1" }, { NULL }, }
Definition at line 600 of file libvpxenc.c.
Initial value:
{ .name = "libvpx", .type = AVMEDIA_TYPE_VIDEO, .id = CODEC_ID_VP8, .priv_data_size = sizeof(VP8Context), .init = vp8_init, .encode = vp8_encode, .close = vp8_free, .capabilities = CODEC_CAP_DELAY, .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE}, .long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"), .priv_class = &class, .defaults = defaults, }
Definition at line 608 of file libvpxenc.c.
item_name = av_default_item_name |
Definition at line 595 of file libvpxenc.c.
Definition at line 596 of file libvpxenc.c.
Definition at line 551 of file libvpxenc.c.
Definition at line 597 of file libvpxenc.c.