-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Receiver transform depacketizer requirements #109
Comments
The bogeyman here is (of course) H.264 B-frames, which will cause frames with earlier timestamps to be sent (and received, if in order) after the (future) frames they refer to. The RTP sequence number is monotonically increasing in depacketization order; this argues for exposing the RTP sequence number and requiring that the frames are presented to the transform in RTP sequence number order. @guidou might have the reference. |
Editor meeting: consensus to specify that sender side should be enforced at sender and receiver side. |
This turns out to be unexpectedly problematic for the receiver side. The internal logic of frame processing leaves the reordering as late as possible, just before the decoding step, which occurs on a relatively high priority thread so that lost and retransmitted packets have the maximum time available for catching up and filling gaps. a) it tightens the delay budget for the transform considerably; any jitter in processing time will be directly reflected in jitter in display So I'm reopening the issue; let's discuss more. |
The depacketizer is receiving packets and is concatenating packets into frames.
Frames may be out of order if some packets are reordered.
The decoder is processing frames and they must be ordered appropriately.
The receiver transform sits in the middle between depacketizer and decoder.
It is unclear whether the reordering happens before transform or after transform.
Given this is visible to the transform, the spec should be clear about this.
From the current wording, the frame timestamp should be monotonously increasing so it seems to indicate reordering should be done before frames get exposed to the transform.
On encoder side, it could also be possible for encoder to reorder video frames but most encoders probably do not do that.
It would still be good to clarify that encoder order is sender transform order and depacketizer should probably make sure this order is respected for receiver transform (and thus decoder).
The text was updated successfully, but these errors were encountered: