FFmpeg
Data Structures | Macros | Functions | Variables
libxavs2.c File Reference
#include "xavs2.h"
#include "mpeg12.h"
#include "libavutil/avstring.h"

Go to the source code of this file.

Data Structures

struct  XAVS2EContext
 

Macros

#define xavs2_opt_set2(name, format, ...)
 
#define OFFSET(x)   offsetof(XAVS2EContext, x)
 
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 

Functions

static av_cold int xavs2_init (AVCodecContext *avctx)
 
static void xavs2_copy_frame_with_shift (xavs2_picture_t *pic, const AVFrame *frame, const int shift_in)
 
static void xavs2_copy_frame (xavs2_picture_t *pic, const AVFrame *frame)
 
static int xavs2_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
 
static av_cold int xavs2_close (AVCodecContext *avctx)
 

Variables

static const AVOption options []
 
static const AVClass libxavs2
 
static const AVCodecDefault xavs2_defaults []
 
AVCodec ff_libxavs2_encoder
 

Macro Definition Documentation

◆ xavs2_opt_set2

#define xavs2_opt_set2 (   name,
  format,
  ... 
)
Value:
do{ \
char opt_str[16] = {0}; \
int err; \
av_strlcatf(opt_str, sizeof(opt_str), format, __VA_ARGS__); \
err = cae->api->opt_set2(cae->param, name, opt_str); \
if (err) {\
av_log(avctx, AV_LOG_WARNING, "Invalid value for %s: %s\n", name, opt_str);\
}\
} while(0);

Definition at line 29 of file libxavs2.c.

◆ OFFSET

#define OFFSET (   x)    offsetof(XAVS2EContext, x)

Definition at line 249 of file libxavs2.c.

◆ VE

Definition at line 250 of file libxavs2.c.

Function Documentation

◆ xavs2_init()

static av_cold int xavs2_init ( AVCodecContext avctx)
static

Definition at line 60 of file libxavs2.c.

◆ xavs2_copy_frame_with_shift()

static void xavs2_copy_frame_with_shift ( xavs2_picture_t *  pic,
const AVFrame frame,
const int  shift_in 
)
static

Definition at line 133 of file libxavs2.c.

Referenced by xavs2_encode_frame().

◆ xavs2_copy_frame()

static void xavs2_copy_frame ( xavs2_picture_t *  pic,
const AVFrame frame 
)
static

Definition at line 150 of file libxavs2.c.

Referenced by xavs2_encode_frame().

◆ xavs2_encode_frame()

static int xavs2_encode_frame ( AVCodecContext avctx,
AVPacket pkt,
const AVFrame frame,
int got_packet 
)
static

Definition at line 162 of file libxavs2.c.

◆ xavs2_close()

static av_cold int xavs2_close ( AVCodecContext avctx)
static

Definition at line 235 of file libxavs2.c.

Variable Documentation

◆ options

const AVOption options[]
static
Initial value:
= {
{ "lcu_row_threads" , "number of parallel threads for rows" , OFFSET(lcu_row_threads) , AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, VE },
{ "initial_qp" , "Quantization initial parameter" , OFFSET(initial_qp) , AV_OPT_TYPE_INT, {.i64 = 34 }, 1, 63, VE },
{ "qp" , "Quantization parameter" , OFFSET(qp) , AV_OPT_TYPE_INT, {.i64 = 34 }, 1, 63, VE },
{ "max_qp" , "max qp for rate control" , OFFSET(max_qp) , AV_OPT_TYPE_INT, {.i64 = 55 }, 0, 63, VE },
{ "min_qp" , "min qp for rate control" , OFFSET(min_qp) , AV_OPT_TYPE_INT, {.i64 = 20 }, 0, 63, VE },
{ "speed_level" , "Speed level, higher is better but slower", OFFSET(preset_level) , AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 9, VE },
{ "log_level" , "log level: -1: none, 0: error, 1: warning, 2: info, 3: debug", OFFSET(log_level) , AV_OPT_TYPE_INT, {.i64 = 0 }, -1, 3, VE },
{ "xavs2-params" , "set the xavs2 configuration using a :-separated list of key=value parameters", OFFSET(xavs2_opts), AV_OPT_TYPE_STRING, { 0 }, 0, 0, VE },
{ NULL },
}

Definition at line 252 of file libxavs2.c.

◆ libxavs2

const AVClass libxavs2
static
Initial value:
= {
.class_name = "XAVS2EContext",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 264 of file libxavs2.c.

◆ xavs2_defaults

const AVCodecDefault xavs2_defaults[]
static
Initial value:
= {
{ "b", "0" },
{ "g", "48"},
{ "bf", "7" },
{ NULL },
}

Definition at line 271 of file libxavs2.c.

◆ ff_libxavs2_encoder

AVCodec ff_libxavs2_encoder
Initial value:
= {
.name = "libxavs2",
.long_name = NULL_IF_CONFIG_SMALL("libxavs2 AVS2-P2/IEEE1857.4"),
.priv_data_size = sizeof(XAVS2EContext),
.encode2 = xavs2_encode_frame,
.close = xavs2_close,
.priv_class = &libxavs2,
.defaults = xavs2_defaults,
.wrapper_name = "libxavs2",
}

Definition at line 278 of file libxavs2.c.

AV_LOG_WARNING
#define AV_LOG_WARNING
Something somehow does not look correct.
Definition: log.h:182
AVPixelFormat
AVPixelFormat
Pixel format.
Definition: pixfmt.h:64
init
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
name
const char * name
Definition: avisynth_c.h:867
AV_CODEC_ID_AVS2
@ AV_CODEC_ID_AVS2
Definition: avcodec.h:412
libxavs2
static const AVClass libxavs2
Definition: libxavs2.c:264
format
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample format(the sample packing is implied by the sample format) and sample rate. The lists are not just lists
XAVS2EContext
Definition: libxavs2.c:39
pix_fmts
static enum AVPixelFormat pix_fmts[]
Definition: libkvazaar.c:275
AV_PIX_FMT_YUV420P
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
NULL
#define NULL
Definition: coverity.c:32
xavs2_encode_frame
static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
Definition: libxavs2.c:162
xavs2_init
static av_cold int xavs2_init(AVCodecContext *avctx)
Definition: libxavs2.c:60
VE
#define VE
Definition: libxavs2.c:250
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:191
AV_CODEC_CAP_AUTO_THREADS
#define AV_CODEC_CAP_AUTO_THREADS
Codec supports avctx->thread_count == 0 (auto).
Definition: avcodec.h:1049
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:188
xavs2_defaults
static const AVCodecDefault xavs2_defaults[]
Definition: libxavs2.c:271
OFFSET
#define OFFSET(x)
Definition: libxavs2.c:249
AV_PIX_FMT_NONE
@ AV_PIX_FMT_NONE
Definition: pixfmt.h:65
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Definition: opt.h:223
AV_CODEC_CAP_DELAY
#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:1006
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
AV_OPT_TYPE_STRING
@ AV_OPT_TYPE_STRING
Definition: opt.h:227
options
static const AVOption options[]
Definition: libxavs2.c:252
xavs2_close
static av_cold int xavs2_close(AVCodecContext *avctx)
Definition: libxavs2.c:235