Re: [AVTCORE] Source switching performance in draft-hellstrom-avtcore-multi-party-rtt-source-01.txt
Gunnar Hellström <gunnar.hellstrom@omnitor.se> Tue, 17 March 2020 10:54 UTC
Return-Path: <gunnar.hellstrom@omnitor.se>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83C513A1CE2 for <avt@ietfa.amsl.com>; Tue, 17 Mar 2020 03:54:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.118
X-Spam-Level:
X-Spam-Status: No, score=-1.118 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h6jvnQpmiRZA for <avt@ietfa.amsl.com>; Tue, 17 Mar 2020 03:54:39 -0700 (PDT)
Received: from vsp-unauthed02.binero.net (vsp-unauthed02.binero.net [195.74.38.227]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1B9523A1CD6 for <avtcore@ietf.org>; Tue, 17 Mar 2020 03:54:38 -0700 (PDT)
X-Halon-ID: 9ede7763-683d-11ea-aa6d-005056917f90
Authorized-sender: gunnar.hellstrom@omnitor.se
Received: from [192.168.2.136] (h77-53-230-59.cust.a3fiber.se [77.53.230.59]) by bin-vsp-out-02.atm.binero.net (Halon) with ESMTPSA id 9ede7763-683d-11ea-aa6d-005056917f90; Tue, 17 Mar 2020 11:54:21 +0100 (CET)
From: Gunnar Hellström <gunnar.hellstrom@omnitor.se>
To: James Hamlin <james.hamlin@purple.us>, "avtcore@ietf.org" <avtcore@ietf.org>
References: <158300358958.4740.11384667574242789327@ietfa.amsl.com> <910582c0-dcb5-eea4-2075-eef6085750f4@omnitor.se> <1584146721401.88908@purple.us> <61971f62-cff3-6fcb-1035-341e1244d255@omnitor.se> <1584360674813.99071@purple.us> <3a8a924a-8e36-6015-dee0-5951457dd39f@omnitor.se>
Message-ID: <3c4f8c5a-20c0-4ece-ab90-4d2099cc0b22@omnitor.se>
Date: Tue, 17 Mar 2020 11:54:15 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0
MIME-Version: 1.0
In-Reply-To: <3a8a924a-8e36-6015-dee0-5951457dd39f@omnitor.se>
Content-Type: multipart/alternative; boundary="------------1FC9B3021F008D1132181D28"
Content-Language: sv
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/5MmtMujnQ15EB2WIJ8bFJwV4c1U>
Subject: Re: [AVTCORE] Source switching performance in draft-hellstrom-avtcore-multi-party-rtt-source-01.txt
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Mar 2020 10:55:01 -0000
Hi, Since this thread was initially about the source switching performance of different mixing method, I should try to express the source switching performance also for the method for the multi-party-unaware terminals described in Appendix A of draft-hellstrom-mmusic-multi-party-rtt The switching performance cannot be expressed in seconds delay or numbers per second. It can rather be expressed as a cooperative switching. As soon as the transmitting party gives a clear indication of having a part of an entry ready, a phrase, a sentence or a line, then a switch can occur. Then the switch takes 300 ms. But text from other parties may have been waiting for long for the transmitting party to give turn. It can be 5 - 10 -20 - 50 seconds. It is possible to set a time limit after which a switch is forced on next word end so that no one can monopolize transmission. (there are more details on that in the appendix). The method has a possibility to work well with rapid 300 ms switching in a managed conference or in situations where one main typing party hands over to another. That is expected to be the case in emergency service calls, and therefore, even if I regard it to be a method with low functionality, it could still be considered for such cases. Regards Gunnar Den 2020-03-16 kl. 23:12, skrev Gunnar Hellström: > > Hi James, > > > Den 2020-03-16 kl. 13:11, skrev James Hamlin: >> >> Hi Gunnar >> >> >> Many thanks for taking the time to go through this so thoroughly. >> >> >> I think we have 2 main aspects to this work:- >> >> 1. Compatibility with existing implementations >> 2. Choosing an efficient mechanism for the future >> >> For the first of these, it seems to me that the only solution is for >> a mixer to be able to do inline participant labeling and buffering to >> produce a presentable single text stream. Current implementations of >> RFC4103 will simply not understand switching between participants, >> nor will they make any visual indication of which text belongs to >> which participant, so the mixer needs to do that. > Yes, it is possible to implement a limited functionality > "pseudo-multi-party" text mixer for presenting multi-party rtt on a > point-to-point rtt terminal. A procedure is included as Appendix A in > this draft: > https://datatracker.ietf.org/doc/draft-hellstrom-mmusic-multi-party-rtt/ > > When the mixer has text from more than one source to transmit, it > looks for suitable switching moments in the text from the source it is > transmitting. When a phrase or a sentence is complete or a line > separator issued, or even a long pause, then the mixer decides to > switch source and inserts a line separator and a label for next in > turn to get its text transmitted, and then the text. This method can > be used but has its limitations. It only displays one source at a time > in real-time. Erasure over a switch does not work. It assumes that the > receiver accepts to use the chat-style layout in one display area etc. > > Each application area should decide what to do with old terminals who > do not support multi-party. Implement the switching method above, or > upgrade the terminals or refuse to involve the terminals in > multi-party sessions. > > > > >> >> For the second we have established that it's possible to: allow the >> different redundant blocks in a packet to be for different >> participants; or use timestamps to resolve the correct redundant text >> to use and to have each packet associated with just one participant. >> I can also imagine putting all text generations of each source in the >> CSRC list in each packet which adds 12 bytes of header space per CSRC >> (assuming 2 redundant generations); I'll write a separate mail about >> that. > Sound interesting. >> After that, I think we have a fairly complete set of solutions to >> choose from. > > Thanks, > > Gunnar > > >> Some other comments inline. >> >> Best regards >> >> James >> >> >> >> James Hamlin >> Contractor >> Purple, a Division of ZP Better Together, LLC >> purplevrs.com >> >> The information contained in this e-mail message is intended only for >> the personal and confidential use of the recipient(s) named above. If >> you have received this communication in error, please notify us >> immediately by e-mail, and delete the original message. >> >> ------------------------------------------------------------------------ >> *From:* Gunnar Hellström <gunnar.hellstrom@omnitor.se> >> *Sent:* 14 March 2020 11:17 >> *To:* James Hamlin; avtcore@ietf.org >> *Subject:* Re: Source switching performance in >> draft-hellstrom-avtcore-multi-party-rtt-source-01.txt >> >> Hi James, >> >> Thanks for an interesting proposal. >> >> Let us extend the information about the packet contents of your >> example a bit: >> >> >> >> seq 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 >> >> CSRC=source 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 >> >> Timestamp 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 >> >> >> R2 t offset 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 >> >> R1 t offset 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 >> >> R2 A M X B N Y C O Z >> >> R1 A M X B N Y C O Z >> >> P A M X B N Y C O Z >> >> >> Lost X X >> >> >> (The timestamps and timestamp offsets ("t offset") are shown in 100 >> ms, in reality it will be in milliseconds) >> >> >> The SSRC of the packet is always the mixer's SSRC. >> >> The source is indicated in the CSRC-list that in this method has only >> one member = the SSRC of the source represented in the packet. >> >> +jeh: Agreed: My mistake. >> >> >> The timestamp is created by the mixer when sending, and the timestamp >> offsets make it possible to calculate the timestamps the redundant >> texts had when they were transmitted as originals. >> >> >> The receiver must store essential data from a number of packets. This >> data is the sequence number, the source (=CSRC), the Timestamp. >> >> So, let us see what happens if both packet 06 and 07 are lost. >> >> The receiver must also store for each source, the timestamps for >> which text has been recieved (either with real contents or empty). >> >> >> In packets 1 to 5, we have received and put in display areas for >> source 1: "AB", for source 2: "MN", for source 3: "X" >> >> >> 08 is received and the gap (07 and 06 ) is detected (07 and 06 with >> two redundant elements in both, making a need for retrieval of 4 text >> elements ) is remembered so we need to do the recovery analysis.. >> The source (2) and other essential data is noted. The original >> timestamp of R2 is calculated as Timestamp-R2 t offset = 98-6 = 92. >> Checking back in the list of received packets we find that we got a >> packet with timestamp 92 (and indeed, it contained text from source >> 2), so there is no need to recover R2. Then the original timestamp of >> R1 is calculated as Timestamp-R1 t offset = 98-3 = 95. Checking back >> in the list of received packets we find that we got a packet with >> timestamp 95 (and indeed, it contained text from source 2), so there >> is no need to recover R1. The Primary text in packet 08 ("O") is >> retrieved and put in the display area for source 2. It is noted that >> we have got text for timestamp 98 for source 2. The gap is still 4. >> >> >> 09 is received. The gap (4 elements ) is remembered so we need to do >> the recovery analysis. The source (3) and other essential data is >> noted. The original timestamp of R2 is calculated as Timestamp-R2 t >> offset = 99-6 = 93. Checking back in the list of received packets we >> find that we got a packet with timestamp 93 (and indeed, it contained >> text from source 3), so there is no need to recover R2. Then the >> original timestamp of R1 is calculated as Timestamp-R1 t offset = >> 99-3 = 96. Checking back in the list of received packets we find that >> we never got a packet with timestamp 96 , so we recover R1 ("Y") and >> insert it in the display area of source 3. The Primary text in packet >> 09 ("Z") is retrieved and put in the display area for source 3. It is >> noted that we got text from timestamps 96 and 99 for source 3 (the >> gap can now be reduced to 3) >> >> >> >> 10 is received. The gap (3 ) is remembered so we need to do the >> recovery analysis. The source (1) and other essential data is noted. >> The original timestamp of R2 is calculated as Timestamp-R2 t offset = >> 100-6 = 94. Checking back in the list of received packets we find >> that we got a packet with timestamp 94 (and indeed, it contained text >> from source 1), so there is no need to recover R2. Then the original >> timestamp of R1 is calculated as Timestamp-R1 t offset = 100-3 = 97. >> Checking back in the list of received packets we find that we never >> got a packet with timestamp 97 , so we recover R1 ("C") and insert it >> in the display area of source 1. The Primary text in packet 10 is >> empty so there is nothing to put in the display area for source 1. It >> is noted that we got text from timestamps 97 and 100 for source 1 >> (the gap can now be reduced to 2) >> >> >> >> 11 is received. The gap (2 ) is remembered so we need to do the >> recovery analysis. The source (2) and other essential data is noted. >> The original timestamp of R2 is calculated as Timestamp-R2 t offset = >> 101-6 = 95. Checking back in the list of received packets we find >> that we got a packet with timestamp 95 (and indeed, it contained text >> from source 2), so there is no need to recover R2. Then the original >> timestamp of R1 is calculated as Timestamp-R1 t offset = 101-3 = 98. >> Checking back in the list of received packets we find that we got a >> packet with timestamp 98 , so we do not need to recover R1. The >> Primary text in packet 11 is empty so there is nothing to put in the >> display area for source 2. It is noted that we got text from >> timestamp 101 for source 2. (we did not recover anything, so the gap >> is still 2) >> >> >> 12 is received. The gap (2 ) is remembered so we need to do the >> recovery analysis. The source (3) and other essential data is noted. >> The original timestamp of R2 is calculated as Timestamp-R2 t offset = >> 102-6 = 96. Checking back in the list of received packets we find >> that we never got a packet with timestamp 96, but from packet 09 we >> recovered R1 from timestamp 96. So we shall not recover anything from >> R2 here. Then the original timestamp of R1 is calculated as >> Timestamp-R1 t offset = 102-3 = 99. Checking back in the list of >> received packets we find that we got a packet with timestamp 99, so >> we do not need to recover R1. The Primary text in packet 12 is empty >> so there is nothing to put in the display area for source 3. It is >> noted that we got text for timestamp 102 for source 3 (the gap can >> now be reduced to 1) >> >> >> 13 is received. The gap (1 ) is remembered so we need to do the >> recovery analysis. The source (1) and other essential data is noted. >> The original timestamp of R2 is calculated as Timestamp-R2 t offset = >> 103-6 = 97. Checking back in the list of received packets we find >> that we already recovered text for timestamp 97, so nothing is >> recovered and nothing inserted from R2 in the display area of source >> 1 . Then the original timestamp of R1 is calculated as Timestamp-R1 t >> offset = 103-3 = 100. Checking back in the list of received packets >> we find that we got a packet with timestamp 100, so we do not need to >> recover R1. The Primary text in packet 13 is empty so there is >> nothing to put in the display area for source 1. It is noted that we >> got text for timestamp 103 for source 1 (the gap can now be reduced to 0) >> >> >> 14 is received. The gap is now 0 so we do not need to do any >> recovery analysis. The source (2) and other essential data is >> noted. The Primary text in packet 13 is empty so there is nothing to >> put in the display area for source 2. It is noted that we got text >> for timestamp 104 for source 2. >> >> >> After this, we have in the display areas: for 1: "ABC" for 2: "MNO", >> for 3: "XYZ", so everything is recovered. >> >> >> I am sorry, the narrative above may be hard to follow. It could >> probably be converted to some table format if we need to do it again >> for other cases. >> >> >> So, yes, this method also works. >> >> I see a couple of differences in characteristics between this >> "timestamp method" and the "CSRClist method": >> >> >> 1. The recovery time from loss to recovery can with the timestamp >> method be 200 times the number of simultaneous sending sources in >> milliseconds. Thus with 5 sources: 1 second. With the CSRClist >> method, it is steady 200 milliseconds. (assuming a transmission >> interval of 100 ms and round robin mixer switching.) >> >> >> 2. The recovery capacity in packets in sequence is 2*the number of >> simultaneous sources = 10 packets for 5 sources. With the CSRC method >> it is 2 packets. (again assuming round robin mixer switching ) >> >> >> 3. The complexity of the procedure is higher but still manageable for >> the timestamp method. >> >> jeh: Yes. I had thought this would be simpler, but the timestamp >> logic gets complicated. >> >> >> 4. The number of packets to store essential information about is >> higher for the timestamp method ( I think it is 4*the number of >> active sources). For the CSRC list method, it is 4 packets and less >> information per packet. >> >> >> You say: "The advantage of this approach is that the format of the >> packet doesn't change. The current arrangement where all the text in >> a packet is for one participant is preserved." >> >> >> I do not see the CSRClist method as a change in packet format. >> >> jeh: Agreed: I should have said that differently: the change is that >> the text over the redundant and primary block is no longer >> continuous; it's for different participants. >> >> >> The mixer needs in both methods to include a CSRC -list. The >> difference is that in the CSRClist method, the list has more members. >> It is still within the format description of RTP. The source of the >> redundant parts will vary in a packet, but the composition of the >> contents of the packet for transmission from the mixer is as usual >> for a single sender: Put what was sent next to last in the packet as >> R2, put what was sent last as R1, and put the new text chunk as P. >> The only addition is the rule that the CSRC list is populated with >> the sources in the strict order. >> >> >> Summary: both methods seem possible. It will be interesting to get >> more comments. >> >> >> Thanks, >> >> >> Gunnar >> >> >> >> >> >> >> >> >> Den 2020-03-14 kl. 01:45, skrev James Hamlin: >>> Hi Gunnar >>> >>> >>> I've also been thinking through the possibility of a sender >>> switching source without clearing all redundant generations first. >>> Clearly, a sender that did this today would cause problems >>> for existing receivers. But checking timestamps at the receiver >>> should fix this. >>> >>> >>> Consider three senders 1, 2 and 3 which send text "ABC", "MNO" and >>> "XYZ". The block below shows this text being >>> sent taking round-robin turns with the participants. >>> >>> >>> seq 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 >>> >>> part 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 >>> >>> - >>> >>> R2 A M X B N Y C O Z >>> >>> R1 A M X B N Y C O Z >>> >>> P A M X B N Y C O Z >>> >>> >>> If sequence 06 is lost and the receiver sees sequence 07 then it may >>> assume that the lost packet was for participant 1 and use the >>> redundant character "B". This would lead to character "B" being >>> duplicated in the output for participant 1. But it is possible for a >>> receiver to get the correct result; the timestamp for the redundant >>> text in packet 07 will not be higher than the most recent timestamp >>> previously received and so shouldn't be used. The redundant text in >>> the following packet 08 has no applicable redundant text, but the >>> timestamp of the R1 in packet 09 will be greater than the most >>> recent received and so is usable. >>> >>> >>> The advantage of this approach is that the format of the packet >>> doesn't change. The current arrangement where all the text in a >>> packet is for one participant is preserved. Tracking the timestamp >>> adds some implementation effort but I think >>> it's minimal. It does also mean the mixer needs to synchronize >>> timestamps across the media sources but it is in a position to do so. >>> >>> Best regards >>> >>> James >>> >>> >>> >>> James Hamlin >>> Contractor >>> Purple, a Division of ZP Better Together, LLC >>> purplevrs.com >>> >>> The information contained in this e-mail message is intended only >>> for the personal and confidential use of the recipient(s) named >>> above. If you have received this communication in error, please >>> notify us immediately by e-mail, and delete the original message. >>> >>> ------------------------------------------------------------------------ >>> *From:* Gunnar Hellström <gunnar.hellstrom@omnitor.se> >>> *Sent:* 13 March 2020 16:41 >>> *To:* avtcore@ietf.org; James Hamlin >>> *Subject:* Source switching performance in >>> draft-hellstrom-avtcore-multi-party-rtt-source-01.txt >>> >>> Hi, >>> >>> I want to follow-up on the good discussion on source switching >>> performance a couple of days ago, under the subject "[AVTCORE] >>> Improved RTP-mixer performance for RFC 2198 and RFC 4103 redundancy >>> coding" >>> >>> *Two parts in the performance increase solution.* >>> Two actions are proposed in >>> draft-hellstrom-avtcore-multi-party-rtt-source: >>> a) Reduce the packet transmission interval from 300 to 100 ms. >>> b) Use a strict relation between members in the CSRC list and the >>> parts of the payload that is original text and first generation >>> redundancy and second generation redundancy so that the mixer can >>> switch source for every new packet and the sources of text recovered >>> from redundancy can be assessed by the receiver. >>> >>> I think it is worth while to move forward with the complete >>> improvement a) and b) proposed in the draft. It will cause less >>> complexity, lower delays and lower risk for stalling in case of many >>> participants entering new text simultaneously. >>> >>> Here is my reasoning: >>> >>> I have the following view of the achievable performance improvements >>> for different cases: >>> >>> 1. With the original source switching with RFC 4103 and an RTP-mixer >>> using 300 ms transmission interval and not allowing a mix of sources >>> in one packet, there can be one source switching per second by the >>> mixer with an introduced delay of up to one second. >>> >>> >>> 2. By just reducing the transmission interval from 300 to 100 ms, it >>> will be possible to have three source switches per second with an >>> introduced delay of up to one second. (with just two parties sending >>> text simultaneously, the delay will be maximum 300 ms. ) >>> >>> 3. And by applying the proposal from the multi-party-rtt-source >>> draft with the CSRC-list as a source list for the redundancy, and >>> also using 100 ms transmission interval, there can be switching >>> between five source per second with an introduced delay of max 500 >>> ms. With just two parties typing simultaneously, the delay will be a >>> maximum of 100 ms. >>> >>> The delays are extreme values from when all sources start to type >>> simultaneously. It was agreed that at least the improvement from >>> the reduced transmission interval is needed. >>> >>> Case 1 and 2 are a bit complex for the mixer to implement. From the >>> moment it has text queued for transmission from another source B >>> than the one currently transmitted A, then the mixer needs to stop >>> adding new text from A to the packets, but still send two more >>> packets with the agreed transmission interval, progressing the >>> latest transmitted original text to first generation redundancy and >>> then again one more packet with the text as second level redundancy. >>> Not until that is done, the mixer is allowed to start taking text >>> from the transmission queue from B to transmit. This is the >>> background of the 1 s vs 300 ms delays in case 1 and 2. >>> >>> In case 3, there is much less complexity. When there is something >>> from B in queue for transmission, the mixer can decide to insert >>> that in next packet and add the redundancy from earlier >>> transmissions from A, because their sources are included in the CSRC >>> list in the same packet. >>> >>> Therefore I want to move on with the complete solution in case 3. >>> >>> ----------------------------------- >>> >>> *Influence on the multi-party capability negotiation:* >>> There is an installed park of RTT implementations without >>> multi-party awareness. The receiver need to take active part in >>> planning the multi-party RTT presentation. Therefore a capability >>> negotiation is needed. A simple sdp attribute a=rtt-mix without >>> value is proposed in the draft. >>> >>> It is important to let this attribute mean capability of the >>> complete solution case 3). If there is a temptation to have >>> different levels of implementation, some only implementing the >>> shorter transmission interval (2) and some implementing the complete >>> solution (3), then threre will be a need for two different >>> attributes, or one attribute with a list of parameter values for the >>> two cases. That would complicate the evaluation of the negotiation. >>> Therefore I would prefer that the attribute can mean capability to >>> use the complete mixing solution (3). >>> >>> Regards >>> >>> Gunnar >>> >>> >>> Den 2020-02-29 kl. 20:13, skrev internet-drafts@ietf.org: >>>> A New Internet-Draft is available from the on-line Internet-Drafts directories. >>>> >>>> >>>> Title : Indicating source of multi-party Real-time text >>>> Author : Gunnar Hellstrom >>>> Filename : draft-hellstrom-avtcore-multi-party-rtt-source-01.txt >>>> Pages : 13 >>>> Date : 2020-02-29 >>>> >>>> Abstract: >>>> Real-time text mixers need to identify the source of each transmitted >>>> text chunk so that it can be presented in suitable grouping with >>>> other text from the same source. An enhancement for RFC 4103 real- >>>> time text is provided, suitable for a centralized conference model >>>> that enables source identification, for use by text mixers and >>>> conference-enabled participants. The mechanism builds on use of the >>>> CSRC list in the RTP packet. A capability exchange is specified so >>>> that it can be verified that a participant can handle the multi-party >>>> coded real-time text stream. The capability is indicated by an sdp >>>> media attribute "rtt-mix". >>>> >>>> >>>> The IETF datatracker status page for this draft is: >>>> https://datatracker.ietf.org/doc/draft-hellstrom-avtcore-multi-party-rtt-source/ >>>> >>>> There are also htmlized versions available at: >>>> https://tools.ietf.org/html/draft-hellstrom-avtcore-multi-party-rtt-source-01 >>>> https://datatracker.ietf.org/doc/html/draft-hellstrom-avtcore-multi-party-rtt-source-01 >>>> >>>> A diff from the previous version is available at: >>>> https://www.ietf.org/rfcdiff?url2=draft-hellstrom-avtcore-multi-party-rtt-source-01 >>>> >>>> >>>> Please note that it may take a couple of minutes from the time of submission >>>> until the htmlized version and diff are available at tools.ietf.org. >>>> >>>> Internet-Drafts are also available by anonymous FTP at: >>>> ftp://ftp.ietf.org/internet-drafts/ >>>> >>>> >>>> _______________________________________________ >>>> I-D-Announce mailing list >>>> I-D-Announce@ietf.org >>>> https://www.ietf.org/mailman/listinfo/i-d-announce >>>> Internet-Draft directories:http://www.ietf.org/shadow.html >>>> orftp://ftp.ietf.org/ietf/1shadow-sites.txt >>> -- >>> >>> + + + + + + + + + + + + + + >>> >>> Gunnar Hellström >>> Omnitor >>> gunnar.hellstrom@omnitor.se >>> +46 708 204 288 >> -- >> >> + + + + + + + + + + + + + + >> >> Gunnar Hellström >> Omnitor >> gunnar.hellstrom@omnitor.se >> +46 708 204 288 > -- > > + + + + + + + + + + + + + + > > Gunnar Hellström > Omnitor > gunnar.hellstrom@omnitor.se > +46 708 204 288 > > _______________________________________________ > Audio/Video Transport Core Maintenance > avt@ietf.org > https://www.ietf.org/mailman/listinfo/avt -- ----------------------------------------- Gunnar Hellström Omnitor gunnar.hellstrom@omnitor.se +46 708 204 288
- [AVTCORE] Source switching performance in draft-h… Gunnar Hellström
- Re: [AVTCORE] Source switching performance in dra… James Hamlin
- Re: [AVTCORE] Source switching performance in dra… Gunnar Hellström
- Re: [AVTCORE] Source switching performance in dra… James Hamlin
- Re: [AVTCORE] Source switching performance in dra… Gunnar Hellström
- Re: [AVTCORE] Source switching performance in dra… James Hamlin
- Re: [AVTCORE] Source switching performance in dra… Gunnar Hellström
- Re: [AVTCORE] Source switching performance in dra… Gunnar Hellström
- Re: [AVTCORE] Source switching performance in dra… James Hamlin
- Re: [AVTCORE] Source switching performance in dra… James Hamlin
- Re: [AVTCORE] Source switching performance in dra… Gunnar Hellström
- Re: [AVTCORE] Source switching performance in dra… Gunnar Hellström