FFmpeg
Functions
ratecontrol.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/emms.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "ratecontrol.h"
#include "mpegvideoenc.h"
#include "libavutil/eval.h"

Go to the source code of this file.

Functions

void ff_write_pass1_stats (MpegEncContext *s)
 
static double get_fps (AVCodecContext *avctx)
 
static double qp2bits (const RateControlEntry *rce, double qp)
 
static double qp2bits_cb (void *rce, double qp)
 
static double bits2qp (const RateControlEntry *rce, double bits)
 
static double bits2qp_cb (void *rce, double qp)
 
static double get_diff_limited_q (MpegEncContext *s, const RateControlEntry *rce, double q)
 
static void get_qminmax (int *qmin_ret, int *qmax_ret, MpegEncContext *s, int pict_type)
 Get the qmin & qmax for pict_type. More...
 
static double modify_qscale (MpegEncContext *s, const RateControlEntry *rce, double q, int frame_num)
 
static double get_qscale (MpegEncContext *s, RateControlEntry *rce, double rate_factor, int frame_num)
 Modify the bitrate curve from pass1 for one frame. More...
 
static int init_pass2 (MpegEncContext *s)
 
av_cold int ff_rate_control_init (MpegEncContext *s)
 
av_cold void ff_rate_control_uninit (RateControlContext *rcc)
 
int ff_vbv_update (MpegEncContext *s, int frame_size)
 
static double predict_size (Predictor *p, double q, double var)
 
static void update_predictor (Predictor *p, double q, double var, double size)
 
static void adaptive_quantization (MpegEncContext *s, double q)
 
void ff_get_2pass_fcode (MpegEncContext *s)
 
float ff_rate_estimate_qscale (MpegEncContext *s, int dry_run)
 

Detailed Description

Rate control for video encoders.

Definition in file ratecontrol.c.

Function Documentation

◆ ff_write_pass1_stats()

void ff_write_pass1_stats ( MpegEncContext s)

Definition at line 38 of file ratecontrol.c.

Referenced by encode_frame(), and ff_mpv_encode_picture().

◆ get_fps()

static double get_fps ( AVCodecContext avctx)
static

◆ qp2bits()

static double qp2bits ( const RateControlEntry rce,
double  qp 
)
inlinestatic

Definition at line 73 of file ratecontrol.c.

Referenced by get_qscale(), init_pass2(), and qp2bits_cb().

◆ qp2bits_cb()

static double qp2bits_cb ( void *  rce,
double  qp 
)
static

Definition at line 81 of file ratecontrol.c.

Referenced by ff_rate_control_init().

◆ bits2qp()

static double bits2qp ( const RateControlEntry rce,
double  bits 
)
inlinestatic

Definition at line 86 of file ratecontrol.c.

Referenced by bits2qp_cb(), get_qscale(), and modify_qscale().

◆ bits2qp_cb()

static double bits2qp_cb ( void *  rce,
double  qp 
)
static

Definition at line 94 of file ratecontrol.c.

Referenced by ff_rate_control_init().

◆ get_diff_limited_q()

static double get_diff_limited_q ( MpegEncContext s,
const RateControlEntry rce,
double  q 
)
static

Definition at line 99 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale(), and init_pass2().

◆ get_qminmax()

static void get_qminmax ( int qmin_ret,
int qmax_ret,
MpegEncContext s,
int  pict_type 
)
static

Get the qmin & qmax for pict_type.

Definition at line 138 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale(), and modify_qscale().

◆ modify_qscale()

static double modify_qscale ( MpegEncContext s,
const RateControlEntry rce,
double  q,
int  frame_num 
)
static

Definition at line 166 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale(), and init_pass2().

◆ get_qscale()

static double get_qscale ( MpegEncContext s,
RateControlEntry rce,
double  rate_factor,
int  frame_num 
)
static

Modify the bitrate curve from pass1 for one frame.

Definition at line 257 of file ratecontrol.c.

Referenced by ff_rate_control_init(), ff_rate_estimate_qscale(), and init_pass2().

◆ init_pass2()

static int init_pass2 ( MpegEncContext s)
static

Definition at line 330 of file ratecontrol.c.

Referenced by ff_rate_control_init().

◆ ff_rate_control_init()

av_cold int ff_rate_control_init ( MpegEncContext s)

Definition at line 491 of file ratecontrol.c.

Referenced by encode_init(), and ff_mpv_encode_init().

◆ ff_rate_control_uninit()

av_cold void ff_rate_control_uninit ( RateControlContext rcc)

Definition at line 694 of file ratecontrol.c.

Referenced by encode_end(), and ff_mpv_encode_end().

◆ ff_vbv_update()

int ff_vbv_update ( MpegEncContext s,
int  frame_size 
)

Definition at line 703 of file ratecontrol.c.

Referenced by ff_mpv_encode_picture(), init_pass2(), and set_bframe_chain_length().

◆ predict_size()

static double predict_size ( Predictor p,
double  q,
double  var 
)
static

Definition at line 745 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale().

◆ update_predictor()

static void update_predictor ( Predictor p,
double  q,
double  var,
double  size 
)
static

Definition at line 750 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale().

◆ adaptive_quantization()

static void adaptive_quantization ( MpegEncContext s,
double  q 
)
static

Definition at line 762 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale().

◆ ff_get_2pass_fcode()

void ff_get_2pass_fcode ( MpegEncContext s)

Definition at line 878 of file ratecontrol.c.

Referenced by encode_picture().

◆ ff_rate_estimate_qscale()

float ff_rate_estimate_qscale ( MpegEncContext s,
int  dry_run 
)

Definition at line 889 of file ratecontrol.c.

Referenced by encode_frame(), estimate_qp(), and ratecontrol_1pass().