- From: Justin Uberti <juberti@google.com>
- Date: Tue, 28 Jan 2014 16:21:13 -0800
- To: Peter Thatcher <pthatcher@google.com>
- Cc: Emil Ivov <emcho@jitsi.org>, "public-orca@w3.org" <public-orca@w3.org>
- Message-ID: <CAOJ7v-1N_bWRfC4PPRq79f-ScrYLyvVv6_iV2VnSOZdTyvNuMQ@mail.gmail.com>
Having to mine through the raw packets feels like a pretty low-level API to me. I was thinking that one could interrogate the RtpReceiver object to get data on the most recently seen CSRCs and their corresponding energy levels. Something like dictionary RtpCsrcInfo { unsigned int csrc; int audioLevel; } dictionary RtpMixerInfo { sequence<RtpCsrcInfo> csrcs; } partial interface RtpReceiver { RtpMixerInfo getMixerInfo(); } or maybe just return a dictionary with CSRC as keys and energy levels as values. On Tue, Jan 28, 2014 at 3:27 PM, Peter Thatcher <pthatcher@google.com>wrote: > I think it would be reasonable to add some access to header extensions > and CSRCs in the RtpReceiver object. > > > Would it make sense to have a general access to such things by having > general access to receive packets? It could be used like so: > > var receiver = new RtpReceiver(...); > receiver.onpackets = function(packets) { > for (var i = 0; i < packets.length; i++) { > var packet = packets[i]; > // Here you have access to > // packet.csrcs > // packet.headerExtensions > } > } > > And defined like so: > > partial interface RtpReceiver { > // Gives a sequence of RtpPacket > // Fired in "batches" of packets. > attribute EventHandler? onpackets; > } > > dictionary RtpPacket { > sequence<unsigned int> csrcs; > sequence<RtpHeaderExtension> headerExtensions; > } > > dictionary RtpHeaderExtension { > unsigned short id; > ArrayBuffer value; > } > > > That might leave a bit of work for you to build on top of, but it > would solve the "can I access header extension" issue once and for > all. > > Would this meet your needs? > > > > On Tue, Jan 28, 2014 at 2:51 PM, Emil Ivov <emcho@jitsi.org> wrote: > > On Tue, Jan 28, 2014 at 11:41 PM, Peter Thatcher <pthatcher@google.com> > wrote: > >> I guess it could continue in both. The ORCA CG might be quicker to > >> integrate something into the API than the WebRTC WG. > >> > >> My question is the same: exactly what info do you want available in > >> the JS? The CSRCs? > > > > Same answer then: That would be CSRCs and/or audio level header > > extensions as per RFC6465. > > > > Emil > > > > -- > > https://jitsi.org > > > >> On Tue, Jan 28, 2014 at 2:38 PM, Emil Ivov <emcho@jitsi.org> wrote: > >>> I am not sure whether this discussion should only continue on one of > >>> the lists but until we figure that out I am going to answer here as > >>> well > >>> > >>> Sync isn't really the issue here. It's mostly about the fact that the > >>> mixer is not a WebRTC entity. This means that it most likely doesn't > >>> even know what SCTP is, it doesn't necessarily have access to > >>> signalling and above all, the mix is likely to also contain audio from > >>> non-webrtc endpoints. Using DataChannels in such situations would > >>> likely turn out to be quite convoluted. > >>> > >>> Emil > >>> > >>> On Tue, Jan 28, 2014 at 10:18 PM, Peter Thatcher <pthatcher@google.com> > wrote: > >>>> Over there, I suggested that you could simply send the audio levels > >>>> over an unordered data channel. If you're using one > >>>> IceTransport/DtlsTransport pair for both your RTP and SCTP, it would > >>>> probably stay very closely in sync. > >>>> > >>>> On Tue, Jan 28, 2014 at 5:44 AM, Emil Ivov <emcho@jitsi.org> wrote: > >>>>> Hey all, > >>>>> > >>>>> I just posted this to the WebRTC list here: > >>>>> > >>>>> http://lists.w3.org/Archives/Public/public-webrtc/2014Jan/0256.html > >>>>> > >>>>> But I believe it's a question that is also very much worth resolving > >>>>> for ORTC, so I am also asking it here: > >>>>> > >>>>> One requirement that we often bump against is the possibility to > >>>>> extract active speaker information from an incoming *mixed* audio > >>>>> stream. Acquiring the CSRC list from RTP would be a good start. Audio > >>>>> levels as per RFC6465 would be even better. > >>>>> > >>>>> Thoughts? > >>>>> > >>>>> 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 Wednesday, 29 January 2014 00:22:01 UTC