Skip to content

Commit

Permalink
Add URI scheme to spec
Browse files Browse the repository at this point in the history
  • Loading branch information
cyanreg committed Dec 11, 2023
1 parent bd855d5 commit f536e8e
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 29 deletions.
29 changes: 0 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,6 @@ You can read the current rendered draft by opening the [autogenerated webpage](h

## Provisional information

### URI Scheme

The URI scheme shall be:
```
avt://[<transport>[:<mode>]@]<address>[:<port>][?<setting1>=<value1>][/<stream_id>[+<stream_id>][?<param1>=<val1]]
```

`<transport>` may be either missing (default: `udp`), `udp`, `udplite`, `quic`, or `file`.

`<mode>` is an optional setting which has different meanings for senders and receivers,
and transports. For senders, the default value, `active` means to start continuously sending
packets to the given address. `passive` means to wait for receivers to
send packets on the given address to begin transmitting back to them.

For receivers, the default value, `passive` means to listen on the given
address for any packets received. `active` for receivers means that receivers
will actively connect and try to request a stream from the target address.

`<address>` of the remote host, or local host, or multicast group

`<port>` on which to listen on/transmit to

`<stream_id>` of the stream(s) to present as default (overriding those signalled by the sender)

`<setting1>=<value1>` are a key=value pair of settings for the connection.

Alternatively, for UDP-only, the `udp://<address>:<port>` URI scheme can be used,
at the risk of conflict with other protocols (`MPEG-TS`).

### File extension
The `.avt` file extensions should be used.

Expand Down
39 changes: 39 additions & 0 deletions draft-avtransport-spec.bs
Original file line number Diff line number Diff line change
Expand Up @@ -473,6 +473,45 @@ Network Time Protocol (NTP), specified in [[RFC5905]], or any other protocol to
simply assume all device are already synchronized.


## URI scheme ## {#uri-scheme}

The recommended URI scheme is:

<code><xmp>
avt://[<transport>[:<mode>]@]<address>[:<port>][?<setting1>=<value1>][/<stream_id>[+<stream_id>][?<param1>=<val1]]
</xmp></code>

- <b><code><xmp><transport></xmp></code></b> may be either missing (default: <code>udp</code>) or:
- <code>udp</code>: for [[#udp-streaming]] streams
- <code>udplite</code>: for [[#udp-lite-streaming]] streams
- <code>quic</code>: for [[#quic-streaming]] streams
- <code>file</code>: for <b>local</b> files
- <b><code><xmp><mode></xmp></code></b> is an optional setting which has different meanings for
senders and receivers:
- <b>Senders</b>
- <b><code>active</code></b>: the default value. Means to start continuously sending
packets to the given address without attempting bidirectional communication.
- <b><code>passive</code></b> means to wait for receivers to send packets on the given
address to begin transmitting back to them.
- <b>Receivers</b>
- <b><code>passive</code></b>: the default value. means to listen on the given
address for any packets received without attempting to connect and requesting for data.
- <b><code>active</code></b>:means that receivers will actively connect and try
to request a stream from the target address.
- <b><code><xmp><address></xmp></code></b> of the remote host, or local host, multicast group, or local file.
- <b><code><xmp><port></xmp></code></b> on which to listen on/transmit to. Only valid for <code>udp</code>,
<code>udplite</code> and <code>quic</code> protocols.
- <b><code><xmp><stream_id></xmp></code></b> of the stream(s) to present as default
(overriding those signalled by the sender).
- <b><code><xmp><setting1>=<value1></xmp></code></b> are a key=value pair of settings for the connection.
Currently, all keys and values are <b>reserved</b>, and must not be present.

Note: Alternatively, for UDP-only, the <code><xmp>udp://<address>:<port></xmp></code> URI scheme may be used,
at the risk of conflict with other protocols (<code>MPEG-TS</code> or <code>Matroska</code>).

Note: When handling AVTransport files, it is recommended to use the <b>.avt</b> file extension.


# Packet structure # {#packet-structure}

This section lists the syntax of each individual packet type and specifies its purpose,
Expand Down

0 comments on commit f536e8e

Please sign in to comment.