MOQX.Protocol.MOQTDraft16.Codec (moqx v0.10.0)

Copy Markdown View Source

Wire primitives for the standard MOQT draft-16 implementation.

Summary

Functions

client_setup(endpoint)

@spec client_setup(URI.t()) :: binary()

decode_control(buffer)

@spec decode_control(binary()) ::
  {:ok, [{non_neg_integer(), binary()}], binary()} | {:error, term()}

decode_datagram(payload)

@spec decode_datagram(binary()) :: {:ok, map()} | {:error, :invalid_datagram}

decode_max_request_id(payload)

@spec decode_max_request_id(binary()) ::
  {:ok, non_neg_integer()} | {:error, :invalid_max_request_id}

decode_publish_done(payload)

@spec decode_publish_done(binary()) ::
  {:ok,
   %{
     request_id: non_neg_integer(),
     status_code: non_neg_integer(),
     stream_count: non_neg_integer(),
     reason: binary()
   }}
  | {:error, :invalid_publish_done}

decode_publish_namespace_cancel(payload)

@spec decode_publish_namespace_cancel(binary()) ::
  {:ok,
   %{
     request_id: non_neg_integer(),
     error_code: non_neg_integer(),
     reason: binary()
   }}
  | {:error, :invalid_publish_namespace_cancel}

decode_publish_ok(payload)

@spec decode_publish_ok(binary()) ::
  {:ok,
   %{request_id: non_neg_integer(), parameters: [SubscriptionParameter.t()]}}
  | {:error, :invalid_publish_ok}

decode_request_error(payload)

@spec decode_request_error(binary()) ::
  {:ok,
   %{
     request_id: non_neg_integer(),
     error_code: non_neg_integer(),
     reason: binary()
   }}
  | {:error, :invalid_request_error}

decode_request_ok(payload)

@spec decode_request_ok(binary()) ::
  {:ok,
   %{request_id: non_neg_integer(), parameters: [SubscriptionParameter.t()]}}
  | {:error, :invalid_request_ok}

decode_server_setup(payload)

@spec decode_server_setup(binary()) ::
  {:ok,
   %{
     max_request_id: non_neg_integer(),
     parameters: [MOQX.SubscriptionParameter.t()]
   }}
  | {:error, :invalid_server_setup}

decode_subscribe(payload)

@spec decode_subscribe(binary()) :: {:ok, map()} | {:error, :invalid_subscribe}

decode_subscribe_ok(payload)

@spec decode_subscribe_ok(binary()) ::
  {:ok,
   %{
     request_id: non_neg_integer(),
     track_alias: non_neg_integer(),
     parameters: [MOQX.SubscriptionParameter.t()],
     track_extensions: [MOQX.Extension.t()]
   }}
  | {:error, :invalid_subscribe_ok}

decode_unsubscribe(payload)

@spec decode_unsubscribe(binary()) ::
  {:ok, %{request_id: non_neg_integer()}} | {:error, :invalid_unsubscribe}

decode_varint(binary)

@spec decode_varint(binary()) ::
  {:ok, non_neg_integer(), binary()} | :more | {:error, :invalid_varint}

encode_datagram(track_alias, object)

@spec encode_datagram(non_neg_integer(), MOQX.Object.t()) :: binary()

encode_subgroup(track_alias, object)

@spec encode_subgroup(non_neg_integer(), MOQX.Object.t()) :: binary()

encode_varint(value)

@spec encode_varint(non_neg_integer()) :: binary()

publish_done(request_id, status, stream_count, reason)

@spec publish_done(non_neg_integer(), non_neg_integer(), non_neg_integer(), binary()) ::
  binary()

publish_namespace(request_id, namespace)

@spec publish_namespace(non_neg_integer(), [binary()]) :: binary()

publish_namespace_done(request_id)

@spec publish_namespace_done(non_neg_integer()) :: binary()

publish_track(request_id, track, track_alias, options \\ [])

@spec publish_track(
  non_neg_integer(),
  MOQX.TrackRef.t(),
  non_neg_integer(),
  keyword()
) :: binary()

request_error(request_id, error_code, reason, retry_interval \\ 0)

@spec request_error(non_neg_integer(), non_neg_integer(), binary(), non_neg_integer()) ::
  binary()

request_update(request_id, existing_request_id, options)

@spec request_update(non_neg_integer(), non_neg_integer(), keyword()) :: binary()

subscribe(request_id, track, options)

@spec subscribe(non_neg_integer(), MOQX.TrackRef.t(), keyword()) :: binary()

subscribe_ok(request_id, track_alias, options \\ [])

@spec subscribe_ok(non_neg_integer(), non_neg_integer(), keyword()) :: binary()

unsubscribe(request_id)

@spec unsubscribe(non_neg_integer()) :: binary()