FFmpeg  4.4.6
Data Structures | Macros | Functions | Variables
libx264.c File Reference
#include "libavutil/eval.h"
#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "libavutil/stereo3d.h"
#include "libavutil/time.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "internal.h"
#include "packet_internal.h"
#include "atsc_a53.h"
#include <x264.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  X264Opaque
 
struct  X264Context
 

Macros

#define MB_SIZE   16
 
#define PARSE_X264_OPT(name, var)
 
#define OFFSET(x)   offsetof(X264Context, x)
 
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 

Functions

static void X264_log (void *p, int level, const char *fmt, va_list args)
 
static int encode_nals (AVCodecContext *ctx, AVPacket *pkt, const x264_nal_t *nals, int nnal)
 
static int avfmt2_num_planes (int avfmt)
 
static void reconfig_encoder (AVCodecContext *ctx, const AVFrame *frame)
 
static int X264_frame (AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
 
static av_cold int X264_close (AVCodecContext *avctx)
 
static int parse_opts (AVCodecContext *avctx, const char *opt, const char *param)
 
static int convert_pix_fmt (enum AVPixelFormat pix_fmt)
 
static av_cold int X264_init (AVCodecContext *avctx)
 
static av_cold void X264_init_static (AVCodec *codec)
 

Variables

static enum AVPixelFormat pix_fmts_8bit []
 
static enum AVPixelFormat pix_fmts_9bit []
 
static enum AVPixelFormat pix_fmts_10bit []
 
static enum AVPixelFormat pix_fmts_all []
 
static const AVOption options []
 
static const AVCodecDefault x264_defaults []
 

Macro Definition Documentation

◆ MB_SIZE

#define MB_SIZE   16

Definition at line 48 of file libx264.c.

◆ PARSE_X264_OPT

#define PARSE_X264_OPT (   name,
  var 
)
Value:
if (x4->var && x264_param_parse(&x4->params, name, x4->var) < 0) {\
av_log(avctx, AV_LOG_ERROR, "Error parsing option '%s' with value '%s'.\n", name, x4->var);\
return AVERROR(EINVAL);\
}
#define AVERROR(e)
Definition: error.h:43
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:194
const char * name
Definition: qsvenc.c:46

Definition at line 590 of file libx264.c.

◆ OFFSET

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

Definition at line 1066 of file libx264.c.

◆ VE

Definition at line 1067 of file libx264.c.

Function Documentation

◆ X264_log()

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

Definition at line 118 of file libx264.c.

◆ encode_nals()

static int encode_nals ( AVCodecContext ctx,
AVPacket pkt,
const x264_nal_t *  nals,
int  nnal 
)
static

Definition at line 134 of file libx264.c.

Referenced by X264_frame().

◆ avfmt2_num_planes()

static int avfmt2_num_planes ( int  avfmt)
static

Definition at line 172 of file libx264.c.

Referenced by X264_frame().

◆ reconfig_encoder()

static void reconfig_encoder ( AVCodecContext ctx,
const AVFrame frame 
)
static

Definition at line 194 of file libx264.c.

Referenced by X264_frame().

◆ X264_frame()

static int X264_frame ( AVCodecContext ctx,
AVPacket pkt,
const AVFrame frame,
int got_packet 
)
static

Definition at line 294 of file libx264.c.

◆ X264_close()

static av_cold int X264_close ( AVCodecContext avctx)
static

Definition at line 507 of file libx264.c.

◆ parse_opts()

static int parse_opts ( AVCodecContext avctx,
const char *  opt,
const char *  param 
)
static

Definition at line 527 of file libx264.c.

◆ convert_pix_fmt()

static int convert_pix_fmt ( enum AVPixelFormat  pix_fmt)
static

Definition at line 553 of file libx264.c.

◆ X264_init()

static av_cold int X264_init ( AVCodecContext avctx)
static

Definition at line 596 of file libx264.c.

◆ X264_init_static()

static av_cold void X264_init_static ( AVCodec codec)
static

Definition at line 1055 of file libx264.c.

Variable Documentation

◆ pix_fmts_8bit

enum AVPixelFormat pix_fmts_8bit[]
static
Initial value:
= {
}
@ AV_PIX_FMT_NV12
planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (firs...
Definition: pixfmt.h:89
@ AV_PIX_FMT_NONE
Definition: pixfmt.h:65
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:70
@ AV_PIX_FMT_NV16
interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:201
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
@ AV_PIX_FMT_YUVJ422P
planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting col...
Definition: pixfmt.h:79
@ AV_PIX_FMT_YUVJ444P
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
Definition: pixfmt.h:80
@ AV_PIX_FMT_YUVJ420P
planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting col...
Definition: pixfmt.h:78

Definition at line 596 of file libx264.c.

Referenced by X264_init_static().

◆ pix_fmts_9bit

enum AVPixelFormat pix_fmts_9bit[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUV444P9
Definition: pixfmt.h:398
#define AV_PIX_FMT_YUV420P9
Definition: pixfmt.h:396

Definition at line 596 of file libx264.c.

Referenced by X264_init_static().

◆ pix_fmts_10bit

enum AVPixelFormat pix_fmts_10bit[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUV420P10
Definition: pixfmt.h:399
#define AV_PIX_FMT_YUV422P10
Definition: pixfmt.h:400
#define AV_PIX_FMT_NV20
Definition: pixfmt.h:446
#define AV_PIX_FMT_YUV444P10
Definition: pixfmt.h:402

Definition at line 596 of file libx264.c.

Referenced by X264_init_static().

◆ pix_fmts_all

enum AVPixelFormat pix_fmts_all[]
static

◆ options

const AVOption options[]
static

Definition at line 1068 of file libx264.c.

◆ x264_defaults

const AVCodecDefault x264_defaults[]
static

Definition at line 1150 of file libx264.c.