# wasapi2src

Provides audio capture from the Windows Audio Session API available with Windows 10.

## Example pipelines

     gst-launch-1.0 -v wasapi2src ! fakesink

Capture from the default audio device and render to fakesink.

     gst-launch-1.0 -v wasapi2src low-latency=true ! fakesink

Capture from the default audio device with the minimum possible latency and render to fakesink.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseSrc
                        ╰──GstPushSrc
                            ╰──GstAudioBaseSrc
                                ╰──wasapi2src

## Implemented interfaces

    GstStreamVolume

## Factory details

Authors: – Seungha Yang

Classification: – `Source/Audio/Hardware`

Rank – primary + 1

Plugin – wasapi2

Package – GStreamer Bad Plug-ins

## Pad Templates

### `src`

    audio/x-raw:
             format: { F64LE, F64BE, F32LE, F32BE, S32LE, S32BE, U32LE, U32BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S24LE, S24BE, U24LE, U24BE, S20_32LE, S20_32BE, U20_32LE, U20_32BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, S16LE, S16BE, U16LE, U16BE, S8, U8 }
             layout: interleaved
               rate: [ 1, 2147483647 ]
           channels: [ 1, 2147483647 ]

Presence – always

Direction – src

Object type – GstPad

## Properties

### continue-on-error

    “continue-on-error” gboolean

If enabled, wasapi2src will post a warning message instead of an error, when device failures occur, such as open failure, I/O error, or device removal. The element will continue to produce audio buffers and behave as if a capture device were active, allowing pipeline to keep running even when no audio endpoint is available

Flags : Read / Write

Default value : false

Since : 1.28

### device

    “device” gchararray

Audio device ID as provided by WASAPI device endpoint ID as provided by IMMDevice::GetId

Flags : Read / Write

Default value : NULL

### dispatcher

    “dispatcher” gpointer

ICoreDispatcher COM object used for activating device from UI thread.

Flags : Read / Write

Since : 1.18

### exclusive

    “exclusive” gboolean

Flags : Read / Write

Default value : false

Since : 1.28

### loopback

    “loopback” gboolean

Open render device for loopback recording

Flags : Read / Write

Default value : false

Since : 1.20

### loopback-mode

    “loopback-mode” Wasapi2src-loopback-mode *

Loopback mode. "target-process-id" must be specified in case of process loopback modes.

This feature requires "Windows 10 build 20348"

Flags : Read / Write

Default value : default (0)

Since : 1.22

### loopback-silence-on-device-mute

    “loopback-silence-on-device-mute” gboolean

When loopback recording, if the device is muted, inject silence in the pipeline

Flags : Read / Write

Default value : false

Since : 1.24

### loopback-target-pid

    “loopback-target-pid” guint

Target process id to be recorded or excluded depending on loopback mode

This feature requires "Windows 10 build 20348"

Flags : Read / Write

Default value : 0

Since : 1.22

### low-latency

    “low-latency” gboolean

Optimize all settings for lowest latency. Always safe to enable.

Flags : Read / Write

Default value : false

### mute

    “mute” gboolean

Mute state of this stream

Flags : Read / Write

Default value : false

### volume

    “volume” gdouble

Volume of this stream

Flags : Read / Write

Default value : 1

## Named constants

### Wasapi2src-loopback-mode

Loopback capture mode

#### Members

`default` (0) – Default
`include-process-tree` (1) – Include process and its child processes
`exclude-process-tree` (2) – Exclude process and its child processes

Since : 1.22

The results of the search are