rfc9628v2.txt   rfc9628.txt 
Internet Engineering Task Force (IETF) J. Uberti Internet Engineering Task Force (IETF) J. Uberti
Request for Comments: 9628 S. Holmer Request for Comments: 9628 S. Holmer
Category: Standards Track M. Flodman Category: Standards Track M. Flodman
ISSN: 2070-1721 D. Hong ISSN: 2070-1721 D. Hong
Google Google
J. Lennox J. Lennox
8x8 / Jitsi 8x8 / Jitsi
August 2024 October 2024
RTP Payload Format for VP9 Video RTP Payload Format for VP9 Video
Abstract Abstract
This specification describes an RTP payload format for the VP9 video This specification describes an RTP payload format for the VP9 video
codec. The payload format has wide applicability as it supports codec. The payload format has wide applicability as it supports
applications from low bitrate peer-to-peer usage to high bitrate applications from low bitrate peer-to-peer usage to high bitrate
video conferences. It includes provisions for temporal and spatial video conferences. It includes provisions for temporal and spatial
scalability. scalability.
skipping to change at line 240 skipping to change at line 240
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: General RTP Payload Format for VP Figure 1: General RTP Payload Format for VP
See Section 4.2 for more information on the VP9 payload descriptor; See Section 4.2 for more information on the VP9 payload descriptor;
the VP9 payload is described in [VP9-BITSTREAM]. OPTIONAL RTP the VP9 payload is described in [VP9-BITSTREAM]. OPTIONAL RTP
padding MUST NOT be included unless the P bit is set. padding MUST NOT be included unless the P bit is set.
Marker bit (M): This bit MUST be set to 1 for the final packet of Marker bit (M): This bit MUST be set to 1 for the final packet of
the highest spatial-layer frame (the final packet of the picture); the highest spatial-layer frame (the final packet of the picture);
otherwise, it MUST be set to 0. Unless spatial scalability is in otherwise, it is 0. Unless spatial scalability is in use for this
use for this picture, this bit will have the same value as the E picture, this bit will have the same value as the E bit described
bit described in Section 4.2. Note this bit MUST be set to 1 for in Section 4.2. Note this bit MUST be set to 1 for the target
the target spatial-layer frame if a stream is being rewritten to spatial-layer frame if a stream is being rewritten to remove
remove higher spatial layers. higher spatial layers.
Payload Type (PT): In line with the policy in Section 3 of Payload Type (PT): In line with the policy in Section 3 of
[RFC3551], applications using the VP9 RTP payload profile MUST [RFC3551], applications using the VP9 RTP payload profile MUST
assign a dynamic payload type number to be used in each RTP assign a dynamic payload type number to be used in each RTP
session and provide a mechanism to indicate the mapping. See session and provide a mechanism to indicate the mapping. See
Section 6.1 for the mechanism to be used with the Session Section 6.1 for the mechanism to be used with the Session
Description Protocol (SDP) [RFC8866]. Description Protocol (SDP) [RFC8866].
Timestamp: The RTP timestamp [RFC3550] indicates the time when the Timestamp: The RTP timestamp [RFC3550] indicates the time when the
input frame was sampled, at a clock rate of 90 kHz. If the input input frame was sampled, at a clock rate of 90 kHz. If the input
skipping to change at line 365 skipping to change at line 365
resets the encoder state. This packet will have its P bit equal resets the encoder state. This packet will have its P bit equal
to 0, SID or L bit (described below) equal to 0, and B bit to 0, SID or L bit (described below) equal to 0, and B bit
(described below) equal to 1. (described below) equal to 1.
B: Start of a frame. This bit MUST be set to 1 if the first payload B: Start of a frame. This bit MUST be set to 1 if the first payload
octet of the RTP packet is the beginning of a new VP9 frame; octet of the RTP packet is the beginning of a new VP9 frame;
otherwise, it MUST NOT be 1. Note that this frame might not be otherwise, it MUST NOT be 1. Note that this frame might not be
the first frame of a picture. the first frame of a picture.
E: End of a frame. This bit MUST be set to 1 for the final RTP E: End of a frame. This bit MUST be set to 1 for the final RTP
packet of a VP9 frame; otherwise, it MUST be 0. This enables a packet of a VP9 frame; otherwise, it is 0. This enables a decoder
decoder to finish decoding the frame, where it otherwise may need to finish decoding the frame, where it otherwise may need to wait
to wait for the next packet to explicitly know that the frame is for the next packet to explicitly know that the frame is complete.
complete. Note that, if spatial scalability is in use, more Note that, if spatial scalability is in use, more frames from the
frames from the same picture may follow; see the description of same picture may follow; see the description of the B bit above.
the B bit above.
V: Scalability Structure (SS) data present. When set to 1, the V: Scalability Structure (SS) data present. When set to 1, the
OPTIONAL SS data MUST be present in the payload descriptor. OPTIONAL SS data MUST be present in the payload descriptor.
Otherwise, the SS data MUST NOT be present. Otherwise, the SS data MUST NOT be present.
Z: Not a reference frame for upper spatial layers. If set to 1, Z: Not a reference frame for upper spatial layers. If set to 1,
indicates that frames with higher spatial layers SID+1 and greater indicates that frames with higher spatial layers SID+1 and greater
of the current and following pictures do not depend on the current of the current and following pictures do not depend on the current
spatial-layer SID frame. This enables a decoder that is targeting spatial-layer SID frame. This enables a decoder that is targeting
a higher spatial layer to know that it can safely discard this a higher spatial layer to know that it can safely discard this
 End of changes. 3 change blocks. 
12 lines changed or deleted 11 lines changed or added

This html diff was produced by rfcdiff 1.48.