# VisionFramePacket

<a id="visionframepacket"></a>

# VisionFramePacket

```cpp
#include <icy/vision/framepacket.h>

struct VisionFramePacket
```

[Defined in src/vision/include/icy/vision/framepacket.h:25](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L25)

> **Inherits:** [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket)

Owned detector-ready frame buffer carrying stable frame metadata.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`context`](#context-7) | `variable` | Declared here |
| [`VisionFramePacket`](#visionframepacket-1) | `function` | Declared here |
| [`VisionFramePacket`](#visionframepacket-2) | `function` | Declared here |
| [`operator=`](#operator-251) | `function` | Declared here |
| [`VisionFramePacket`](#visionframepacket-3) | `function` | Declared here |
| [`operator=`](#operator-252) | `function` | Declared here |
| [`~VisionFramePacket`](#visionframepacket-4) | `function` | Declared here |
| [`clone`](#clone-23) | `function` | Declared here |
| [`className`](#classname-16) | `function` | Declared here |
| [`valid`](#valid-17) | `function` | Declared here |
| [`buffer`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#buffer-2) | `variable` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`linesize`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#linesize) | `variable` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`pixelFmt`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#pixelfmt-1) | `variable` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`owns_buffer`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#owns_buffer) | `variable` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`avframe`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#avframe) | `variable` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket-1) | `function` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket-2) | `function` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`~PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket-3) | `function` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`clone`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#clone-6) | `function` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`className`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#classname-7) | `function` | Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket) |
| [`width`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#width-2) | `variable` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`height`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#height-2) | `variable` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`iframe`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#iframe) | `variable` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`avpacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#avpacket) | `variable` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket-1) | `function` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket-2) | `function` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`~VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket-3) | `function` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`clone`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#clone-5) | `function` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`className`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#classname-6) | `function` | Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) |
| [`time`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#time-2) | `variable` | Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket) |
| [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-1) | `function` | Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket) |
| [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-2) | `function` | Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket) |
| [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-3) | `function` | Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket) |
| [`~MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-4) | `function` | Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket) |
| [`clone`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#clone-4) | `function` | Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket) |
| [`className`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#classname-5) | `function` | Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket) |
| [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-5) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-6) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-7) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`~RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-8) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`clone`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#clone-3) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`copyData`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#copydata) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`read`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#read-2) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`write`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#write-14) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`data`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#data-4) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`size`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#size-7) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`className`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#classname-2) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`ownsBuffer`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#ownsbuffer) | `function` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`_data`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#_data-2) | `variable` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`_size`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#_size-2) | `variable` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`_owned`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#_owned) | `variable` | Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4) |
| [`operator<<`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-41) | `friend` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`opaque`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#opaque) | `variable` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`info`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#info) | `variable` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`flags`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#flags) | `variable` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-2) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-42) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`clone`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#clone-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`~IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-3) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`read`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#read-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`write`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#write-4) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`size`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#size-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#hasdata) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`data`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#data-2) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`constData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#constdata) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`className`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#classname-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`print`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#print) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |

## Inherited from [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket)

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`buffer`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#buffer-2)  |  |
| `variable` | [`linesize`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#linesize)  |  |
| `variable` | [`pixelFmt`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#pixelfmt-1)  |  |
| `variable` | [`owns_buffer`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#owns_buffer)  |  |
| `variable` | [`avframe`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#avframe)  | Non-owning pointer to the decoded AVFrame from FFmpeg. Set by [VideoDecoder](https://auscaster.com/icey/docs/api-reference/icy-av-VideoDecoder.md#videodecoder). |
| `function` | [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket-1)  | Construct a planar video packet, copying the plane pointers (not the pixel data). |
| `function` | [`PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket-2)  | Copy constructor. Performs a deep copy of the owned buffer if owns_buffer is set. |
| `function` | [`~PlanarVideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#planarvideopacket-3) `virtual` `noexcept` |  |
| `function` | [`clone`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#clone-6) `virtual` `const` `inline` `override` |  |
| `function` | [`className`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#classname-7) `virtual` `const` `inline` `override` | Returns the class name of this packet type for logging and diagnostics. |

## Inherited from [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket)

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`width`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#width-2)  | Frame width in pixels. |
| `variable` | [`height`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#height-2)  | Frame height in pixels. |
| `variable` | [`iframe`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#iframe)  | True if this is an intra (keyframe) frame. |
| `variable` | [`avpacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#avpacket)  | Non-owning pointer to the encoded AVPacket from FFmpeg. Set by [VideoEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-VideoEncoder.md#videoencoder), read by [MultiplexEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-MultiplexEncoder.md#multiplexencoder). |
| `function` | [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket-1) `inline` | Construct a video packet with an interleaved buffer. |
| `function` | [`VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket-2) `inline` | Copy constructor. The avpacket pointer is shallow-copied (non-owning). |
| `function` | [`~VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket-3) `virtual` | Defaulted destructor. |
| `function` | [`clone`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#clone-5) `virtual` `const` `inline` `override` |  |
| `function` | [`className`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#classname-6) `virtual` `const` `inline` `override` | Returns the class name of this packet type for logging and diagnostics. |

## Inherited from [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket)

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`time`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#time-2)  | Presentation timestamp in microseconds. |
| `function` | [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-1) `inline` | Construct with a non-owning or owning mutable buffer. |
| `function` | [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-2) `inline` | Construct with const data (copied, owning). |
| `function` | [`MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-3) `inline` | Copy constructor. |
| `function` | [`~MediaPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#mediapacket-4) `virtual` | Defaulted destructor. |
| `function` | [`clone`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#clone-4) `virtual` `const` `inline` `override` |  |
| `function` | [`className`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md#classname-5) `virtual` `const` `inline` `override` | Returns the class name of this packet type for logging and diagnostics. |

## Inherited from [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-4)

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-5) `inline` | Construct with borrowed (non-owning) buffer. |
| `function` | [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-6) `inline` | Construct with const data (copied, owning). |
| `function` | [`RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-7) `inline` | Copy constructor (always copies data). |
| `function` | [`~RawPacket`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#rawpacket-8) `virtual` | Defaulted destructor. |
| `function` | [`clone`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#clone-3) `virtual` `const` `inline` `override` |  |
| `function` | [`copyData`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#copydata) `virtual` `inline` | Copies data into an internally owned buffer, replacing any prior content. |
| `function` | [`read`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#read-2) `virtual` `inline` `override` | Reads from the buffer by copying its contents into an owned buffer. |
| `function` | [`write`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#write-14) `virtual` `const` `inline` `override` | Appends the packet data to the given output buffer. |
| `function` | [`data`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#data-4) `virtual` `const` `inline` `override` |  |
| `function` | [`size`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#size-7) `virtual` `const` `inline` `override` |  |
| `function` | [`className`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#classname-2) `virtual` `const` `inline` `override` | Returns the class name of this packet type for logging and diagnostics. |
| `function` | [`ownsBuffer`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#ownsbuffer) `const` `inline` |  |
| `variable` | [`_data`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#_data-2)  |  |
| `variable` | [`_size`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#_size-2)  |  |
| `variable` | [`_owned`](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md#_owned)  |  |

## Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket)

| Kind | Name | Description |
|------|------|-------------|
| `friend` | [`operator<<`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-41) `inline` | [Stream](https://auscaster.com/icey/docs/api-reference/icy-Stream.md#stream) insertion operator; delegates to [print()](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#print). |
| `variable` | [`opaque`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#opaque)  | Optional type-safe context data. Use std::any_cast to retrieve. Lifetime of the stored value is tied to the packet's lifetime. |
| `variable` | [`info`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#info)  | Optional extra information about the packet. |
| `variable` | [`flags`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#flags)  | Provides basic information about the packet. |
| `function` | [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-1) `inline` |  |
| `function` | [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-2) `inline` | Copy constructor; clones the info object if present. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-42) `inline` | Copy assignment; clones the info object if present. |
| `function` | [`clone`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#clone-1) `virtual` `const` | Returns a heap-allocated deep copy of this packet. |
| `function` | [`~IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-3) `virtual` | Defaulted destructor. |
| `function` | [`read`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#read-1) `virtual` | Read/parse to the packet from the given input buffer. The number of bytes read is returned. |
| `function` | [`write`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#write-4) `virtual` `const` | Copy/generate to the packet given output buffer. The number of bytes written can be obtained from the buffer. |
| `function` | [`size`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#size-1) `virtual` `const` `inline` | The size of the packet in bytes. |
| `function` | [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#hasdata) `virtual` `const` `inline` | Returns true if the packet has a non-null data pointer. |
| `function` | [`data`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#data-2) `virtual` `const` `inline` | The packet data pointer for buffered packets. |
| `function` | [`constData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#constdata) `virtual` `const` `inline` | The const packet data pointer for buffered packets. |
| `function` | [`className`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#classname-1) `virtual` `const` | Returns the class name of this packet type for logging and diagnostics. |
| `function` | [`print`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#print) `virtual` `const` `inline` | Prints a human-readable representation to the given stream. |

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`VisionFrameContext`](https://auscaster.com/icey/docs/api-reference/icy-vision-VisionFrameContext.md#visionframecontext) | [`context`](#context-7)  |  |

---

<a id="context-7"></a>

### context

```cpp
VisionFrameContext context
```

Type: [`VisionFrameContext`](https://auscaster.com/icey/docs/api-reference/icy-vision-VisionFrameContext.md#visionframecontext)

[Defined in src/vision/include/icy/vision/framepacket.h:27](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L27)

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`VisionFramePacket`](#visionframepacket-1)  |  |
|  | [`VisionFramePacket`](#visionframepacket-2)  |  |
| [`VisionFramePacket`](#visionframepacket) & | [`operator=`](#operator-251)  | Deleted assignment operator. |
|  | [`VisionFramePacket`](#visionframepacket-3)  | Deleted constructor. |
| [`VisionFramePacket`](#visionframepacket) & | [`operator=`](#operator-252)  | Deleted assignment operator. |
|  | [`~VisionFramePacket`](#visionframepacket-4) `noexcept` `override` | Defaulted destructor. |
| std::unique_ptr< [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) > | [`clone`](#clone-23) `virtual` `const` `inline` `override` |  |
| `const char *` | [`className`](#classname-16) `virtual` `const` `inline` `override` | Returns the class name of this packet type for logging and diagnostics. |
| `bool` | [`valid`](#valid-17) `const` `inline` |  |

---

<a id="visionframepacket-1"></a>

### VisionFramePacket

```cpp
VisionFramePacket(const av::PlanarVideoPacket & packet, VisionFrameContext context = {})
```

[Defined in src/vision/include/icy/vision/framepacket.h:29](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L29)

---

<a id="visionframepacket-2"></a>

### VisionFramePacket

```cpp
VisionFramePacket(const VisionFramePacket & that)
```

[Defined in src/vision/include/icy/vision/framepacket.h:31](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L31)

---

<a id="operator-251"></a>

### operator=

```cpp
VisionFramePacket & operator=(const VisionFramePacket &) = delete
```

[Defined in src/vision/include/icy/vision/framepacket.h:32](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L32)

Deleted assignment operator.

---

<a id="visionframepacket-3"></a>

### VisionFramePacket

```cpp
VisionFramePacket(VisionFramePacket &&) = delete
```

[Defined in src/vision/include/icy/vision/framepacket.h:33](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L33)

Deleted constructor.

---

<a id="operator-252"></a>

### operator=

```cpp
VisionFramePacket & operator=(VisionFramePacket &&) = delete
```

[Defined in src/vision/include/icy/vision/framepacket.h:34](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L34)

Deleted assignment operator.

---

<a id="visionframepacket-4"></a>

### ~VisionFramePacket

`noexcept` `override`

```cpp
~VisionFramePacket() noexcept override = default
```

[Defined in src/vision/include/icy/vision/framepacket.h:35](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L35)

Defaulted destructor.

---

<a id="clone-23"></a>

### clone

`virtual` `const` `inline` `override`

```cpp
virtual inline std::unique_ptr< IPacket > clone() const override
```

[Defined in src/vision/include/icy/vision/framepacket.h:37](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L37)

#### Returns
A heap-allocated deep copy of this packet.

#### Reimplements

- [`PlanarVideoPacket::clone`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#clone-6)

---

<a id="classname-16"></a>

### className

`virtual` `const` `inline` `override`

```cpp
virtual inline const char * className() const override
```

[Defined in src/vision/include/icy/vision/framepacket.h:42](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L42)

Returns the class name of this packet type for logging and diagnostics.

#### Reimplements

- [`PlanarVideoPacket::className`](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md#classname-7)

---

<a id="valid-17"></a>

### valid

`const` `inline`

```cpp
inline bool valid() const
```

[Defined in src/vision/include/icy/vision/framepacket.h:44](https://github.com/auscaster/icey/blob/main/src/vision/include/icy/vision/framepacket.h#L44)
