2.2.5 Stream Layout SEI Message

The stream layout is a structure that describes information about all layers present in the current simulcast streams. This provides a reliable way for the receiver to retrieve the information about the simulcast streams without waiting to receive NAL units from all layers.

This protocol defines a User Data Unregistered SEI message as the stream layout message.

The syntax of the User Data Unregistered SEI message followed in this protocol is as defined in [ISO/IEC 14496-10:2014] Annex D.

The stream layout SEI message MUST be embedded in a PACSI NAL unit. The PACSI NAL containing the stream layout SEI message MAY be present in any layer and MAY be followed by any VCL NAL unit.

The format of stream layout SEI message is defined as follows:


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

F

NRI

Type

payloadType

payloadSize

uuid_iso_iec_11578

uuid_iso_iec_11578

uuid_iso_iec_11578

uuid_iso_iec_11578

uuid_iso_iec_11578

LPB0

LPB1

LPB2

LPB3

LPB4

LPB5

LPB6

LPB7  

R

P

LDSize

Layer Description

More Layer Description …

F (1 bit): A forbidden_zero_bit, as specified in [RFC6184], section 1.3.

NRI (2 bits): A nal_ref_idc, as specified in [RFC6184], section 1.3.

Type (5 bits): A nal_unit_type, as specified in [RFC6184], section 1.3. MUST be set to 6.

payloadType (1 byte): A SEI payload type. MUST be set to 5 to indicate User Data Unregistered SEI message. The syntax used by this protocol is as defined in [ISO/IEC 14496-10:2014], section 7.3.2.3.1.

payloadSize (1 byte): SEI payload size. The syntax that is used by this protocol for this field is the same as defined in [ISO/IEC 14496-10:2014], section 7.3.2.3.1. The payloadSize value is the size of the stream layout SEI message excluding the F, NRI, Type, payloadType, and payloadSize fields.

uuid_iso_iec_11578 (16 bytes): A universally unique identifier (UUID) to indicate the SEI message is the stream layout. The value MUST be set to {0x139FB1A9-446A-4DEC-8CBF-65B1E12D2CFD}.

LPB0 (1 byte): A layer presence byte #0. The value of each bit indicates whether the layer identified by the corresponding PRID (priority ID) is present in the current simulcast streams. The value of 1 means the layer is present. The value of 0 means the layer is not present. The less significant bit corresponds to a smaller PRID. This byte corresponds to layer PRID 0~7.

LPB1 (1 byte): Layer presence byte #1. This byte corresponds to layer PRID 8~15.

LPB2 (1 byte): Layer presence byte #2. This byte corresponds to layer PRID 16~23.

LPB3 (1 byte): Layer presence byte #3. This byte corresponds to layer PRID 24~31.

LPB4 (1 byte): Layer presence byte #4. This byte corresponds to layer PRID 32~39.

LPB5 (1 byte): Layer presence byte #5. This byte corresponds to layer PRID 40~47.

LPB6 (1 byte): Layer presence byte #6. This byte corresponds to layer PRID 48~55.

LPB7 (1 byte): Layer presence byte #7. This byte corresponds to layer PRID 56~63.

R (7 bits): Reserved bits. MUST be set to 0.

P (1 bit): A layer description presence flag. The value of 1 indicates that the Layer Description table and Layer Description size (LDSize) field are present. The value of 0 indicates that these are not present.

LDSize (1 byte): A Layer Description size. The value indicates the size of the Layer Description table. MUST be larger than or equal to 16.

Layer Description (variable): The size is defined by the LDSize field. If the value of the P field is 1, there MUST be at least one and there MAY be more than one Layer Description. If there is no need for Layer Description, the P field MUST be set to 0 and LDSize and the Layer Description fields MUST NOT be present.

The format of Layer Description is defined as follows:


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Coded Width

Coded Height

Display Width

Display Height

Bitrate

FPSIdx

LT

PRID

CB

R

R2

Coded Width (2 bytes): A coded width of the resolution of the coded picture.

Coded Height (2 bytes): A coded height of the resolution of the coded picture.

Display Width (2 bytes): A display width of the resolution of the coded picture.

Display Height (2 bytes): A display height of the resolution of the coded picture.

Bitrate (4 bytes): The target bitrate of the coded NAL units in this layer, in bits-per-second unit.

FPSIdx (5 bits): Index of a predefined frame rate table. Each FPSIdx value corresponds to one frame rate value. The frame rate value is the target frame rate represented by this layer. The frame rate table is defined as follows:

FPSIdx

Frame Rate (fps)

0

7.5

1

12.5

2

15

3

25

4

30

5

50

6

60

Only FPSIdx values 0~6 are defined.

LT (3 bits): A layer type specifies the values of temporal_id, quality_id and dependency_id allowed within this layer as defined in [ISO/IEC 14496-10:2014].

0: Base layer. The layer contains coded pictures with H.264 syntax elements temporal_id, quality_id and dependency_id all equal to 0.

1: Temporal layer. The layer contains coded pictures with H.264 syntax elements temporal_id greater than 0, and quality_id and dependency_id equal to 0.

2~7: Reserved for future use.

PRID (6 bits): The priority ID associated with this layer. It is used to determine the RTP stream that the Layer Description describes. The PRID value of Layer Description MUST match the priority ID of the Scalable Video Coding (SVC) stream.

CB (1 bit): Constrained baseline profile. The value of 1 indicates the layer is coded in constrained baseline profile. The value of 0 indicates the layer SHOULD NOT be coded in constrained baseline profile.

R (1 bit): Reserved bit for future use. The sender MUST set it to 0. The receiver SHOULD ignore it.

R2 (2 bytes): Reserved for future use. The sender MUST set it to 0. The receiver SHOULD ignore it.