lib/membrane/event/discontinuity.ex

defmodule Membrane.Event.Discontinuity do
  @moduledoc """
  Generic discontinuity event.

  This event means that flow of buffers in the stream was interrupted, but stream
  itself is not done.

  Frequent reasons for this are soundcards drops while capturing sound, network
  data loss etc.

  If duration of the discontinuity is known, it can be passed as an argument.
  """
  @derive Membrane.EventProtocol

  @type duration :: Membrane.Time.t() | nil

  defstruct duration: nil

  @typedoc @moduledoc
  @type t :: %__MODULE__{duration: duration}
end