Last week, Draft 22 was waiting by the door.

This week it came in. There was a small change to the lock.

September 28–October 4 brought a new transport draft, a discussion about where optional features belong, a letter to MPEG, and implementation work on refusing requests and restarting relays without unnecessary drama.

MOQ has reached the part of growing up where reading the small print is useful.

Unfortunately, the small print has subsections.

Draft 22 brought one small exception

MOQT Draft 22 landed on October 1. It is still a Working Group Internet-Draft, with the usual entitlement to change its mind.

Most of the update is editorial. The exception matters to anyone writing a decoder: the Location Filter wire format now uses an explicit type instead of a length prefix.

A Location Filter says where delivery should start or end: the current group, a particular object, a bounded range, or the next object, for example. The new type tells the receiver which form it is reading and which fields follow.

In his release explanation, Ian Swett said many implementations had not built the new Location Filters yet, so the editors preferred to make the change now.

That qualifies last week’s expectation that Draft 22 would remain wire-equivalent to 20 and 21. The published version has an exception. Implementers need to account for it.

The changelog has a footnote. The decoder has work to do.

Optional features would like an address

On September 28, the chairs opened a discussion about the eventual home of top-N and Sender-Side Track Switching: inside the core MOQT document, or in separate extension RFCs?

Top-N proposes selecting a limited number of tracks according to a specified track or object property. SSTS lets the subscriber group aligned alternatives into switching sets, then have the sender choose which track to forward.

Useful jobs. Still proposed mechanisms.

The chairs say the group has rough consensus to finish this work in some form. Their message explicitly does not start the consensus call. It asks people to consider the longer-term tradeoffs and discuss them before Seattle.

Putting a feature in the main document may make it harder to overlook. Giving it its own RFC may make later revision easier. Either way, an optional feature still needs an implementer to do the optional work.

Standards apparently have the same storage problem as everyone else: one enormous drawer, or several drawers whose contents you must remember.

LOCMAF wrote to the neighbours

In the Amsterdam issue, the Working Group planned to contact MPEG about LOCMAF. This week that correspondence became public: a liaison to MPEG’s WG3 was posted on September 28, following its September 17 submission. The group wants MPEG’s feedback before proceeding to a formal adoption call.

LOCMAF tackles an awkward bit of low-latency media arithmetic: a CMAF chunk’s header can be as large as, or larger than, a small compressed audio frame.

The envelope is competing with the letter.

The proposed packaging represents chunk-header metadata compactly while leaving the media sample data unchanged. A group begins with a full reference; later objects can carry differences. The receiver reconstructs CMAF, including the encryption metadata needed by existing DRM pipelines.

This is packaging work. Adoption remains pending, with feedback requested by October 30.

A hopeful solid data packet posts a small envelope while cradling an intact film reel; a large empty carton sits beside it.
Less packaging. The film stays intact.

The relay learned a polite refusal

The October 3 moq-relay 0.17.0 release includes a useful distinction: a request can be legal even when this implementation cannot fulfil it.

Request-decoding fixes accept valid wire forms and return a per-request NOT_SUPPORTED for unsupported operations, instead of terminating the whole session with a protocol violation. The cases include subscription filters and fetch options the implementation does not handle.

That keeps one refused request from evicting the rest of the conversation.

This is conformance work in one implementation. It does not prove universal interoperability. It does make meeting another implementation considerably less confrontational.

Leaving without slamming the door

Last week’s moq.dev release included reconnect handling for relay migration. The new release adds graceful relay draining through GOAWAY: the relay’s side of preparing everyone for its departure.

Instead of immediately dropping sessions during a restart, the relay gives clients notice and a deadline. Clients can resolve the destination again and migrate while the old session remains available during the handover window.

There are still follow-ups, including JavaScript group-boundary handover and preventing new requests on the old session after GOAWAY. A graceful-shutdown mechanism is useful; a promise that every restart is invisible would be premature.

A sharp-edged data packet holds a lit doorway open and welcomes two travellers from a closing doorway, a metaphor for a relay handover.
Please finish moving the stream before switching off the lights.

Built with MOQ: Meetecho’s media lab

Meetecho’s imquic examples give you a small media lab: capture a microphone and webcam, send both through a MOQ relay, then play them at a receiver while inspecting the object metadata.

Your webcam finally gets a protocol diagram of its own.

These are existing build-it-yourself demos in an alpha library. The fresh development is MoQT 20/21 support, merged October 1, with the examples updated alongside it.

Useful for seeing the pieces work together. Bring a compiler; this one is a workbench, not a streaming service.

Next up: DEMOQED

One for the coming week: DEMOQED brings MOQ talks and demos to San Francisco’s Alamo Drafthouse on Thursday, October 8. The MoQ Alliance is gathering people building applications and deployments; the event page has the speakers and tickets.

A protocol conference in a cinema. Finally, the packets get a bigger screen.

Read before restarting

The details this week have direct consequences: a decoder must recognize the new filter type, a relay must distinguish an unsupported request from a broken session, and a restart needs time for the stream to move.

MOQ is getting better at explaining exactly what it means.

The magnifying glass stays on the desk.