- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Tue, 29 May 2018 08:30:03 +0200
- To: "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <70a67eda-4a7a-7606-96d7-45f29b296886@alvestrand.no>
**
*Access to encoded streams*
*
A similar interface can be added to RTPSender and RTPReceiver,
respectively (and similar APIs for other transports, when defined).
Here the buffers would contain encoded video / audio data, and the
control block parameters would have to have enough information to let
the RTP packet headers be constructed - or, on the receiver, the info
from the RTP packet headers be represented.
Partial interface RTPSender {
promise<encodedBuffer> injectData(encodedBuffer);
}
Partial interface RTPReceiver {
promise<encodedBuffer> extractData(encodedBuffer);
}
Interface encodedBuffer : Buffer {
Long rtpTimestamp;
Long frameId;
sequence<long> dependsOnFrames;
// more fields TBD
}
On this interface, frames do have interdependencies, so dropping packets
is much more problematic. The “dependsOnFrames” member is intended to
help deciding on sensible handling - it would tell the other side of the
API that “if you dropped one of these frames, you might as well drop
this frame too”.
*
--
Surveillance is pervasive. Go Dark.
Received on Tuesday, 29 May 2018 06:30:41 UTC