46     xvid_plg_create_t xvid_plg_create = { 0 };
    47     xvid_plugin_2pass2_t xvid_2pass2  = { 0 };
    56         static const char frame_types[] = 
" ipbs";
    62         snprintf(tmp, 
sizeof(tmp), 
"%c %d %d %d %d %d %d\n",
    70         if (write(fd, tmp, strlen(tmp)) < 0) {
    81     xvid_2pass2.version     = XVID_MAKE_VERSION(1, 1, 0);
    82     xvid_2pass2.filename    = tmp_name;
    88     xvid_plg_create.version = XVID_MAKE_VERSION(1, 1, 0);
    91     xvid_plg_create.param   = &xvid_2pass2;
    93     if (xvid_plugin_2pass2(
NULL, XVID_PLG_CREATE, &xvid_plg_create,
   103     xvid_plg_data_t xvid_plg_data = { 0 };
   105     xvid_plg_data.version       = XVID_MAKE_VERSION(1, 1, 0);
   106     xvid_plg_data.width         = s->
width;
   107     xvid_plg_data.height        = s->
height;
   108     xvid_plg_data.mb_width      = s->
mb_width;
   112     xvid_plg_data.min_quant[0]  = s->
avctx->
qmin;
   113     xvid_plg_data.min_quant[1]  = s->
avctx->
qmin;
   114     xvid_plg_data.min_quant[2]  = s->
avctx->
qmin;   
   115     xvid_plg_data.max_quant[0]  = s->
avctx->
qmax;
   116     xvid_plg_data.max_quant[1]  = s->
avctx->
qmax;
   117     xvid_plg_data.max_quant[2]  = s->
avctx->
qmax;   
   118     xvid_plg_data.bquant_offset = 0;      
   119     xvid_plg_data.bquant_ratio  = 100;    
   123             xvid_plg_data.length        =
   124             xvid_plg_data.stats.length  = (s->
frame_bits + 7) / 8;
   126             xvid_plg_data.quant         = s->
qscale;
   129                                    XVID_PLG_AFTER, &xvid_plg_data, 
NULL)) {
   131                        "xvid_plugin_2pass2(handle, XVID_PLG_AFTER, ...) FAILED\n");
   137         xvid_plg_data.quant               = 0;
   139                                XVID_PLG_BEFORE, &xvid_plg_data, 
NULL)) {
   141                    "xvid_plugin_2pass2(handle, XVID_PLG_BEFORE, ...) FAILED\n");
   160     xvid_plg_destroy_t xvid_plg_destroy;
   163                        &xvid_plg_destroy, 
NULL);
 int frame_bits
bits used for the current frame 
RateControlContext rc_context
contains stuff only accessed in ratecontrol.c 
int64_t bit_rate
the average bitrate 
int rc_initial_buffer_occupancy
Number of bits which should be loaded into the rc buffer before decoding starts. 
int avpriv_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx)
Wrapper to work around the lack of mkstemp() on mingw. 
int mb_num
number of MBs of a picture 
Macro definitions for various function/variable attributes. 
common functions for use with the Xvid wrappers 
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
float b_quant_factor
qscale factor between IP and B-frames If > 0 then the last P-frame quantizer will be used (q= lastp_q...
int mb_height
number of MBs horizontally & vertically 
int num_entries
number of RateControlEntries 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
int qmax
maximum quantizer 
av_cold void ff_xvid_rate_control_uninit(MpegEncContext *s)
int rc_buffer_size
decoder bitstream buffer size 
float dry_run_qscale
for xvid rc 
common internal API header 
#define av_err2str(errnum)
Convenience macro, the return value should be used only directly in function arguments but never stan...
Libavcodec external API header. 
int qmin
minimum quantizer 
int height
picture size. must be a multiple of 16 
int last_picture_number
for xvid rc 
float b_quant_offset
qscale offset between IP and B-frames 
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ... 
struct AVCodecContext * avctx
void * non_lavc_opaque
context for non lavc rc code (for example xvid) 
av_cold int ff_xvid_rate_control_init(MpegEncContext *s)
#define FF_QP2LAMBDA
factor to convert from H.263 QP to lambda 
float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run)
int64_t rc_max_rate
maximum bitrate