comparison mpegvideo.c @ 1801:3f26dfb3eba4 libavcodec

replace a few pbBufPtr() by put_bits_count(), one of them was actually wrong
author michael
date Fri, 13 Feb 2004 20:59:48 +0000
parents 95612d423fde
children e91dbb5b1a8d
comparison
equal deleted inserted replaced
1800:e039d79185c2 1801:3f26dfb3eba4
2039 for(i=0; i<4; i++){ 2039 for(i=0; i<4; i++){
2040 avctx->error[i] += s->current_picture_ptr->error[i]; 2040 avctx->error[i] += s->current_picture_ptr->error[i];
2041 } 2041 }
2042 2042
2043 flush_put_bits(&s->pb); 2043 flush_put_bits(&s->pb);
2044 s->frame_bits = (pbBufPtr(&s->pb) - s->pb.buf) * 8; 2044 s->frame_bits = put_bits_count(&s->pb);
2045 2045
2046 stuffing_count= ff_vbv_update(s, s->frame_bits); 2046 stuffing_count= ff_vbv_update(s, s->frame_bits);
2047 if(stuffing_count){ 2047 if(stuffing_count){
2048 switch(s->codec_id){ 2048 switch(s->codec_id){
2049 case CODEC_ID_MPEG1VIDEO: 2049 case CODEC_ID_MPEG1VIDEO:
2062 break; 2062 break;
2063 default: 2063 default:
2064 av_log(s->avctx, AV_LOG_ERROR, "vbv buffer overflow\n"); 2064 av_log(s->avctx, AV_LOG_ERROR, "vbv buffer overflow\n");
2065 } 2065 }
2066 flush_put_bits(&s->pb); 2066 flush_put_bits(&s->pb);
2067 s->frame_bits = (pbBufPtr(&s->pb) - s->pb.buf) * 8; 2067 s->frame_bits = put_bits_count(&s->pb);
2068 } 2068 }
2069 2069
2070 /* update mpeg1/2 vbv_delay for CBR */ 2070 /* update mpeg1/2 vbv_delay for CBR */
2071 if(s->avctx->rc_max_rate && s->avctx->rc_min_rate == s->avctx->rc_max_rate){ 2071 if(s->avctx->rc_max_rate && s->avctx->rc_min_rate == s->avctx->rc_max_rate){
2072 int vbv_delay; 2072 int vbv_delay;
4038 /* write gob / video packet header */ 4038 /* write gob / video packet header */
4039 #ifdef CONFIG_RISKY 4039 #ifdef CONFIG_RISKY
4040 if(s->rtp_mode){ 4040 if(s->rtp_mode){
4041 int current_packet_size, is_gob_start; 4041 int current_packet_size, is_gob_start;
4042 4042
4043 current_packet_size= pbBufPtr(&s->pb) - s->ptr_lastgob; //FIXME wrong 4043 current_packet_size= ((put_bits_count(&s->pb)+7)>>3) - (s->ptr_lastgob - s->pb.buf);
4044 4044
4045 is_gob_start= s->avctx->rtp_payload_size && current_packet_size >= s->avctx->rtp_payload_size && mb_y + mb_x>0; 4045 is_gob_start= s->avctx->rtp_payload_size && current_packet_size >= s->avctx->rtp_payload_size && mb_y + mb_x>0;
4046 4046
4047 if(s->start_mb_y == mb_y && mb_y > 0 && mb_x==0) is_gob_start=1; 4047 if(s->start_mb_y == mb_y && mb_y > 0 && mb_x==0) is_gob_start=1;
4048 4048