Changeset 3129

Show
Ignore:
Timestamp:
02/05/00 16:39:12 (14 years ago)
Author:
ucacoxh
Message:

- Fix participant muting, we changed where muting occurs a while back to be

after source_create so source stats are maintained even though we are not
listening. Need to destroy source at begining of mute period to flush
audio in playout buffer and also when unmuting to ignore source some
playout stats (e.g. last_played, cause else it wants to repair whole of
muting period :-).

Location:
rat/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • rat/trunk/MODS

    r3126 r3129  
    10731073        - Add filter on rtt values to avoid displaying garbage values from rtp 
    10741074          misimplementations. 
     1075        - Fix participant muting (reported by Bob Olson). 
    10751076 
    10761077TODO -- They're features not bugs dammit! 
  • rat/trunk/mbus_engine.c

    r3124 r3129  
    719719                uint32_t my_ssrc = rtp_my_ssrc(sp->rtp_session[0]); 
    720720                ss = mbus_decode_str(ss); 
    721                 if (isalpha(ss[0])) { 
     721                if (isalpha((int)ss[0])) { 
    722722                        /* 
    723723                         * Allow alpha so people can do my_src, me, 
     
    806806                ssrc = mbus_decode_str(ssrc); 
    807807                if (pdb_item_get(sp->pdb, strtoul(ssrc, 0, 16), &pdbe)) { 
     808                        struct s_source *s; 
     809                        s = source_get_by_ssrc(sp->active_sources, pdbe->ssrc); 
    808810                        pdbe->mute = i; 
     811                        debug_msg("mute ssrc 0x%08x (%d)\n", pdbe->ssrc, i); 
     812                        /* 
     813                         * Sources are active whilst packets are 
     814                         * arriving and maintaining statistics on 
     815                         * sender.  This is good, but we need to 
     816                         * remove source when changing mute state, if 
     817                         * packets are still arriving source will be 
     818                         * recreated when next packet arrives.  When 
     819                         * muting we want to remove source to stop 
     820                         * audio already buffered from playing.  When 
     821                         * unmuting want to remove source to 
     822                         * initialize state, particularly timestamps 
     823                         * of last repair etc.   
     824                         */ 
     825                        if (s != NULL) { 
     826                                source_remove(sp->active_sources, s); 
     827                        } 
    809828                        ui_info_mute(sp, pdbe->ssrc); 
    810829                } else { 
  • rat/trunk/source.c

    r3086 r3129  
    13821382        source_validate(src); 
    13831383        source_process_packets(sp, src, start_ts); 
     1384        if (src->packets_done == 0) { 
     1385                return; 
     1386        } 
    13841387        source_validate(src); 
    13851388