comparison libmpcodecs/ve_x264.c @ 13325:f26d2c9aec04

2pass encoding support for x264(r46). patch by Loren Merritt and Jeff Clagg
author iive
date Sun, 12 Sep 2004 15:36:43 +0000
parents d198f255bee9
children 04f7b5e75785
comparison
equal deleted inserted replaced
13324:dcbdd8ea356d 13325:f26d2c9aec04
131 mod->param.b_deblocking_filter = deblock; 131 mod->param.b_deblocking_filter = deblock;
132 mod->param.i_deblocking_filter_alphac0 = deblockalpha; 132 mod->param.i_deblocking_filter_alphac0 = deblockalpha;
133 mod->param.i_deblocking_filter_beta = deblockbeta; 133 mod->param.i_deblocking_filter_beta = deblockbeta;
134 mod->param.b_cabac = cabac; 134 mod->param.b_cabac = cabac;
135 mod->param.i_cabac_init_idc = cabacidc; 135 mod->param.i_cabac_init_idc = cabacidc;
136 mod->param.i_qp_constant = qp_constant; 136
137 mod->param.rc.i_qp_constant = qp_constant;
137 if(qp_min > qp_constant) 138 if(qp_min > qp_constant)
138 qp_min = qp_constant; 139 qp_min = qp_constant;
139 if(qp_max < qp_constant) 140 if(qp_max < qp_constant)
140 qp_max = qp_constant; 141 qp_max = qp_constant;
141 mod->param.i_qp_min = qp_min; 142 mod->param.rc.i_qp_min = qp_min;
142 mod->param.i_qp_max = qp_max; 143 mod->param.rc.i_qp_max = qp_max;
143 mod->param.i_qp_step = qp_step; 144 mod->param.rc.i_qp_step = qp_step;
144 #if 0 145 mod->param.rc.psz_rc_eq = rc_eq;
145 mod->param.i_pass = pass; 146 mod->param.rc.f_qcompress = qcomp;
146 mod->param.s_rc_eq = rc_eq; 147 mod->param.rc.f_qblur = qblur;
147 mod->param.f_qcompress = qcomp; 148 mod->param.rc.psz_stat_out = passtmpfile;
148 mod->param.f_qblur = qblur; 149 mod->param.rc.psz_stat_in = passtmpfile;
149 mod->param.s_2pass_file_out = passtmpfile;
150 mod->param.s_2pass_file_in = passtmpfile;
151 if((pass & 2) && bitrate <= 0) 150 if((pass & 2) && bitrate <= 0)
152 { 151 {
153 mp_msg(MSGT_MENCODER, MSGL_ERR, 152 mp_msg(MSGT_MENCODER, MSGL_ERR,
154 "2 pass encoding enabled, but no bitrate specified.\n"); 153 "2 pass encoding enabled, but no bitrate specified.\n");
155 return 0; 154 return 0;
156 } 155 }
157 #endif 156 switch(pass) {
157 case 0:
158 mod->param.rc.b_stat_write = 0;
159 mod->param.rc.b_stat_read = 0;
160 break;
161 case 1:
162 mod->param.rc.b_stat_write = 1;
163 mod->param.rc.b_stat_read = 0;
164 break;
165 case 2:
166 mod->param.rc.b_stat_write = 0;
167 mod->param.rc.b_stat_read = 1;
168 break;
169 }
158 if(bitrate > 0) { 170 if(bitrate > 0) {
159 if(rc_buffer_size <= 0) 171 if(rc_buffer_size <= 0)
160 rc_buffer_size = bitrate; 172 rc_buffer_size = bitrate;
161 if(rc_init_buffer < 0) 173 if(rc_init_buffer < 0)
162 rc_init_buffer = rc_buffer_size/4; 174 rc_init_buffer = rc_buffer_size/4;
163 mod->param.b_cbr = 1; 175 mod->param.rc.b_cbr = 1;
164 mod->param.i_bitrate = bitrate; 176 mod->param.rc.i_bitrate = bitrate;
165 mod->param.i_rc_buffer_size = rc_buffer_size; 177 mod->param.rc.i_rc_buffer_size = rc_buffer_size;
166 mod->param.i_rc_init_buffer = rc_init_buffer; 178 mod->param.rc.i_rc_init_buffer = rc_init_buffer;
167 mod->param.i_rc_sens = rc_sens; 179 mod->param.rc.i_rc_sens = rc_sens;
168 } 180 }
169 if(fullinter) 181 if(fullinter)
170 mod->param.analyse.inter = X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_PSUB8x8; 182 mod->param.analyse.inter = X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_PSUB8x8;
171 mod->param.f_ip_factor = ip_factor; 183 mod->param.rc.f_ip_factor = ip_factor;
172 mod->param.f_pb_factor = pb_factor; 184 mod->param.rc.f_pb_factor = pb_factor;
173 185
174 mod->param.i_width = width; 186 mod->param.i_width = width;
175 mod->param.i_height = height; 187 mod->param.i_height = height;
176 mod->param.i_fps_num = mod->mux->h.dwRate; 188 mod->param.i_fps_num = mod->mux->h.dwRate;
177 mod->param.i_fps_den = mod->mux->h.dwScale; 189 mod->param.i_fps_den = mod->mux->h.dwScale;