libxavs.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdint.h>
#include <float.h>
#include <xavs.h>
#include "avcodec.h"
#include "internal.h"
#include "libavutil/opt.h"

Go to the source code of this file.

Data Structures

struct  XavsContext

Macros

#define END_OF_STREAM   0x001
#define XAVS_PART_I8X8   0x002 /* Analyze i8x8 (requires 8x8 transform) */
#define XAVS_PART_P8X8   0x010 /* Analyze p16x8, p8x16 and p8x8 */
#define XAVS_PART_B8X8   0x100 /* Analyze b16x8, b*/
#define OFFSET(x)   offsetof(XavsContext, x)
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM

Typedefs

typedef struct XavsContext XavsContext

Functions

static void XAVS_log (void *p, int level, const char *fmt, va_list args)
static int encode_nals (AVCodecContext *ctx, uint8_t *buf, int size, xavs_nal_t *nals, int nnal, int skip_sei)
static int XAVS_frame (AVCodecContext *ctx, uint8_t *buf, int bufsize, void *data)
static av_cold int XAVS_close (AVCodecContext *avctx)
static av_cold int XAVS_init (AVCodecContext *avctx)

Variables

static const AVOption options []
class {
      class_name = "libxavs"
      item_name = av_default_item_name
      option = options
      version = LIBAVUTIL_VERSION_INT
}; 
static const AVCodecDefault xavs_defaults []
AVCodec ff_libxavs_encoder

Macro Definition Documentation

#define END_OF_STREAM   0x001

Definition at line 33 of file libxavs.c.

Referenced by XAVS_frame().

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

Definition at line 378 of file libxavs.c.

Definition at line 379 of file libxavs.c.

#define XAVS_PART_B8X8   0x100 /* Analyze b16x8, b*/

Definition at line 37 of file libxavs.c.

Referenced by XAVS_init().

#define XAVS_PART_I8X8   0x002 /* Analyze i8x8 (requires 8x8 transform) */

Definition at line 35 of file libxavs.c.

Referenced by XAVS_init().

#define XAVS_PART_P8X8   0x010 /* Analyze p16x8, p8x16 and p8x8 */

Definition at line 36 of file libxavs.c.

Referenced by XAVS_init().

Typedef Documentation

typedef struct XavsContext XavsContext

Function Documentation

static int encode_nals ( AVCodecContext ctx,
uint8_t *  buf,
int  size,
xavs_nal_t *  nals,
int  nnal,
int  skip_sei 
)
static

Definition at line 73 of file libxavs.c.

Referenced by XAVS_frame(), and XAVS_init().

static av_cold int XAVS_close ( AVCodecContext avctx)
static

Definition at line 173 of file libxavs.c.

static int XAVS_frame ( AVCodecContext ctx,
uint8_t *  buf,
int  bufsize,
void data 
)
static

Definition at line 106 of file libxavs.c.

static av_cold int XAVS_init ( AVCodecContext avctx)
static

Definition at line 186 of file libxavs.c.

static void XAVS_log ( void p,
int  level,
const char *  fmt,
va_list  args 
)
static

Definition at line 58 of file libxavs.c.

Referenced by XAVS_init().

Variable Documentation

const { ... }
class_name = "libxavs"

Definition at line 398 of file libxavs.c.

AVCodec ff_libxavs_encoder
Initial value:
{
.name = "libxavs",
.priv_data_size = sizeof(XavsContext),
.encode = XAVS_frame,
.pix_fmts = (const enum PixelFormat[]) { PIX_FMT_YUV420P, PIX_FMT_NONE },
.long_name = NULL_IF_CONFIG_SMALL("libxavs - the Chinese Audio Video Standard Encoder"),
.priv_class = &class,
.defaults = xavs_defaults,
}

Definition at line 409 of file libxavs.c.

item_name = av_default_item_name

Definition at line 399 of file libxavs.c.

option = options

Definition at line 400 of file libxavs.c.

const AVOption options[]
static
Initial value:
{
{ "crf", "Select the quality for constant quality mode", OFFSET(crf), AV_OPT_TYPE_FLOAT, {-1 }, -1, FLT_MAX, VE },
{ "qp", "Constant quantization parameter rate control method",OFFSET(cqp), AV_OPT_TYPE_INT, {-1 }, -1, INT_MAX, VE },
{ "b-bias", "Influences how often B-frames are used", OFFSET(b_bias), AV_OPT_TYPE_INT, {INT_MIN}, INT_MIN, INT_MAX, VE },
{ "cplxblur", "Reduce fluctuations in QP (before curve compression)", OFFSET(cplxblur), AV_OPT_TYPE_FLOAT, {-1 }, -1, FLT_MAX, VE},
{ "direct-pred", "Direct MV prediction mode", OFFSET(direct_pred), AV_OPT_TYPE_INT, {-1 }, -1, INT_MAX, VE, "direct-pred" },
{ "none", NULL, 0, AV_OPT_TYPE_CONST, { XAVS_DIRECT_PRED_NONE }, 0, 0, VE, "direct-pred" },
{ "spatial", NULL, 0, AV_OPT_TYPE_CONST, { XAVS_DIRECT_PRED_SPATIAL }, 0, 0, VE, "direct-pred" },
{ "temporal", NULL, 0, AV_OPT_TYPE_CONST, { XAVS_DIRECT_PRED_TEMPORAL }, 0, 0, VE, "direct-pred" },
{ "auto", NULL, 0, AV_OPT_TYPE_CONST, { XAVS_DIRECT_PRED_AUTO }, 0, 0, VE, "direct-pred" },
{ "aud", "Use access unit delimiters.", OFFSET(aud), AV_OPT_TYPE_INT, {-1 }, -1, 1, VE},
{ "mbtree", "Use macroblock tree ratecontrol.", OFFSET(mbtree), AV_OPT_TYPE_INT, {-1 }, -1, 1, VE},
{ "mixed-refs", "One reference per partition, as opposed to one reference per macroblock", OFFSET(mixed_refs), AV_OPT_TYPE_INT, {-1}, -1, 1, VE },
{ "fast-pskip", NULL, OFFSET(fast_pskip), AV_OPT_TYPE_INT, {-1 }, -1, 1, VE},
{ NULL },
}

Definition at line 380 of file libxavs.c.

Definition at line 401 of file libxavs.c.

const AVCodecDefault xavs_defaults[]
static
Initial value:
{
{ "b", "0" },
{ NULL },
}

Definition at line 404 of file libxavs.c.