Changeset 2934

Show
Ignore:
Timestamp:
11/16/99 17:20:56 (14 years ago)
Author:
ucacoxh
Message:

- Added bps to ui and update messages.

Location:
rat/trunk
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • rat/trunk/MODS

    r2919 r2934  
    943943        - Playout recalc trigger when jitter > playout. 
    944944        - Device reconfig no longer resets ports if device unchanged. 
     945        - Shuffled front panel.  Added bps field. 
    945946 
    946947TODO -- They're features not bugs dammit! 
  • rat/trunk/main_engine.c

    r2914 r2934  
    272272                } 
    273273 
    274                 if (sp->audio_device) { 
    275                         ui_update_powermeters(sp, sp->ms, elapsed_time); 
     274                if (sp->audio_device && elapsed_time != 0) { 
     275                        ui_periodic_updates(sp, elapsed_time); 
    276276                } 
    277277                if (sp->new_config != NULL) { 
  • rat/trunk/source.c

    r2930 r2934  
    718718                e->last_ts  = p->ts; 
    719719                e->last_arr = sp->cur_ts; 
     720/* 
     721                debug_msg("src_ts % 8u playout % 8u buffered % 8u\n", 
     722                          p->ts, ts_to_us(source_get_playout_delay(src)), ts_to_us(source_get_audio_buffered(src))); 
     723                          */ 
    720724                src->packets_done++; 
    721725                xfree(p); 
  • rat/trunk/transmit.c

    r2900 r2934  
    7676        sample samples[DEVICE_REC_BUF]; 
    7777        int    last_sample; /* Stores the index of the last read buffer */ 
     78 
     79        /* bandwidth estimate parameters */ 
     80        int    bps_bytes_sent; 
     81        ts_t   bps_last_update; 
    7882} tx_buffer; 
    7983 
     
    216220                ui_info_activate(tb->sp, rtp_my_ssrc(tb->sp->rtp_session[0])); 
    217221        } 
     222 
     223        tb->bps_last_update = tb->sp->cur_ts; 
    218224} 
    219225 
     
    245251        pb_flush(tb->media_buffer); 
    246252        pb_flush(tb->channel_buffer); 
     253 
     254        tb->bps_bytes_sent = 0; 
    247255} 
    248256 
     
    317325 
    318326        assert(read_dur < 0x7fffffff); 
    319  
     327         
    320328        return read_dur; 
    321329} 
     
    568576                        rtp_send_data(sp->rtp_session[j], time_32, pt, marker, 0, csrc, data, data_len, NULL, 0); 
    569577                        block_free(data, data_len); 
     578                        tb->bps_bytes_sent += data_len; 
    570579                } 
    571580                /* layer loop ends here */ 
     
    657666        return tb->sending_audio; 
    658667} 
     668 
     669double 
     670tx_get_bps(tx_buffer *tb) 
     671{ 
     672        if (tb->bps_bytes_sent == 0) { 
     673                return 0.0; 
     674        } else { 
     675                u_int32 dms; 
     676                double  bps; 
     677                ts_t delta = ts_abs_diff(tb->bps_last_update, tb->sp->cur_ts); 
     678                dms        = ts_to_us(delta); 
     679                bps        = tb->bps_bytes_sent * 8e6 / (double)dms; 
     680                tb->bps_bytes_sent  = 0; 
     681                tb->bps_last_update = tb->sp->cur_ts; 
     682                return bps; 
     683        } 
     684} 
  • rat/trunk/transmit.h

    r2721 r2934  
    3232void  tx_stop        (struct s_tx_buffer  *tb); 
    3333 
    34 int    
    35       tx_is_sending  (struct s_tx_buffer  *tb); 
    36  
     34int   tx_is_sending  (struct s_tx_buffer  *tb); 
    3735int   tx_read_audio    (struct s_tx_buffer *tb); 
    3836int   tx_process_audio (struct s_tx_buffer *tb); 
     
    4139void  tx_igain_update  (struct s_tx_buffer *tb); 
    4240 
     41double tx_get_bps      (struct s_tx_buffer *tb); 
     42 
    4343#endif /* _transmit_h_ */ 
  • rat/trunk/ui.c

    r2932 r2934  
    730730} 
    731731 
    732 void 
    733 ui_update_powermeters(session_t *sp, struct s_mix_info *ms, int elapsed_time) 
    734 { 
    735         static u_int32 power_time = 0; 
    736  
    737         if (power_time > sp->meter_period) { 
    738                 if (sp->meter && (ms != NULL)) { 
    739                         mix_update_ui(sp, ms); 
    740                 } 
    741                 if (tx_is_sending(sp->tb)) { 
    742                         tx_update_ui(sp->tb); 
    743                 } 
    744                 power_time = 0; 
    745         } else { 
    746                 power_time += elapsed_time; 
    747         } 
     732static void 
     733ui_update_powermeters(session_t *sp, struct s_mix_info *ms) 
     734{ 
     735        if (sp->meter && (ms != NULL)) { 
     736                mix_update_ui(sp, ms); 
     737        } 
     738        if (tx_is_sending(sp->tb)) { 
     739                tx_update_ui(sp->tb); 
     740        } 
     741} 
     742 
     743static void 
     744ui_update_bps(session_t *sp) 
     745{ 
     746        double inbps = 0.0, outbps = 0.0; 
     747        u_int32 scnt, sidx; 
     748        struct s_source *s; 
     749         
     750        scnt = source_list_source_count(sp->active_sources); 
     751        for(sidx = 0; sidx < scnt; sidx++) { 
     752                s = source_list_get_source_no(sp->active_sources, sidx); 
     753                inbps += source_get_bps(s); 
     754        } 
     755        mbus_qmsgf(sp->mbus_engine, sp->mbus_ui_addr, FALSE, "tool.rat.bps.in", "%.0f", inbps);         
     756 
     757        outbps = tx_get_bps(sp->tb); 
     758        mbus_qmsgf(sp->mbus_engine, sp->mbus_ui_addr, FALSE, "tool.rat.bps.out", "%.0f", outbps);         
     759} 
     760 
     761void 
     762ui_periodic_updates(session_t *sp, int elapsed_time)  
     763{ 
     764        static u_int32 power_time = 0; 
     765        static u_int32 bps_time   = 0; 
     766 
     767        bps_time   += elapsed_time; 
     768        if (bps_time > 10 * sp->meter_period) { 
     769                ui_update_bps(sp); 
     770                bps_time = 0; 
     771        } 
     772 
     773        power_time += elapsed_time; 
     774        if (power_time > sp->meter_period) { 
     775                ui_update_powermeters(sp, sp->ms); 
     776                power_time = 0; 
     777        } 
    748778} 
    749779 
  • rat/trunk/ui.h

    r2932 r2934  
    4444void ui_update_converter     (struct s_session *sp); 
    4545void ui_update_repair        (struct s_session *sp); 
    46 void ui_update_powermeters   (struct s_session *sp, struct s_mix_info *ms, int elapsed_time); 
     46void ui_periodic_updates     (struct s_session *sp, int elapsed_time); 
    4747void ui_update_stats         (struct s_session *s, u_int32 ssrc); 
    4848 
  • rat/trunk/ui_audiotool.tcl

    r2933 r2934  
    4646set iports             [list] 
    4747set oports             [list] 
     48set bps_in              "0.0 b/s" 
     49set bps_out             $bps_in 
    4850 
    4951# Sliders use scale widget and this invokes it's -command option when 
     
    255257                tool.rat.echo.suppress          {eval mbus_recv_tool.rat.echo.suppress $args} 
    256258                tool.rat.loopback               {eval mbus_recv_tool.rat.loopback      $args} 
     259                tool.rat.bps.in                 {eval mbus_recv_tool.rat.bps.in        $args} 
     260                tool.rat.bps.out                {eval mbus_recv_tool.rat.bps.out       $args} 
    257261                audio.suppress.silence          {eval mbus_recv_audio.suppress.silence $args} 
    258262                audio.channel.coding            {eval mbus_recv_audio.channel.coding $args} 
     
    10561060} 
    10571061 
     1062proc format_bps {bps} { 
     1063    if {$bps < 999} { 
     1064        set s "b/s" 
     1065    } elseif {$bps < 999999} { 
     1066        set s "kb/s" 
     1067        set bps [expr $bps / 1000.0] 
     1068    } else { 
     1069        set s "Mb/s" 
     1070        set bps [expr $bps / 1000000.0] 
     1071    } 
     1072    return [format "%.1f %s" $bps $s] 
     1073} 
     1074 
     1075proc mbus_recv_tool.rat.bps.in {bps} { 
     1076    global bps_in 
     1077    set    bps_in [format_bps $bps] 
     1078} 
     1079 
     1080proc mbus_recv_tool.rat.bps.out {bps} { 
     1081    global bps_out 
     1082    set    bps_out [format_bps $bps] 
     1083} 
     1084 
    10581085proc mbus_recv_mbus.quit {} { 
    10591086        destroy . 
     
    11391166 
    11401167# Colors 
    1141 set bargraphLitColors [list #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #2ccf00 #58d200 #84d500 #b0d800 #dddd00 #ddb000 #dd8300 #dd5600 #dd2900] 
    1142  
    1143 set bargraphUnlitColors [list #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #166700 #2c6900 #426a00 #586c00 #6e6e00 #6e5800 #6e4100 #6e2b00 #6e1400] 
     1168set bargraphLitColors [list #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #00cc00 #2ccf00 #58d200 #84d500 #b0d800 #dddd00 #ddb000 #dd8300 #dd5600 #dd2900] 
     1169 
     1170set bargraphUnlitColors [list #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #006600 #166700 #2c6900 #426a00 #586c00 #6e6e00 #6e5800 #6e4100 #6e2b00 #6e1400] 
    11441171set bargraphTotalHeight [llength $bargraphLitColors] 
    11451172 
     
    14741501pack .r.c.rx.au -side bottom -expand 1 -fill both 
    14751502 
    1476 checkbutton .r.c.rx.net.on -highlightthickness 0 -text "Listen" -onvalue 0 -offvalue 1 -variable out_mute_var -command {output_mute $out_mute_var} -font $compfont -width 6 -anchor w -padx 4 
    1477 label       .r.c.rx.net.bw -text "0.0 kb/s" -width 8 -font $compfont -anchor e 
    1478 pack .r.c.rx.net.on -side left -fill x -expand 1 
     1503checkbutton .r.c.rx.net.on -highlightthickness 0 -text "Listen" -onvalue 0 -offvalue 1 -variable out_mute_var -command {output_mute $out_mute_var} -font $compfont -width 5 -anchor w -padx 4 
     1504label       .r.c.rx.net.bw -textv bps_in -font $compfont -anchor e 
     1505pack .r.c.rx.net.on -side left  
    14791506pack .r.c.rx.net.bw -side right -fill x -expand 1 
    14801507 
     
    15021529pack .r.c.tx.au -side bottom -expand 1 -fill both 
    15031530 
    1504 checkbutton .r.c.tx.net.on -highlightthickness 0 -text "Talk" -onvalue 0 -offvalue 1 -variable in_mute_var -command {input_mute $in_mute_var} -font $compfont -width 6 -anchor w -padx 4 
    1505 label       .r.c.tx.net.bw -text "0.0 kb/s" -width 8 -font $compfont -anchor e 
    1506 pack .r.c.tx.net.on -side left -fill x -expand 1 
     1531checkbutton .r.c.tx.net.on -highlightthickness 0 -text "Talk" -onvalue 0 -offvalue 1 -variable in_mute_var -command {input_mute $in_mute_var} -font $compfont -width 5 -anchor w -padx 4 
     1532label       .r.c.tx.net.bw -textv bps_out -font $compfont -anchor e 
     1533pack .r.c.tx.net.on -side left  
    15071534pack .r.c.tx.net.bw -side right -fill x -expand 1 
    15081535