# `ExSDP.RepeatTimes`
[🔗](https://github.com/membraneframework/ex_sdp/blob/v1.1.4/lib/ex_sdp/repeat_times.ex#L1)

This module represents the field of SDP that specifies
rebroadcasts of a session. Works directly in conjunction
with timing `t` parameter.

 - active_duration - how long session will last
 - repeat_interval - interval of session rebroadcast
 - offsets - offset between scheduled rebroadcast

If `start_time` of `t` is set to today 3 pm, `active_duration` is set
to `3h`, `repeat_interval` is set to `14d` and `offsets` are `0 4d`
then the session will be rebroadcasted today at 3 pm and on Thursday 3 pm
every two week until `end_time` of param `t`.

For more details please see [RFC4566 Section 5.10](https://tools.ietf.org/html/rfc4566#section-5.10).

# `reason`

```elixir
@type reason() ::
  :duration_nan
  | :interval_nan
  | :no_offsets
  | :malformed_repeat
  | {:invalid_offset | :invalid_unit, binary()}
```

# `t`

```elixir
@type t() :: %ExSDP.RepeatTimes{
  active_duration: non_neg_integer(),
  offsets: [non_neg_integer()],
  repeat_interval: non_neg_integer()
}
```

# `parse`

```elixir
@spec parse(binary()) :: {:ok, t()} | {:error, reason()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
