Mercurial > mplayer.hg
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; |