# AudioCapture

<a id="audiocapture"></a>

# AudioCapture

```cpp
#include <icy/av/audiocapture.h>

class AudioCapture
```

[Defined in src/av/include/icy/av/audiocapture.h:26](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/audiocapture.h#L26)

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

Cross-platform audio capture device backed by FFmpeg input devices.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`AudioCapture`](#audiocapture-1) | `function` | Declared here |
| [`AudioCapture`](#audiocapture-2) | `function` | Declared here |
| [`AudioCapture`](#audiocapture-3) | `function` | Declared here |
| [`~AudioCapture`](#audiocapture-4) | `function` | Declared here |
| [`openAudio`](#openaudio-1) | `function` | Declared here |
| [`openAudio`](#openaudio-2) | `function` | Declared here |
| [`Ptr`](#ptr-5) | `typedef` | Declared here |
| [`Closing`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#closing) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`~MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-2) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-3) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#operator-151) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-4) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#operator-152) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`openFile`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#openfile-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`close`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#close-12) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`start`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#start-18) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`stop`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#stop-9) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`run`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#run-7) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`getEncoderFormat`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#getencoderformat-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`getEncoderAudioCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#getencoderaudiocodec-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`getEncoderVideoCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#getencodervideocodec-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`setLoopInput`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setloopinput) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`setLimitFramerate`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setlimitframerate) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`setRealtimePTS`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setrealtimepts) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`setOpenOptions`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setopenoptions) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`setOpenTimeoutUsec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setopentimeoutusec) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`setPassthroughVideo`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setpassthroughvideo) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`formatCtx`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#formatctx) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`video`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#video-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`audio`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#audio-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`stopping`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#stopping-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`error`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#error-9) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_mutex`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_mutex-7) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_thread`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_thread-4) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_formatCtx`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_formatctx) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_video`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_video) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_audio`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_audio) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_error`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_error-2) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_stopping`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_stopping) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_looping`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_looping) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_realtime`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_realtime) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_ratelimit`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_ratelimit) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_passthroughVideo`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_passthroughvideo) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_ioStartedUsec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_iostartedusec) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_ioTimeoutUsec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_iotimeoutusec) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_openOptions`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_openoptions) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`_videoStream`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_videostream) | `variable` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`openStream`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#openstream-1) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`emit`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#emit-7) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`markIoStart`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#markiostart) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`clearIoStart`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#cleariostart) | `function` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`Ptr`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#ptr-6) | `typedef` | Inherited from [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture) |
| [`emitter`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#emitter-5) | `variable` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture-1) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`~ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture-2) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`start`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#start-15) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`stop`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#stop-7) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`openFile`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openfile) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`close`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#close-7) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`getEncoderFormat`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#getencoderformat) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`getEncoderAudioCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#getencoderaudiocodec) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`getEncoderVideoCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#getencodervideocodec) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`openAudio`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openaudio) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`openVideo`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openvideo) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`onStreamStateChange`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#onstreamstatechange-5) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`openStream`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openstream) | `function` | Inherited from [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture) |
| [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-1) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`~PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-2) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-1) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-2) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-3) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-4) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-5) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`getEmitter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#getemitter) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`retention`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#retention-1) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`onStreamStateChange`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#onstreamstatechange-1) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`_emitter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#_emitter) | `variable` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-3) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#operator-72) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-4) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#operator-73) | `function` | Inherited from [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) |
| [`start`](https://auscaster.com/icey/docs/api-reference/icy-basic-Startable.md#start-21) | `function` | Inherited from [`Startable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Startable.md#startable) |
| [`stop`](https://auscaster.com/icey/docs/api-reference/icy-basic-Startable.md#stop-12) | `function` | Inherited from [`Startable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Startable.md#startable) |
| [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-1) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`~Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-2) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`run`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#run-11) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`cancel`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancel-7) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`cancelled`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancelled-3) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`exit`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#exit) | `variable` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |

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

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`Closing`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#closing)  | Signals that the capture thread is closing. This signal is emitted from the capture thread context. |
| `function` | [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-1)  |  |
| `function` | [`~MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-2) `noexcept` `override` |  |
| `function` | [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-3)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#operator-151)  | Deleted assignment operator. |
| `function` | [`MediaCapture`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#mediacapture-4)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#operator-152)  | Deleted assignment operator. |
| `function` | [`openFile`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#openfile-1) `virtual` `override` | Open a media file for decoding. Automatically detects video and audio streams. |
| `function` | [`close`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#close-12) `virtual` `override` | Stop the capture thread and close the media stream and all decoders. |
| `function` | [`start`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#start-18) `virtual` `override` | Start the background capture and decode thread. Throws std::runtime_error if no media streams have been opened. |
| `function` | [`stop`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#stop-9) `virtual` `override` | [Signal](https://auscaster.com/icey/docs/api-reference/icy-Signal.md#signal) the capture thread to stop and join it before returning. |
| `function` | [`run`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#run-7) `virtual` `override` | Entry point for the background capture thread. Reads and decodes packets from the format context until EOF or [stop()](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#stop-9) is called. |
| `function` | [`getEncoderFormat`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#getencoderformat-1) `virtual` `override` | Fill `format` with the combined encoder-ready video and audio codec parameters. |
| `function` | [`getEncoderAudioCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#getencoderaudiocodec-1) `virtual` `override` | Fill `params` with the decoder's output audio codec parameters. Throws std::runtime_error if audio parameters have not been initialised. |
| `function` | [`getEncoderVideoCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#getencodervideocodec-1) `virtual` `override` | Fill `params` with the decoder's output video codec parameters. Throws std::runtime_error if video parameters have not been initialised. |
| `function` | [`setLoopInput`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setloopinput)  | Continuously loop the input file when set. |
| `function` | [`setLimitFramerate`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setlimitframerate)  | Limit playback to video FPS. |
| `function` | [`setRealtimePTS`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setrealtimepts)  | Set to use realtime PTS calculation. This is preferred when using live captures as FFmpeg-provided values are not always reliable. |
| `function` | [`setOpenOptions`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setopenoptions)  | Set demuxer options applied at the next [openFile()](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#openfile-1) call. Keys map to libavformat AVOption entries (e.g. "rtsp_transport", "fflags", "analyzeduration", "probesize"). Network opens also receive a default protocol allowlist and I/O timeout unless callers override the corresponding options. Pass an empty map to clear. |
| `function` | [`setOpenTimeoutUsec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setopentimeoutusec)  | Set FFmpeg blocking I/O timeout in microseconds. Values <= 0 disable the interrupt timeout but [stop()](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#stop-9) still interrupts blocking calls. |
| `function` | [`setPassthroughVideo`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#setpassthroughvideo)  | Skip the video decoder. Encoded video AVPackets from the input stream are emitted directly as [`av::VideoPacket`](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md#videopacket) without decoding. The emitted packets carry the source's encoded payload and a `time` in microseconds rescaled from the stream's timebase. The `iframe` flag is set from `AV_PKT_FLAG_KEY`. |
| `function` | [`formatCtx`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#formatctx) `const` |  |
| `function` | [`video`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#video-1) `const` |  |
| `function` | [`audio`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#audio-1) `const` |  |
| `function` | [`stopping`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#stopping-1) `const` |  |
| `function` | [`error`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#error-9) `const` |  |
| `variable` | [`_mutex`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_mutex-7)  |  |
| `variable` | [`_thread`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_thread-4)  |  |
| `variable` | [`_formatCtx`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_formatctx)  |  |
| `variable` | [`_video`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_video)  |  |
| `variable` | [`_audio`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_audio)  |  |
| `variable` | [`_error`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_error-2)  |  |
| `variable` | [`_stopping`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_stopping)  |  |
| `variable` | [`_looping`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_looping)  |  |
| `variable` | [`_realtime`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_realtime)  |  |
| `variable` | [`_ratelimit`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_ratelimit)  |  |
| `variable` | [`_passthroughVideo`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_passthroughvideo)  |  |
| `variable` | [`_ioStartedUsec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_iostartedusec)  |  |
| `variable` | [`_ioTimeoutUsec`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_iotimeoutusec)  |  |
| `variable` | [`_openOptions`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_openoptions)  |  |
| `variable` | [`_videoStream`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#_videostream)  |  |
| `function` | [`openStream`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#openstream-1) `virtual` `override` | Open the underlying media stream. |
| `function` | [`emit`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#emit-7) `virtual` `override` | Emit an existing packet directly onto the outgoing signal. |
| `function` | [`markIoStart`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#markiostart)  |  |
| `function` | [`clearIoStart`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#cleariostart)  |  |
| `typedef` | [`Ptr`](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#ptr-6)  |  |

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

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`emitter`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#emitter-5)  |  |
| `function` | [`ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture-1) `inline` |  |
| `function` | [`~ICapture`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#icapture-2) `virtual` | Defaulted destructor. |
| `function` | [`start`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#start-15) `virtual` `override` | Start capturing and emitting packets. |
| `function` | [`stop`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#stop-7) `virtual` `override` | Stop capturing and release device resources. |
| `function` | [`openFile`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openfile) `virtual` `inline` | Open a media file as the capture source. |
| `function` | [`close`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#close-7) `virtual` `inline` | Release the capture source and any associated resources. |
| `function` | [`getEncoderFormat`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#getencoderformat) `virtual` | Populate `iformat` with the encoder-ready format derived from this capture source. |
| `function` | [`getEncoderAudioCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#getencoderaudiocodec) `virtual` `inline` | Populate `params` with the encoder-ready audio codec parameters. |
| `function` | [`getEncoderVideoCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#getencodervideocodec) `virtual` `inline` | Populate `params` with the encoder-ready video codec parameters. |
| `function` | [`openAudio`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openaudio) `virtual` `inline` | Open an audio capture device with the given parameters. |
| `function` | [`openVideo`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openvideo) `virtual` `inline` | Open a video capture device with the given parameters. |
| `function` | [`onStreamStateChange`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#onstreamstatechange-5) `virtual` `inline` `override` | React to [PacketStream](https://auscaster.com/icey/docs/api-reference/icy-PacketStream.md#packetstream) state transitions by starting or stopping capture. |
| `function` | [`openStream`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openstream) `virtual` `inline` |  |

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

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-1)  | Construct the adapter, binding it to the given packet signal. |
| `function` | [`~PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-2) `virtual` `inline` |  |
| `function` | [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-1) `virtual` | Emit a mutable raw buffer as a packet. |
| `function` | [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-2) `virtual` | Emit a read-only raw buffer as a packet (data is copied internally). |
| `function` | [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-3) `virtual` | Emit a string as a packet (data is copied internally). |
| `function` | [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-4) `virtual` | Emit a flag-only packet carrying no payload data. |
| `function` | [`emit`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#emit-5) `virtual` | Emit an existing packet directly onto the outgoing signal. |
| `function` | [`getEmitter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#getemitter)  | Returns a reference to the outgoing packet signal. |
| `function` | [`retention`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#retention-1) `virtual` `const` | Returns how this adapter treats incoming packet lifetime. Most adapters are synchronous and therefore only borrow the packet for the current call chain. Queue-style adapters override this to advertise that they clone before deferred use. Callers may treat the first adapter reporting Cloned or Retained as the explicit ownership boundary in the stream graph. |
| `function` | [`onStreamStateChange`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#onstreamstatechange-1) `virtual` `inline` | Called by the [PacketStream](https://auscaster.com/icey/docs/api-reference/icy-PacketStream.md#packetstream) to notify when the internal [Stream](https://auscaster.com/icey/docs/api-reference/icy-Stream.md#stream) state changes. On receiving the Stopped state, it is the responsibility of the adapter to have ceased all outgoing packet transmission, especially in multi-thread scenarios. |
| `variable` | [`_emitter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#_emitter)  |  |
| `function` | [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-3)  | NonCopyable and NonMovable. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#operator-72)  | Deleted assignment operator. |
| `function` | [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter-4)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#operator-73)  | Deleted assignment operator. |

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

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`start`](https://auscaster.com/icey/docs/api-reference/icy-basic-Startable.md#start-21) `virtual` | Starts the object (e.g. begins processing or listening). |
| `function` | [`stop`](https://auscaster.com/icey/docs/api-reference/icy-basic-Startable.md#stop-12) `virtual` | Stops the object (e.g. halts processing or closes resources). |

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

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-1) `inline` |  |
| `function` | [`~Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-2) `virtual` | Defaulted destructor. |
| `function` | [`run`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#run-11) `virtual` | The run method will be called by the asynchronous context. |
| `function` | [`cancel`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancel-7) `virtual` `inline` | Cancel the current task. The [run()](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#run-11) method should return ASAP. |
| `function` | [`cancelled`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancelled-3) `virtual` `const` `inline` | Returns true when the task has been cancelled. |
| `variable` | [`exit`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#exit)  |  |

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`AudioCapture`](#audiocapture-1)  | Construct without opening a device. Call [openAudio()](#openaudio-1) before [start()](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#start-18). |
|  | [`AudioCapture`](#audiocapture-2)  | Construct and immediately open the given audio device using an [AudioCodec](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCodec.md#audiocodec) params struct. |
|  | [`AudioCapture`](#audiocapture-3)  | Construct and immediately open the given audio device with individual parameters. |
|  | [`~AudioCapture`](#audiocapture-4) `virtual` `noexcept` |  |
| `void` | [`openAudio`](#openaudio-1) `virtual` `override` | Open the given audio device using an [AudioCodec](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCodec.md#audiocodec) params struct. |
| `void` | [`openAudio`](#openaudio-2) `virtual` | Open the given audio device with individual parameters. Configures the FFmpeg input format and passes device options via AVDictionary. If the device cannot satisfy the requested parameters, resampling will be applied. |

---

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

### AudioCapture

```cpp
AudioCapture()
```

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

Construct without opening a device. Call [openAudio()](#openaudio-1) before [start()](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md#start-18).

---

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

### AudioCapture

```cpp
AudioCapture(const std::string & device, const av::AudioCodec & params)
```

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

Construct and immediately open the given audio device using an [AudioCodec](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCodec.md#audiocodec) params struct.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `device` | `const std::string &` | The platform audio device identifier. |
| `params` | const [`av::AudioCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCodec.md#audiocodec) & | The desired capture parameters (channels, sample rate, format). |

---

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

### AudioCapture

```cpp
AudioCapture(const std::string & device, int channels = -1, int sampleRate = -1, const std::string & sampleFmt = "")
```

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

Construct and immediately open the given audio device with individual parameters.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `device` | `const std::string &` | The platform audio device identifier. |
| `channels` | `int` | The desired number of channels, or -1 for device default. |
| `sampleRate` | `int` | The desired sample rate in Hz, or -1 for device default. |
| `sampleFmt` | `const std::string &` | The desired sample format string, or "" for device default. |

---

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

### ~AudioCapture

`virtual` `noexcept`

```cpp
virtual ~AudioCapture() noexcept
```

[Defined in src/av/include/icy/av/audiocapture.h:46](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/audiocapture.h#L46)

---

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

### openAudio

`virtual` `override`

```cpp
virtual void openAudio(const std::string & device, const av::AudioCodec & params) override
```

[Defined in src/av/include/icy/av/audiocapture.h:51](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/audiocapture.h#L51)

Open the given audio device using an [AudioCodec](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCodec.md#audiocodec) params struct.

#### Reimplements

- [`ICapture::openAudio`](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md#openaudio)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `device` | `const std::string &` | The platform audio device identifier. |
| `params` | const [`av::AudioCodec`](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCodec.md#audiocodec) & | The desired capture parameters. |

---

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

### openAudio

`virtual`

```cpp
virtual void openAudio(const std::string & device, int channels = -1, int sampleRate = -1, const std::string & sampleFmt = "")
```

[Defined in src/av/include/icy/av/audiocapture.h:60](https://github.com/auscaster/icey/blob/main/src/av/include/icy/av/audiocapture.h#L60)

Open the given audio device with individual parameters. Configures the FFmpeg input format and passes device options via AVDictionary. If the device cannot satisfy the requested parameters, resampling will be applied.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `device` | `const std::string &` | The platform audio device identifier. |
| `channels` | `int` | The desired number of channels, or -1 for device default. |
| `sampleRate` | `int` | The desired sample rate in Hz, or -1 for device default. |
| `sampleFmt` | `const std::string &` | The desired sample format string, or "" for device default. |

## Public Types

| Name | Description |
|------|-------------|
| [`Ptr`](#ptr-5)  |  |

---

<a id="ptr-5"></a>

### Ptr

```cpp
using Ptr = std::shared_ptr< AudioCapture >
```

Type: std::shared_ptr< [`AudioCapture`](#audiocapture) >

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