~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/libavcodec/ratecontrol.c

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2012-01-12 22:23:28 UTC
  • mfrom: (0.4.7 sid)
  • mto: This revision was merged to the branch mainline in revision 76.
  • Revision ID: package-import@ubuntu.com-20120112222328-8jqdyodym3p84ygu
Tags: 2:1.0~rc4.dfsg1+svn34540-1
* New upstream snapshot
* upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
 
45
45
void ff_write_pass1_stats(MpegEncContext *s){
46
46
    snprintf(s->avctx->stats_out, 256, "in:%d out:%d type:%d q:%d itex:%d ptex:%d mv:%d misc:%d fcode:%d bcode:%d mc-var:%d var:%d icount:%d skipcount:%d hbits:%d;\n",
47
 
            s->current_picture_ptr->display_picture_number, s->current_picture_ptr->coded_picture_number, s->pict_type,
48
 
            s->current_picture.quality, s->i_tex_bits, s->p_tex_bits, s->mv_bits, s->misc_bits,
49
 
            s->f_code, s->b_code, s->current_picture.mc_mb_var_sum, s->current_picture.mb_var_sum, s->i_count, s->skip_count, s->header_bits);
 
47
             s->current_picture_ptr->f.display_picture_number, s->current_picture_ptr->f.coded_picture_number, s->pict_type,
 
48
             s->current_picture.f.quality, s->i_tex_bits, s->p_tex_bits, s->mv_bits, s->misc_bits,
 
49
             s->f_code, s->b_code, s->current_picture.mc_mb_var_sum, s->current_picture.mb_var_sum, s->i_count, s->skip_count, s->header_bits);
50
50
}
51
51
 
52
52
static inline double qp2bits(RateControlEntry *rce, double qp){
300
300
}
301
301
 
302
302
/**
303
 
 * modifies the bitrate curve from pass1 for one frame
 
303
 * Modify the bitrate curve from pass1 for one frame.
304
304
 */
305
305
static double get_qscale(MpegEncContext *s, RateControlEntry *rce, double rate_factor, int frame_num){
306
306
    RateControlContext *rcc= &s->rc_context;
404
404
}
405
405
 
406
406
/**
407
 
 * gets the qmin & qmax for pict_type
 
407
 * Get the qmin & qmax for pict_type.
408
408
 */
409
409
static void get_qminmax(int *qmin_ret, int *qmax_ret, MpegEncContext *s, int pict_type){
410
410
    int qmin= s->avctx->lmin;
707
707
//if(dts_pic)
708
708
//            av_log(NULL, AV_LOG_ERROR, "%Ld %Ld %Ld %d\n", s->current_picture_ptr->pts, s->user_specified_pts, dts_pic->pts, picture_number);
709
709
 
710
 
        if(!dts_pic || dts_pic->pts == AV_NOPTS_VALUE)
 
710
        if (!dts_pic || dts_pic->f.pts == AV_NOPTS_VALUE)
711
711
            wanted_bits= (uint64_t)(s->bit_rate*(double)picture_number/fps);
712
712
        else
713
 
            wanted_bits= (uint64_t)(s->bit_rate*(double)dts_pic->pts/fps);
 
713
            wanted_bits = (uint64_t)(s->bit_rate*(double)dts_pic->f.pts / fps);
714
714
    }
715
715
 
716
716
    diff= s->total_bits - wanted_bits;
861
861
 
862
862
        /* find qscale */
863
863
        for(i=0; i<rcc->num_entries; i++){
 
864
            RateControlEntry *rce= &rcc->entry[i];
864
865
            qscale[i]= get_qscale(s, &rcc->entry[i], rate_factor, i);
 
866
            rcc->last_qscale_for[rce->pict_type] = qscale[i];
865
867
        }
866
868
        assert(filter_size%2==1);
867
869