- From: Chen Xing via GitHub <sysbot+gh@w3.org>
- Date: Fri, 26 Apr 2019 12:03:35 +0000
- To: public-webrtc-logs@w3.org
I think that a per-frame ID (of some kind) would be very nice to have for `RTCRtpContributingSource`. For example: It would allow a caller to tell if two consecutive `getContributingSources()` calls returned the info about the exact same frame, or if they returned info about two different frames but `timestamp` didn't have enough resolution to tell the frames apart. There are a bunch of challenges for the spec: 1. A single RTP packet may contain a payload that maps to multiple frame-deliveries to `MediaStreamTrack`. For example: - Audio packets store 20 ms of audio but WebRTC delivers 10 ms per `GetAudioFrameWithInfo()` call. 2. Multiple RTP packets may be involved in the decoding of a single frame. For example: - Video key frames. - Audio packets that are not aligned with audio outputs. Say we have a packet with audio for time period [1005, 1025) and another for [1025, 1045), but WebRTC is outputing [1020, 1030). It would then take audio samples from both packets. - Audio during acceleration. Similar to the case above. 3. Frames that are decoded from packets that don't follow the usual rules about RTP timestamps and sequence numbers. For example: - Transport-level forward error correction. - E.g. Flexfec. - We'll presumably use the recovered RTP timestamp. - In-band forward error correction. - E.g. Opus FEC where WebRTC can use the data from packet N+1 to decode a low-quality version of packet N. - Do we use the RTP timestamp for N+1 or the "would have been" RTP timestamp for N? - Probably most sense to compute and use the info for N? - Or maybe not record anything for this case at all? - Retransmission. - The retransmitted packet should have the same RTP timestamp as the original. -- GitHub Notification of comment by chxg Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2177#issuecomment-487033029 using your GitHub account
Received on Friday, 26 April 2019 12:03:40 UTC