---
title: IOUserVideoStream
framework: VideoDriverKit
role: symbol
role_heading: Class
platforms: [driverkit 27.0+]
path: videodriverkit/iouservideostream
---

# IOUserVideoStream

A video stream.

## Declaration

```occ
class IOUserVideoStream;
```

## Overview

Overview IOUserVideoDevice instances own IOUserVideoStream instances. IOUserVideoStream allocates memory descriptors that the host uses for running IO. Changes to the owning IOUserVideoDevice will potentially update formats on the underlying IOUserVideoStream.

## Topics

### Creating a video stream

- [Create](videodriverkit/iouservideostream/create.md)
- [init](videodriverkit/iouservideostream/init.md)
- [IOUserVideoDriver](videodriverkit/iouservideodriver.md)

### Freeing a video stream

- [free](videodriverkit/iouservideostream/free.md)

### Getting information about the class

- [GetClassID](videodriverkit/iouservideostream/getclassid.md)
- [GetBaseClassID](videodriverkit/iouservideostream/getbaseclassid.md)
- [IOUserVideoClassID](videodriverkit/videodriverkit/iouservideoclassid.md)

### Performing I/O

- [StartIO](videodriverkit/iouservideostream/startio.md)
- [StopIO](videodriverkit/iouservideostream/stopio.md)
- [IOUserVideoStartStopFlags](videodriverkit/videodriverkit/iouservideostartstopflags.md)
- [InputNotification](videodriverkit/iouservideostream/inputnotification.md)

### Working with stream formats

- [SetCurrentStreamFormat](videodriverkit/iouservideostream/setcurrentstreamformat.md)
- [GetCurrentStreamFormat](videodriverkit/iouservideostream/getcurrentstreamformat.md)
- [SetAvailableStreamFormats](videodriverkit/iouservideostream/setavailablestreamformats.md)
- [GetAvailableStreamFormats](videodriverkit/iouservideostream/getavailablestreamformats.md)
- [GetNumberAvailableStreamFormats](videodriverkit/iouservideostream/getnumberavailablestreamformats.md)
- [IOUserVideoStreamBasicDescription](videodriverkit/videodriverkit/iouservideostreambasicdescription.md)
- [GetStreamDirection](videodriverkit/iouservideostream/getstreamdirection.md)
- [IOUserVideoStreamDirection](videodriverkit/videodriverkit/iouservideostreamdirection.md)
- [SetStreamIsActive](videodriverkit/iouservideostream/setstreamisactive.md)
- [GetStreamIsActive](videodriverkit/iouservideostream/getstreamisactive.md)

### Working with stream terminals

- [SetTerminalType](videodriverkit/iouservideostream/setterminaltype.md)
- [GetTerminalType](videodriverkit/iouservideostream/getterminaltype.md)
- [IOUserVideoStreamTerminalType](videodriverkit/videodriverkit/iouservideostreamterminaltype.md)

### Working with memory descriptors

- [GetOutputControlMemoryDescriptor](videodriverkit/iouservideostream/getoutputcontrolmemorydescriptor.md)
- [GetOutputDataMemoryDescriptor](videodriverkit/iouservideostream/getoutputdatamemorydescriptor.md)
- [GetOutputQueueMemoryDescriptor](videodriverkit/iouservideostream/getoutputqueuememorydescriptor.md)
- [GetInputQueueMemoryDescriptor](videodriverkit/iouservideostream/getinputqueuememorydescriptor.md)
- [GetMemoryObjectID](videodriverkit/iouservideostream/getmemoryobjectid.md)

### Managing stream changes

- [HandleChangeCurrentStreamFormat](videodriverkit/iouservideostream/handlechangecurrentstreamformat.md)
- [HandleChangeStreamIsActive](videodriverkit/iouservideostream/handlechangestreamisactive.md)
- [DeviceSampleRateChanged](videodriverkit/iouservideostream/devicesampleratechanged.md)

### Working with video buffers

- [GetBufferCount](videodriverkit/iouservideostream/getbuffercount.md)
- [GetBufferList](videodriverkit/iouservideostream/getbufferlist.md)
- [GetBufferWithID](videodriverkit/iouservideostream/getbufferwithid.md)
- [addBuffer](videodriverkit/iouservideostream/addbuffer.md)
- [addBuffers](videodriverkit/iouservideostream/addbuffers.md)
- [enqueueOutputBuffer](videodriverkit/iouservideostream/enqueueoutputbuffer.md)
- [IOUserVideoBuffer](videodriverkit/iouservideobuffer.md)
- [removeAllBuffers](videodriverkit/iouservideostream/removeallbuffers.md)
- [SendOutputBufferNotification](videodriverkit/iouservideostream/sendoutputbuffernotification.md)

### Working with channels

- [SetStartingChannel](videodriverkit/iouservideostream/setstartingchannel.md)
- [GetStartingChannel](videodriverkit/iouservideostream/getstartingchannel.md)

### Working with queues

- [GetInputQueue](videodriverkit/iouservideostream/getinputqueue.md)
- [GetOutputQueue](videodriverkit/iouservideostream/getoutputqueue.md)
- [createQueues](videodriverkit/iouservideostream/createqueues.md)
- [destroyQueues](videodriverkit/iouservideostream/destroyqueues.md)
- [dequeueInputEntry](videodriverkit/iouservideostream/dequeueinputentry.md)
- [enqueueOutputEntry](videodriverkit/iouservideostream/enqueueoutputentry.md)
- [SendBufferQueueChange](videodriverkit/iouservideostream/sendbufferqueuechange.md)
- [IOStreamBufferQueue](videodriverkit/iostreambufferqueue.md)

### Stream memory types

- [kIOStreamMemoryTypeBufferControl](videodriverkit/kiostreammemorytypebuffercontrol.md)
- [kIOStreamMemoryTypeBufferData](videodriverkit/kiostreammemorytypebufferdata.md)
- [kIOStreamMemoryTypeInputQueue](videodriverkit/kiostreammemorytypeinputqueue.md)
- [kIOStreamMemoryTypeMask](videodriverkit/kiostreammemorytypemask.md)
- [kIOStreamMemoryTypeOutputQueue](videodriverkit/kiostreammemorytypeoutputqueue.md)

## Relationships

### Inherits From

- [IOUserVideoObject](videodriverkit/iouservideoobject.md)
