38 xvid_plg_create_t xvid_plg_create;
39 xvid_plugin_2pass2_t xvid_2pass2;
50 static const char *frame_types =
" ipbs";
56 snprintf(tmp,
sizeof(tmp),
"%c %d %d %d %d %d %d\n",
61 write(fd, tmp, strlen(tmp));
66 memset(&xvid_2pass2, 0,
sizeof(xvid_2pass2));
67 xvid_2pass2.version= XVID_MAKE_VERSION(1,1,0);
68 xvid_2pass2.filename= tmp_name;
74 memset(&xvid_plg_create, 0,
sizeof(xvid_plg_create));
75 xvid_plg_create.version= XVID_MAKE_VERSION(1,1,0);
78 xvid_plg_create.param= &xvid_2pass2;
88 xvid_plg_data_t xvid_plg_data;
90 memset(&xvid_plg_data, 0,
sizeof(xvid_plg_data));
91 xvid_plg_data.version= XVID_MAKE_VERSION(1,1,0);
92 xvid_plg_data.width = s->
width;
93 xvid_plg_data.height= s->
height;
94 xvid_plg_data.mb_width = s->
mb_width;
98 xvid_plg_data.min_quant[0]= s->
avctx->
qmin;
99 xvid_plg_data.min_quant[1]= s->
avctx->
qmin;
100 xvid_plg_data.min_quant[2]= s->
avctx->
qmin;
101 xvid_plg_data.max_quant[0]= s->
avctx->
qmax;
102 xvid_plg_data.max_quant[1]= s->
avctx->
qmax;
103 xvid_plg_data.max_quant[2]= s->
avctx->
qmax;
104 xvid_plg_data.bquant_offset = 0;
105 xvid_plg_data.bquant_ratio = 100;
108 xvid_plg_data.stats.hlength= X
113 xvid_plg_data.length=
114 xvid_plg_data.stats.length= (s->
frame_bits + 7)/8;
116 xvid_plg_data.quant= s->
qscale;
126 xvid_plg_data.quant= 0;
144 xvid_plg_destroy_t xvid_plg_destroy;
int frame_bits
bits used for the current frame
RateControlContext rc_context
contains stuff only accessed in ratecontrol.c
int rc_initial_buffer_occupancy
Number of bits which should be loaded into the rc buffer before decoding starts.
int mb_num
number of MBs of a picture
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
common functions for use with the Xvid wrappers
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
int qmax
maximum quantizer
int rc_max_rate
maximum bitrate
void av_log(void *avcl, int level, const char *fmt,...)
int ff_xvid_rate_control_init(MpegEncContext *s)
int rc_buffer_size
decoder bitstream buffer size
float dry_run_qscale
for xvid rc
int bit_rate
the average bitrate
static av_always_inline av_const long int lrintf(float x)
void ff_xvid_rate_control_uninit(MpegEncContext *s)
int ff_tempfile(const char *prefix, char **filename)
static void close(AVCodecParserContext *s)
int qmin
minimum quantizer
int height
picture size. must be a multiple of 16
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
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)
#define FF_QP2LAMBDA
factor to convert from H.263 QP to lambda
float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run)