diff --git a/draft-avtransport-spec.bs b/draft-avtransport-spec.bs
index 649789f..f6b1b08 100644
--- a/draft-avtransport-spec.bs
+++ b/draft-avtransport-spec.bs
@@ -1473,6 +1473,49 @@ Any undefined values are hereby reserved and must not be present in a compliant
AVTransport stream with this version.
+### Stream data segmentation ### {#stream-data-segment-packets}
+
+Packets can be split up into separate chunks that may be received out of order
+and assembled. This allows transmission over switched networks with a limited MTU,
+or prevents very large packets from one stream interfering with another stream.
+The packet structure used for segments is the [[#generic-data-segment-packets]] from
+[[#generic-data-packets]], with the following descriptors:
+
+
+
+
+
Descriptor value
+
Name
+
Structure
+
Description
+
+
+
''0x00FF''
+
stream_data_segment_descriptor
+
[[#generic-data-segment-packets]]
+
Non-final segment for segmented codec configuration.
+
+
+
+
+The size of the final assembled packet is the sum of all [=seg_length=] fields,
+plus the [=data_length=] field from the [[#stream-data-packets]].
+
+Data segments and packets may arrive out of order and be duplicated.
+Implementations must reorder them, deduplicate them and assemble them into
+complete packets.
+
+Implementations may try to decode incomplete data packets with missing segments
+due to latency concerns.
+
+Senders may send duplicate segments to compensate for packet loss,
+but should use [[#fec-grouping-packets]] or [[#stream-data-parity-packets]] instead.
+
+Implementations should discard any packets and segments that arrive after their
+presentation time. Implementations should drop any packets and segments
+that arrive with unrealistically far away presentation times.
+
+
## Extended stream data ## {#extended-stream-data-packets}
Depending upon the codec, using an extended stream data header may be required.
@@ -1562,54 +1605,48 @@ It is laid out in the following way:
64-bits of LDPC parity data to correct the previous 224 bits of the packet.
-
[=data_length=]*b(8)
-
[=packet_data=]
-
payload
-
The packet data itself.
-
-
i(64)
[=duration=]
The duration of this packet in stream timebase unis.
-
+
u(32)
total_data_length
The total size of all data needed to receive the payload correctly. Must be either 0 if unknown, or the total size of the payload across all segments.
-
+
u(32)
side_data_length
Length of the side data, if any.
-
+
u(32)
side_data_offset
The offset within the packet where the side data is located at.
-
+
u(8)
side_data_type
The size of the data in this packet.
-
+
b(48)
[=padding=]
Padding, reserved for future use. MUST be ''0x0''.
-
+
b(64)
[=ldpc_288_224=]
[=LDPC(288, 224)=]
64-bits of LDPC parity data to correct the previous 224 bits of the packet.
-
+
[=data_length=]*b(8)
[=packet_data=]
payload
@@ -1621,48 +1658,7 @@ It is laid out in the following way:
Extended stream data packets should only be used if there's a need to use them.
Regular stream data packets have a much lower overhead.
-
-### Stream data segmentation ### {#stream-data-segment-packets}
-
-Packets can be split up into separate chunks that may be received out of order
-and assembled. This allows transmission over switched networks with a limited MTU,
-or prevents very large packets from one stream interfering with another stream.
-The packet structure used for segments is the [[#generic-data-segment-packets]] from
-[[#generic-data-packets]], with the following descriptors:
-
-
-
-
-
Descriptor value
-
Name
-
Structure
-
Description
-
-
-
''0x00FF''
-
stream_data_segment_descriptor
-
[[#generic-data-segment-packets]]
-
Non-final segment for segmented codec configuration.
-
-
-
-
-The size of the final assembled packet is the sum of all [=seg_length=] fields,
-plus the [=data_length=] field from the [[#stream-data-packets]].
-
-Data segments and packets may arrive out of order and be duplicated.
-Implementations must reorder them, deduplicate them and assemble them into
-complete packets.
-
-Implementations may try to decode incomplete data packets with missing segments
-due to latency concerns.
-
-Senders may send duplicate segments to compensate for packet loss,
-but should use [[#fec-grouping-packets]] or [[#stream-data-parity-packets]] instead.
-
-Implementations should discard any packets and segments that arrive after their
-presentation time. Implementations should drop any packets and segments
-that arrive with unrealistically far away presentation times.
+[=side_data_type=] must be ignored if [=side_data_length=] is 0.
## FEC grouping ## {#fec-grouping-packets}