Summary
- RFC 2038 required packetization to make the next MPEG slice start discoverable without scanning payload bytes. Its Beginning-of-slice and End-of-slice bits declared how each RTP payload met a slice boundary.
- Every video packet repeated the picture’s Temporal Reference, Picture Type and applicable forward/backward motion-vector parameters. After a lost GOP Header or Picture Header, those fields could supply limited reconstruction inputs at the next slice.
- A sequence gap, B/E bits and repeated TR/P/vector state support a bounded restart decision. They do not prove that earlier slices arrived, the declarations are true, a reference frame exists, decoding succeeds, playout is continuous or an audience saw acceptable video.
Packet 410 is absent. Packet 411 arrives with its Beginning-of-slice bit set, a Temporal Reference of five, a Picture Type identifying a P picture, and the forward-vector parameters expected for that picture. A receiver now has a practical choice: abandon the damaged continuation, construct the small amount of missing picture context that RFC 2038 makes available, and offer the next slice to the decoder.
That can be the correct recovery action even when the picture remains wrong.
The earlier packet might have carried indispensable macroblocks. The reference picture required by the P picture might be missing or damaged. The sender might have set the boundary bit incorrectly. Stream-dependent defaults used to rebuild a lost Picture Header might differ from the original header. A decoder may accept the bytes and still produce a scar, a freeze or nothing useful at all.
RFC 2038’s achievement was not to erase those possibilities. It was to make the restart point and its inputs visible enough that one loss did not have to leave every following byte semantically adrift.
The transport header exposed a codec boundary
MPEG video was not a sequence of independent blocks that could always be resumed at an arbitrary byte. RFC 2038 described temporal and spatial dependency inside the bit stream: losing some data could make other, intact data useless. Large pictures also had to be divided across packets smaller than an ordinary network MTU.
The payload format answered with application-layer framing. When a Video Sequence Header appeared, it had to begin an RTP payload. A GOP Header had to begin the payload or follow the Sequence Header. A Picture Header had to begin the payload or follow the GOP Header. Each of those Elementary Stream headers had to fit wholly inside a single packet.
The sharper rule concerned slices. RFC 2038 called a slice MPEG’s intended recovery unit after loss or corruption. A slice start could be the first data in a packet, after any allowed MPEG headers, or it could follow an integral number of complete slices in the same packet. A slice was still allowed to span packets. The format did not force one packet to equal one slice.
That arrangement removed a specific search problem. After losing a packet, a receiver did not have to inspect every byte of the next payloads looking for a slice start code. Packetization had already arranged that a discoverable restart could be signalled at the payload boundary.
This was a transfer of visibility, not authority. The codec defined where recovery could begin; the RTP-specific header exposed that location to transport processing. It did not allow transport metadata to certify the MPEG content.
B and E described alignment, not completeness
The 32-bit video-specific header followed every RTP fixed header. Its B bit meant that the payload started with a slice start code, possibly after only a Video Sequence Header, GOP Header or Picture Header. Its E bit meant that the payload’s final byte was the end of an MPEG slice.
Together, the two bits described four useful shapes. A packet could begin and end on slice boundaries; begin a slice that continued into another packet; continue a slice and end it; or contain only a middle fragment. The receiver could distinguish those shapes before parsing the compressed payload.
But B=1 is still a declaration made by the sender. It does not authenticate the first compressed bytes. E=1 does not inventory the other fragments of that slice. A packet with both bits set can claim to hold aligned slice material while an earlier RTP sequence gap shows that some other content is absent. Conversely, a packet with neither bit set may be perfectly intact but unusable after the fragment on which it depends has disappeared.
The evidence is therefore exact and narrow. B/E can establish the boundary state carried in the packet header. Confirming a real MPEG start code, legal syntax and a complete slice requires inspection and validation at the payload and decoder layers.
The picture carried a small duplicate dossier
RFC 2038 did more than expose slice alignment. It repeated picture state in every video packet.
The ten-bit TR field carried the current picture’s Temporal Reference within its GOP and remained constant across every RTP packet for that picture. The three-bit P field identified an I, P, B or D picture and was likewise constant for the picture. Four more fields carried the full-pel flags and f-codes for backward and forward motion vectors taken from the most recent Picture Header.
The field combinations followed picture type. I pictures used no motion-vector fields and set them all to zero. P pictures used the forward pair and zeroed the backward pair. B pictures could use all four. This repeated state was deliberately smaller than the original compressed-video context. It was enough to reconstruct selected header information, not enough to reproduce the picture.
Repetition mattered because a Picture Header could vanish with one packet. Without a second copy of its essential values, even a later slice boundary might not tell the decoder which kind of picture it was entering or how its motion vectors should be interpreted. By placing those values in every packet, the format broke that dependency at the next usable slice.
The repetition also created a consistency signal. Unexpected changes in TR and P could indicate that a GOP Header or Picture Header had been lost. Appendix 1 proposed counters for reference pictures and dependent pictures and compared those expectations with the repeated Temporal Reference. A mismatch was evidence that the receiver’s expected picture progression and the packet’s declaration no longer agreed.
It was not proof of the missing header’s contents. The mismatch could identify a discontinuity; it could not recover the original time code or establish why the expected packet was absent.
Rebuilding a header was an explicit approximation
RFC 2038 suggested a path after those mismatches. A lost GOP Header could be reconstructed with a null time code, the previous GOP’s closed_gop flag, and broken_link set to one. A lost Picture Header could be rebuilt at the next Beginning-of-slice from P, TR, the four vector fields and stream-dependent default values.
The words “reconstructed” and “sufficient state” are easy to overread. The procedure assembled a usable substitute so decoding could be attempted. It did not recover the vanished header byte for byte. The null time code was not the sender’s missing time code. A repeated old flag was not independent confirmation of the new GOP. A default was a receiver assumption, not an observation.
broken_link=1 made the limitation visible. The reconstructed structure told the decoder that the link across the break was not trustworthy. That is a stronger design than pretending the discontinuity never happened, but it remains a statement about how to continue processing, not a certificate that prediction dependencies are now satisfied.
A sequence gap authorized discard, not a verdict
Appendix 1 gave the operational sequence plainly. When packet loss was indicated by a gap in RTP sequence numbers, a receiver could discard every following packet until one arrived with Beginning-of-slice set. At that point, RFC 2038 said enough state was available to start MPEG processing at the next slice boundary, possibly after reconstructing the GOP or Picture Header.
RTP sequence numbers increment for transmitted data packets and can help detect loss and restore sender order. Yet RTP itself did not guarantee delivery, in-order delivery, timely delivery or quality of service. A gap at one receiver establishes a discontinuity in what that receiver observed. It does not identify a physical drop, distinguish loss from reordering or incomplete capture, or prove what the missing packet contained.
Discarding to B is therefore a damage-containment policy. It avoids handing the decoder continuation bytes whose required beginning is gone. It sacrifices possibly intact data until a safer declared boundary appears. The cost is deliberate: local recoverability is purchased by admitting that some surviving bytes cannot be trusted in context.
Seven receipts must not be collapsed into one
An investigation of this format should keep seven observations separate.
First is RTP sequence continuity. Second is the packet’s B/E declaration. Third is parsed MPEG boundary syntax. Fourth is the repeated TR/P/vector state. Fifth is availability and integrity of required reference pictures. Sixth is decoder output and concealment behaviour. Seventh is timed playout and audience observation.
Evidence at an earlier layer can justify collecting the next layer. It cannot substitute for it. A clean B/E pattern does not prove a complete picture. Plausible TR/P values do not prove the sender’s lost header. Successful parsing does not prove correct prediction from reference frames. A decoded frame does not prove continuous presentation. A player event does not prove that a person saw or accepted the result.
This hierarchy preserves RFC 2038’s real contribution. It exposed the minimum state needed to make a local restart decision. It did not claim that the decision repaired history.
A short-lived standard left a durable lesson
RFC 2038 was published in October 1996 as a Proposed Standard and was obsoleted by RFC 2250 in January 1998. The current IANA RTP registry lists static payload type 32 as MPV at 90 kHz and cites RFC 2250. That registration is evidence of an assigned parameter, not of present deployment, implementation quality or use on a particular network.
The historical lesson sits below codec fashion. Resilience improves when a compressed format’s real recovery unit is exposed at the packet boundary and the smallest necessary state is repeated nearby. But the metadata must retain its proper rank. A restart boundary is permission to try again. It is not proof that the picture before or after it was whole.
Sources
Member Briefing
Deeper Profile Context
Sign in with the right membership level to unlock the full briefing and source notes.
Only for Strategic Circle
Strategic Circle
Open to all readers. Unlock profile briefings after joining and signing in.
Join Strategic CircleOnly for Leadership Alliance
Leadership Alliance
For qualified IP-asset owners and management; sign in to unlock alliance briefings.
Join Leadership Alliance

