# `VideoInterop.Format`
[🔗](https://github.com/emerge-elixir/video_interop/blob/v0.1.2/lib/video_interop/format.ex#L1)

Framework-neutral video format associated with a sequence of frames.

`framerate: nil` represents an unknown cadence. `storage` contains the binary
or DMA-BUF format separately from the outer video interpretation fields.
`acquire_sync` declares implicit synchronization, sync files, or a
compatibility per-frame mix.

# `acquire_sync`

```elixir
@type acquire_sync() :: :implicit | :sync_file | :per_frame
```

# `interlace_mode`

```elixir
@type interlace_mode() ::
  :progressive | :interlaced_top_first | :interlaced_bottom_first | :mixed
```

# `t`

```elixir
@type t() :: %VideoInterop.Format{
  acquire_sync: acquire_sync(),
  alpha_mode: :opaque | :straight | :premultiplied,
  colorimetry: VideoInterop.Colorimetry.t(),
  framerate: {pos_integer(), pos_integer()} | nil,
  height: pos_integer(),
  interlace_mode: interlace_mode(),
  pixel_aspect_ratio: {pos_integer(), pos_integer()},
  storage: VideoInterop.Binary.Format.t() | VideoInterop.DMABuf.Format.t(),
  width: pos_integer()
}
```

---

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