mirror of
https://github.com/telegramdesktop/tdesktop
synced 2024-12-26 08:22:23 +00:00
Don't set device explicitly when capturing
Also update openal to 1.20.1 since it has pulseaudio.allow-moves by default Fix playback devices enumerating
This commit is contained in:
parent
fdd841e5c4
commit
afc902a5cb
2
.github/workflows/linux.yml
vendored
2
.github/workflows/linux.yml
vendored
@ -323,7 +323,7 @@ jobs:
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone -b openal-soft-1.19.1 --depth=1 $GIT/kcat/openal-soft.git
|
||||
git clone -b openal-soft-1.20.1 --depth=1 $GIT/kcat/openal-soft.git
|
||||
cd openal-soft/build
|
||||
cmake -D LIBTYPE:STRING=STATIC ..
|
||||
make -j$(nproc)
|
||||
|
@ -82,7 +82,7 @@ bool PlaybackErrorHappened() {
|
||||
|
||||
void EnumeratePlaybackDevices() {
|
||||
auto deviceNames = QStringList();
|
||||
auto devices = alcGetString(nullptr, ALC_DEVICE_SPECIFIER);
|
||||
auto devices = alcGetString(nullptr, ALC_ALL_DEVICES_SPECIFIER);
|
||||
Assert(devices != nullptr);
|
||||
while (*devices != 0) {
|
||||
auto deviceName8Bit = QByteArray(devices);
|
||||
@ -92,7 +92,7 @@ void EnumeratePlaybackDevices() {
|
||||
}
|
||||
LOG(("Audio Playback Devices: %1").arg(deviceNames.join(';')));
|
||||
|
||||
if (auto device = alcGetString(nullptr, ALC_DEFAULT_DEVICE_SPECIFIER)) {
|
||||
if (auto device = alcGetString(nullptr, ALC_DEFAULT_ALL_DEVICES_SPECIFIER)) {
|
||||
LOG(("Audio Playback Default Device: %1").arg(QString::fromLocal8Bit(device)));
|
||||
} else {
|
||||
LOG(("Audio Playback Default Device: (null)"));
|
||||
|
@ -62,16 +62,12 @@ Instance::Instance() : _inner(new Inner(&_thread)) {
|
||||
|
||||
void Instance::check() {
|
||||
_available = false;
|
||||
if (auto defaultDevice = alcGetString(0, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER)) {
|
||||
if (auto device = alcCaptureOpenDevice(defaultDevice, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5)) {
|
||||
auto error = ErrorHappened(device);
|
||||
alcCaptureCloseDevice(device);
|
||||
_available = !error;
|
||||
} else {
|
||||
LOG(("Audio Error: Could not open capture device!"));
|
||||
}
|
||||
if (auto device = alcCaptureOpenDevice(nullptr, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5)) {
|
||||
auto error = ErrorHappened(device);
|
||||
alcCaptureCloseDevice(device);
|
||||
_available = !error;
|
||||
} else {
|
||||
LOG(("Audio Error: No capture device found!"));
|
||||
LOG(("Audio Error: Could not open capture device!"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -177,9 +173,7 @@ void Instance::Inner::onInit() {
|
||||
void Instance::Inner::onStart() {
|
||||
|
||||
// Start OpenAL Capture
|
||||
const ALCchar *dName = alcGetString(0, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER);
|
||||
DEBUG_LOG(("Audio Info: Capture device name '%1'").arg(dName));
|
||||
d->device = alcCaptureOpenDevice(dName, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5);
|
||||
d->device = alcCaptureOpenDevice(nullptr, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5);
|
||||
if (!d->device) {
|
||||
LOG(("Audio Error: capture device not present!"));
|
||||
emit error();
|
||||
|
@ -198,7 +198,7 @@ Go to ***BuildPath*** and run
|
||||
|
||||
git clone git://repo.or.cz/openal-soft.git
|
||||
cd openal-soft
|
||||
git checkout openal-soft-1.19.1
|
||||
git checkout openal-soft-1.20.1
|
||||
cd build
|
||||
if [ `uname -p` == "i686" ]; then
|
||||
cmake -D LIBTYPE:STRING=STATIC -D ALSOFT_UTILS:BOOL=OFF ..
|
||||
|
Loading…
Reference in New Issue
Block a user