brhist.c
资源名称:NETVIDEO.rar [点击查看]
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- #ifdef BRHIST
- #include <string.h>
- #include "brhist.h"
- #include "util.h"
- #include <termcap.h>
- #define BRHIST_BARMAX 50
- int disp_brhist = 1;
- long brhist_count[15];
- long brhist_temp[15];
- int brhist_vbrmin;
- int brhist_vbrmax;
- long brhist_max;
- char brhist_bps[15][5];
- char brhist_backcur[200];
- char brhist_bar[BRHIST_BARMAX+10];
- char brhist_spc[BRHIST_BARMAX+1];
- char stderr_buff[BUFSIZ];
- void brhist_init(lame_global_flags *gfp,int br_min, int br_max)
- {
- int i;
- char term_buff[1024];
- char *termname;
- char *tp;
- char tc[10];
- for(i = 0; i < 15; i++)
- {
- sprintf(brhist_bps[i], "%3d:", bitrate_table[gfp->version][i]);
- brhist_count[i] = 0;
- brhist_temp[i] = 0;
- }
- brhist_vbrmin = br_min;
- brhist_vbrmax = br_max;
- brhist_max = 0;
- memset(&brhist_bar[0], '*', BRHIST_BARMAX);
- brhist_bar[BRHIST_BARMAX] = ' ';
- memset(&brhist_spc[0], ' ', BRHIST_BARMAX);
- brhist_spc[BRHIST_BARMAX] = ' ';
- brhist_backcur[0] = ' ';
- if ((termname = getenv("TERM")) == NULL)
- {
- fprintf(stderr, "can't get TERM environment string.n");
- disp_brhist = 0;
- return;
- }
- if (tgetent(term_buff, termname) != 1)
- {
- fprintf(stderr, "can't find termcap entry: %sn", termname);
- disp_brhist = 0;
- return;
- }
- tc[0] = ' ';
- tp = &tc[0];
- tp=tgetstr("up", &tp);
- brhist_backcur[0] = ' ';
- for(i = br_min-1; i <= br_max; i++)
- strcat(brhist_backcur, tp);
- setbuf(stderr, stderr_buff);
- }
- void brhist_add_count(void)
- {
- int i;
- for(i = brhist_vbrmin; i <= brhist_vbrmax; i++)
- {
- brhist_count[i] += brhist_temp[i];
- if (brhist_count[i] > brhist_max)
- brhist_max = brhist_count[i];
- brhist_temp[i] = 0;
- }
- }
- void brhist_disp(void)
- {
- int i;
- long full;
- int barlen;
- full = (brhist_max < BRHIST_BARMAX) ? BRHIST_BARMAX : brhist_max;
- fputc('n', stderr);
- for(i = brhist_vbrmin; i <= brhist_vbrmax; i++)
- {
- barlen = (brhist_count[i]*BRHIST_BARMAX+full-1) / full;
- fputs(brhist_bps[i], stderr);
- fputs(&brhist_bar[BRHIST_BARMAX - barlen], stderr);
- fputs(&brhist_spc[barlen], stderr);
- fputc('n', stderr);
- }
- fputs(brhist_backcur, stderr);
- fflush(stderr);
- }
- void brhist_disp_total(lame_global_flags *gfp)
- {
- int i;
- FLOAT ave;
- for(i = brhist_vbrmin; i <= brhist_vbrmax; i++)
- fputc('n', stderr);
- ave=0;
- for(i = brhist_vbrmin; i <= brhist_vbrmax; i++)
- ave += bitrate_table[gfp->version][i]*
- (FLOAT)brhist_count[i] / gfp->totalframes;
- fprintf(stderr, "naverage: %2.0f kbsn",ave);
- #if 0
- fprintf(stderr, "----- bitrate statistics -----n");
- fprintf(stderr, " [kbps] framesn");
- for(i = brhist_vbrmin; i <= brhist_vbrmax; i++)
- {
- fprintf(stderr, " %3d %8ld (%.1f%%)n",
- bitrate_table[gfp->version][i],
- brhist_count[i],
- (FLOAT)brhist_count[i] / gfp->totalframes * 100.0);
- }
- #endif
- fflush(stderr);
- }
- #endif /* BRHIST */