- From: Peter Thatcher <pthatcher@google.com>
- Date: Thu, 30 Jan 2014 09:08:05 -0800
- To: Martin Thomson <martin.thomson@gmail.com>
- Cc: Emil Ivov <emcho@jitsi.org>, Bernard Aboba <Bernard.Aboba@microsoft.com>, "public-orca@w3.org" <public-orca@w3.org>, Roman Shpount <rshpount@turbobridge.com>, Justin Uberti <juberti@google.com>
Would it make sense to have an async getter that calls the callback function more than once? For example, to get the current value once, call like this: rtpReceiver.getContributorSources(function(contributorSources) { // Use the contributor sources just once. }); And to get called back every 100ms, call like this: rtpReceiver.getContributorSources(function(contributorSources) { // Use the contributor sources every 100ms. return true; }, 100); And to stop the callback: rtpReceiver.getContributorSources(function(contributorSources) { if (iAmAllDone) { // I'm all done. Don't call me anymore. return false; } return true; }, 100); That's somewhat halfway between an async getter and an event. Are there any existing HTML5 APIs like that? On Thu, Jan 30, 2014 at 8:21 AM, Martin Thomson <martin.thomson@gmail.com> wrote: > If it is an event, I think that the api should choose the rate. One event > per packet makes little sense. I think that I would run at 5-10 updates per > second, but that might depend on circumstances. > > On Jan 30, 2014 6:17 AM, "Emil Ivov" <emcho@jitsi.org> wrote: >> >> On Thu, Jan 30, 2014 at 2:10 AM, Justin Uberti <juberti@google.com> wrote: >> > As others have mentioned, the event rate here could be very high (50+ >> > PPS), >> > and I don't think that resolution is really needed for active speaker >> > identification. I have seen systems that work well even when sampling >> > this >> > information at ~ 5 Hz. >> > >> > As such I am still inclined to leave this as a polling interface and >> > allow >> > apps to control the resolution by their poll rate. >> >> Just to make sure I understand. What is the disadvantage of making >> this an event with an application controlled granularity? >> >> The two main advantages I see to keeping an event-based mechanism are: >> >> * streams where levels don't change that often (e.g. muted streams) >> would not cause any events, while polls would continue running. >> * it is unlikely that people would ever need to only do a single poll >> so there would always be need for periodicity. It would therefore be >> helpful if the API provided the infrastructure for the most common use >> case. >> >> Again, if the choice is between polling and not having access to these >> fields at all, then polling it is. >> >> Emil >> >> > >> > >> > On Wed, Jan 29, 2014 at 6:53 AM, Emil Ivov <emcho@jitsi.org> wrote: >> >> >> >> On Wed, Jan 29, 2014 at 3:14 PM, Bernard Aboba >> >> <Bernard.Aboba@microsoft.com> wrote: >> >> > Emil said: >> >> > >> >> > +1. While polling is obviously much better than nothing at all, >> >> > having a >> >> > change event would be quite convenient. >> >> > >> >> > With regard to energy levels, there are two main use cases: >> >> > >> >> > 1. acting on changes of the current speaker (e.g. in order to >> >> > upscale >> >> > their corresponding video and thumbnail everyone else) >> >> > 2. showing energy levels for all participants >> >> > >> >> > [BA] I believe that the polling proposal could address need #2 by >> >> > delivering a list of CSRCs as well as an (averaged) level, but I'm >> >> > not sure >> >> > about #1. >> >> >> >> Yup, agreed. >> >> >> >> > #1 is about timely dominant speaker identification, presumably >> >> > without >> >> > false speaker switches. >> >> > >> >> > To do this well, you may need to do more than firing an event based >> >> > on >> >> > changes in a ranked list of speakers based on averaged levels; better >> >> > approaches tend to actually process the audio. >> >> > >> >> > For example, see >> >> > >> >> > http://webee.technion.ac.il/Sites/People/IsraelCohen/Publications/CSL_2012_Volfin.pdf >> >> >> >> Right. That's why per-packet hdr extensions carrying the CSRC levels >> >> would be the best (and only in the case of mixed streams) way to >> >> implement any of the above. So, if we could have events triggered for >> >> every new level, then we should be good. Unless I am missing >> >> something, this should be covered by Peter's suggested API. >> >> >> >> Emil >> >> >> >> -- >> >> https://jitsi.org >> > >> > >> >> >> >> -- >> Emil Ivov, Ph.D. 67000 Strasbourg, >> Project Lead France >> Jitsi >> emcho@jitsi.org PHONE: +33.1.77.62.43.30 >> https://jitsi.org FAX: +33.1.77.62.47.31 >>
Received on Thursday, 30 January 2014 17:09:14 UTC