Conversation
Add new section on MSF URL construction and reserved query arguments.
Correct character representation and formatting in ABNF section.
michalhosna
left a comment
There was a problem hiding this comment.
Thanks, Will! This addresses a lot of my nitpicks from #72, sorry for them.
I do expect some MSF URL definitions may need additional work once the text on the URL handling exists.
| Component Definitions: | ||
| * Scheme: Defines the underlying transport. | ||
| * moqt: Indicates a raw QUIC connection. | ||
| * https: Indicates a WebTransport connection. |
There was a problem hiding this comment.
For reasons mentioned before. I would still suggest a different scheme than HTTPS for the WT implementation.
(Suggestion, non-blocking, free-to-ignore)
| * location-range - a range defined by start and end media MOQT Location tuples and | ||
| expressed as Start Group ID, Start Object ID, End Group ID, End Object ID, each | ||
| separated by a "-" dash. The End Group ID and End Object ID MAY be omitted to | ||
| indicate an open range in which the first two values are interpreted as | ||
| StartGroupID-StartObjectID. |
There was a problem hiding this comment.
| * location-range - a range defined by start and end media MOQT Location tuples and | |
| expressed as Start Group ID, Start Object ID, End Group ID, End Object ID, each | |
| separated by a "-" dash. The End Group ID and End Object ID MAY be omitted to | |
| indicate an open range in which the first two values are interpreted as | |
| StartGroupID-StartObjectID. | |
| * location-range - a range defined by start and end media MOQT Location | |
| separated by a "-" dash. MOQT Location is expressed as Group ID and Object ID | |
| separated by a "." dot. End Location may be omitted to indicate an open range. | |
| End Object ID may be ommited, indicating the whole end group is included in | |
| the range. The "." dot and "-" dash separators MUST be omitted when the second value is ommited. |
I think separating 4 values of different types with the same character with the possibility of omitting some is confusing. I would fear that StartGroupID-StartObjectID may be easily confused for a case of StartGroupID-EndGroupID. Which I think also makes sense to support. Or at least support not sending the end object ID.
| * location-range=34-0-2145-16 | ||
| * location-range=16-24 |
There was a problem hiding this comment.
| * location-range=34-0-2145-16 | |
| * location-range=16-24 | |
| * location-range=34.0-2145.16 | |
| * location-range=16.24 |
If https://github.com/moq-wg/msf/pull/87/changes#r2700596913 is accepted
| * percent-encoded using a period (.) followed by two lowercase hexadecimal digits | ||
| (e.g., a literal hyphen in a name becomes .2d). | ||
|
|
||
| Note: This encoding ensures that the structural delimiters (- and --) remain unambiguous. |
There was a problem hiding this comment.
Is there a reason to not at least note that this is following MOQT formatting recommendations?
| start-loc = group-id "-" object-id | ||
| end-loc = group-id "-" object-id |
There was a problem hiding this comment.
| start-loc = group-id "-" object-id | |
| end-loc = group-id "-" object-id | |
| start-loc = group-id "." object-id | |
| end-loc = group-id [ "." object-id ] |
Maybe also making Start object id optional with default value of 0 makes sense?
| An MSF URL identifies a MOQT session and an optional sub-resource within that session. | ||
| It follows the generic URI syntax: | ||
|
|
||
| scheme : // authority / path ? query # fragment |
There was a problem hiding this comment.
For my own understanding, any reason why we moved away from query parameter. Fragments have its own shortcomings.
|
Idea for fragment parameters #117 |
Adds new section on MSF URL construction that is #fragment-based.
Example MSF URLs:
URl with a Webtransport connection pointing at a catalog track
https://example.com/server/config?a=1&b=2#customer-livestream-123--catalogURL with a raw QUIC connection pointing at a catalog
moqt://example.com/relay-app/relayID#customerID-broadcastID--catalogURL pointing at a non-catalog track
https://example.com/relay-app/relayID#customerID-broadcastID--videoURL pointing at a subclip of a catalog
https://example.com/relay-app/relayID?location-range=34-0-64-16#customerID-broadcastID--catalogURL pointing at a catalog and supplying a token
Fixes: #60