![]() |
UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
|
#include <audiosessiontypes.h>#include <audioclient.h>#include <basetsd.h>#include <cctype>#include <cstdio>#include <cstdlib>#include <cstring>#include <combaseapi.h>#include <guiddef.h>#include <iomanip>#include <iostream>#include <ksmedia.h>#include <mediaobj.h>#include <mmeapi.h>#include <mmdeviceapi.h>#include <mmreg.h>#include <objbase.h>#include <propidl.h>#include <propsys.h>#include <sstream>#include <string>#include <synchapi.h>#include <winerror.h>#include "audio/audio_capture.h"#include "audio/types.h"#include "debug.h"#include "host.h"#include "lib_common.h"#include "types.h"#include "ug_runtime_error.hpp"#include "utils/color_out.h"#include "utils/macros.h"#include "utils/windows.h"
Go to the source code of this file.
Classes | |
| struct | state_acap_wasapi |
Macros | |
| #define | FAIL_IF_NOT(cmd) |
| #define | MOD_NAME "[WASAPI cap.] " |
| #define | REFTIMES_PER_MILLISEC 10000 |
| #define | REFTIMES_PER_SEC 10000000 |
| #define | SAFE_RELEASE(u) |
| #define | THROW_IF_FAILED(cmd) |
Functions | |
| static void | audio_cap_wasapi_done (void *state) |
| static void * | audio_cap_wasapi_init (struct module *parent, const char *cfg) |
| static void | audio_cap_wasapi_probe (struct device_info **available_devices, int *dev_count, void(**deleter)(void *)) |
| static struct audio_frame * | audio_cap_wasapi_read (void *state) |
| static string | get_name (IMMDevice *pDevice) |
| REGISTER_MODULE (wasapi, &acap_wasapi_info, LIBRARY_CLASS_AUDIO_CAPTURE, AUDIO_CAPTURE_ABI_VERSION) | |
| static void | show_help () |
| string | wasapi_get_default_device_id (EDataFlow dataFlow, IMMDeviceEnumerator *enumerator) |
Variables | |
| static const struct audio_capture_info | acap_wasapi_info |
| static const GUID | IDevice_FriendlyName = { 0xa45c254e, 0xdf1c, 0x4efd, { 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0 } } |
| const IID | IID_IAudioCaptureClient = __uuidof(IAudioCaptureClient) |
| const GUID | KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = { STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT } |
| const GUID | KSDATAFORMAT_SUBTYPE_PCM = { STATIC_KSDATAFORMAT_SUBTYPE_PCM } |
| static const PROPERTYKEY | PKEY_Device_FriendlyName = { IDevice_FriendlyName, 14 } |
Definition in file wasapi.cpp.
| #define FAIL_IF_NOT | ( | cmd | ) |
Definition at line 384 of file wasapi.cpp.
Referenced by audio_cap_wasapi_read().
| #define MOD_NAME "[WASAPI cap.] " |
Definition at line 64 of file wasapi.cpp.
Referenced by audio_cap_wasapi_init(), audio_cap_wasapi_probe(), and show_help().
| #define REFTIMES_PER_MILLISEC 10000 |
Definition at line 66 of file wasapi.cpp.
| #define REFTIMES_PER_SEC 10000000 |
Definition at line 65 of file wasapi.cpp.
Referenced by audio_cap_wasapi_init().
| #define SAFE_RELEASE | ( | u | ) |
Definition at line 100 of file wasapi.cpp.
Referenced by audio_cap_wasapi_init(), audio_cap_wasapi_probe(), get_name(), show_help(), and wasapi_get_default_device_id().
| #define THROW_IF_FAILED | ( | cmd | ) |
Definition at line 103 of file wasapi.cpp.
Referenced by audio_cap_wasapi_init(), audio_cap_wasapi_probe(), and show_help().
|
static |
Definition at line 378 of file wasapi.cpp.
References state.
|
static |
Definition at line 234 of file wasapi.cpp.
References audio_capture_bps, audio_capture_channels, audio_capture_sample_rate, CLSID_MMDeviceEnumerator, com_initialize(), count, get_name(), IID_IAudioCaptureClient, IID_IAudioClient, IID_IMMDeviceEnumerator, INIT_NOERR, KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, KSDATAFORMAT_SUBTYPE_PCM, LOG, LOG_LEVEL_ERROR, LOG_LEVEL_NOTICE, LOG_LEVEL_WARNING, MOD_NAME, parent, REFTIMES_PER_SEC, SAFE_RELEASE, show_help(), THROW_IF_FAILED, and UNUSED.

|
static |
<
Definition at line 104 of file wasapi.cpp.
References CLSID_MMDeviceEnumerator, com_initialize(), com_uninitialize(), count, deleter, device_info::dev, get_name(), IID_IMMDeviceEnumerator, LOG, LOG_LEVEL_WARNING, MOD_NAME, name, SAFE_RELEASE, snprintf_ch, and THROW_IF_FAILED.

|
static |
Definition at line 385 of file wasapi.cpp.
References count, FAIL_IF_NOT, flags, and state.
|
static |
Definition at line 157 of file wasapi.cpp.
References FAILED, PKEY_Device_FriendlyName, and SAFE_RELEASE.
Referenced by audio_cap_wasapi_init(), audio_cap_wasapi_probe(), and show_help().
| REGISTER_MODULE | ( | wasapi | , |
| & | acap_wasapi_info, | ||
| LIBRARY_CLASS_AUDIO_CAPTURE | , | ||
| AUDIO_CAPTURE_ABI_VERSION | ) |
|
static |
Definition at line 193 of file wasapi.cpp.
References CLSID_MMDeviceEnumerator, com_initialize(), com_uninitialize(), count, get_name(), IID_IMMDeviceEnumerator, LOG, LOG_LEVEL_WARNING, MOD_NAME, SAFE_RELEASE, SBOLD, SRED, THROW_IF_FAILED, and wasapi_get_default_device_id().
Referenced by audio_cap_wasapi_init(), display_conference_init(), display_decklink_init(), display_sdl2_init(), main(), vidcap_dshow_init(), vidcap_ndi_init(), vidcap_rtsp_init(), vidcap_screen_win_init(), vidcap_testcard_init(), and vidcap_v4l2_init().

| string wasapi_get_default_device_id | ( | EDataFlow | dataFlow, |
| IMMDeviceEnumerator * | enumerator ) |
Definition at line 177 of file wasapi.cpp.
References SAFE_RELEASE.
Referenced by audio_play_wasapi_help(), and show_help().
|
static |
Definition at line 432 of file wasapi.cpp.
|
static |
Definition at line 72 of file wasapi.cpp.
| const IID IID_IAudioCaptureClient = __uuidof(IAudioCaptureClient) |
Definition at line 71 of file wasapi.cpp.
Referenced by audio_cap_wasapi_init().
| const GUID KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = { STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT } |
Definition at line 77 of file wasapi.cpp.
Referenced by audio_cap_wasapi_init().
| const GUID KSDATAFORMAT_SUBTYPE_PCM = { STATIC_KSDATAFORMAT_SUBTYPE_PCM } |
Definition at line 76 of file wasapi.cpp.
Referenced by audio_cap_wasapi_init().
|
static |