Mercurial > libavcodec.hg
comparison snow.c @ 3766:acf9ca729bd2 libavcodec
Handle possible failure of ff_eval.
author | takis |
---|---|
date | Tue, 26 Sep 2006 14:04:36 +0000 |
parents | fc714e9a5419 |
children | 3a151ccc6ed7 |
comparison
equal
deleted
inserted
replaced
3765:c38b14835b62 | 3766:acf9ca729bd2 |
---|---|
3873 s->m.current_picture.mc_mb_var_sum= coef_sum; | 3873 s->m.current_picture.mc_mb_var_sum= coef_sum; |
3874 s->m.current_picture.mb_var_sum= 0; | 3874 s->m.current_picture.mb_var_sum= 0; |
3875 } | 3875 } |
3876 | 3876 |
3877 pict->quality= ff_rate_estimate_qscale(&s->m, 1); | 3877 pict->quality= ff_rate_estimate_qscale(&s->m, 1); |
3878 if (pict->quality < 0) | |
3879 return -1; | |
3878 s->lambda= pict->quality * 3/2; | 3880 s->lambda= pict->quality * 3/2; |
3879 delta_qlog= qscale2qlog(pict->quality) - s->qlog; | 3881 delta_qlog= qscale2qlog(pict->quality) - s->qlog; |
3880 s->qlog+= delta_qlog; | 3882 s->qlog+= delta_qlog; |
3881 return delta_qlog; | 3883 return delta_qlog; |
3882 } | 3884 } |
4058 s->m.picture_number= avctx->frame_number; | 4060 s->m.picture_number= avctx->frame_number; |
4059 if(avctx->flags&CODEC_FLAG_PASS2){ | 4061 if(avctx->flags&CODEC_FLAG_PASS2){ |
4060 s->m.pict_type = | 4062 s->m.pict_type = |
4061 pict->pict_type= s->m.rc_context.entry[avctx->frame_number].new_pict_type; | 4063 pict->pict_type= s->m.rc_context.entry[avctx->frame_number].new_pict_type; |
4062 s->keyframe= pict->pict_type==FF_I_TYPE; | 4064 s->keyframe= pict->pict_type==FF_I_TYPE; |
4063 if(!(avctx->flags&CODEC_FLAG_QSCALE)) | 4065 if(!(avctx->flags&CODEC_FLAG_QSCALE)) { |
4064 pict->quality= ff_rate_estimate_qscale(&s->m, 0); | 4066 pict->quality= ff_rate_estimate_qscale(&s->m, 0); |
4067 if (pict->quality < 0) | |
4068 return -1; | |
4069 } | |
4065 }else{ | 4070 }else{ |
4066 s->keyframe= avctx->gop_size==0 || avctx->frame_number % avctx->gop_size == 0; | 4071 s->keyframe= avctx->gop_size==0 || avctx->frame_number % avctx->gop_size == 0; |
4067 s->m.pict_type= | 4072 s->m.pict_type= |
4068 pict->pict_type= s->keyframe ? FF_I_TYPE : FF_P_TYPE; | 4073 pict->pict_type= s->keyframe ? FF_I_TYPE : FF_P_TYPE; |
4069 } | 4074 } |
4179 | 4184 |
4180 ff_spatial_dwt(s->spatial_dwt_buffer, w, h, w, s->spatial_decomposition_type, s->spatial_decomposition_count); | 4185 ff_spatial_dwt(s->spatial_dwt_buffer, w, h, w, s->spatial_decomposition_type, s->spatial_decomposition_count); |
4181 | 4186 |
4182 if(s->pass1_rc && plane_index==0){ | 4187 if(s->pass1_rc && plane_index==0){ |
4183 int delta_qlog = ratecontrol_1pass(s, pict); | 4188 int delta_qlog = ratecontrol_1pass(s, pict); |
4189 if (delta_qlog < 0) | |
4190 return -1; | |
4184 if(delta_qlog){ | 4191 if(delta_qlog){ |
4185 //reordering qlog in the bitstream would eliminate this reset | 4192 //reordering qlog in the bitstream would eliminate this reset |
4186 ff_init_range_encoder(c, buf, buf_size); | 4193 ff_init_range_encoder(c, buf, buf_size); |
4187 memcpy(s->header_state, rc_header_bak, sizeof(s->header_state)); | 4194 memcpy(s->header_state, rc_header_bak, sizeof(s->header_state)); |
4188 memcpy(s->block_state, rc_block_bak, sizeof(s->block_state)); | 4195 memcpy(s->block_state, rc_block_bak, sizeof(s->block_state)); |
4265 s->m.current_picture.display_picture_number = | 4272 s->m.current_picture.display_picture_number = |
4266 s->m.current_picture.coded_picture_number = avctx->frame_number; | 4273 s->m.current_picture.coded_picture_number = avctx->frame_number; |
4267 s->m.current_picture.quality = pict->quality; | 4274 s->m.current_picture.quality = pict->quality; |
4268 s->m.total_bits += 8*(s->c.bytestream - s->c.bytestream_start); | 4275 s->m.total_bits += 8*(s->c.bytestream - s->c.bytestream_start); |
4269 if(s->pass1_rc) | 4276 if(s->pass1_rc) |
4270 ff_rate_estimate_qscale(&s->m, 0); | 4277 if (ff_rate_estimate_qscale(&s->m, 0) < 0) |
4278 return -1; | |
4271 if(avctx->flags&CODEC_FLAG_PASS1) | 4279 if(avctx->flags&CODEC_FLAG_PASS1) |
4272 ff_write_pass1_stats(&s->m); | 4280 ff_write_pass1_stats(&s->m); |
4273 s->m.last_pict_type = s->m.pict_type; | 4281 s->m.last_pict_type = s->m.pict_type; |
4274 | 4282 |
4275 emms_c(); | 4283 emms_c(); |