mirror of
https://github.com/telegramdesktop/tdesktop
synced 2024-12-27 00:53:22 +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: |
|
run: |
|
||||||
cd $LibrariesPath
|
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
|
cd openal-soft/build
|
||||||
cmake -D LIBTYPE:STRING=STATIC ..
|
cmake -D LIBTYPE:STRING=STATIC ..
|
||||||
make -j$(nproc)
|
make -j$(nproc)
|
||||||
|
@ -82,7 +82,7 @@ bool PlaybackErrorHappened() {
|
|||||||
|
|
||||||
void EnumeratePlaybackDevices() {
|
void EnumeratePlaybackDevices() {
|
||||||
auto deviceNames = QStringList();
|
auto deviceNames = QStringList();
|
||||||
auto devices = alcGetString(nullptr, ALC_DEVICE_SPECIFIER);
|
auto devices = alcGetString(nullptr, ALC_ALL_DEVICES_SPECIFIER);
|
||||||
Assert(devices != nullptr);
|
Assert(devices != nullptr);
|
||||||
while (*devices != 0) {
|
while (*devices != 0) {
|
||||||
auto deviceName8Bit = QByteArray(devices);
|
auto deviceName8Bit = QByteArray(devices);
|
||||||
@ -92,7 +92,7 @@ void EnumeratePlaybackDevices() {
|
|||||||
}
|
}
|
||||||
LOG(("Audio Playback Devices: %1").arg(deviceNames.join(';')));
|
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)));
|
LOG(("Audio Playback Default Device: %1").arg(QString::fromLocal8Bit(device)));
|
||||||
} else {
|
} else {
|
||||||
LOG(("Audio Playback Default Device: (null)"));
|
LOG(("Audio Playback Default Device: (null)"));
|
||||||
|
@ -62,16 +62,12 @@ Instance::Instance() : _inner(new Inner(&_thread)) {
|
|||||||
|
|
||||||
void Instance::check() {
|
void Instance::check() {
|
||||||
_available = false;
|
_available = false;
|
||||||
if (auto defaultDevice = alcGetString(0, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER)) {
|
if (auto device = alcCaptureOpenDevice(nullptr, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5)) {
|
||||||
if (auto device = alcCaptureOpenDevice(defaultDevice, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5)) {
|
auto error = ErrorHappened(device);
|
||||||
auto error = ErrorHappened(device);
|
alcCaptureCloseDevice(device);
|
||||||
alcCaptureCloseDevice(device);
|
_available = !error;
|
||||||
_available = !error;
|
|
||||||
} else {
|
|
||||||
LOG(("Audio Error: Could not open capture device!"));
|
|
||||||
}
|
|
||||||
} else {
|
} 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() {
|
void Instance::Inner::onStart() {
|
||||||
|
|
||||||
// Start OpenAL Capture
|
// Start OpenAL Capture
|
||||||
const ALCchar *dName = alcGetString(0, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER);
|
d->device = alcCaptureOpenDevice(nullptr, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5);
|
||||||
DEBUG_LOG(("Audio Info: Capture device name '%1'").arg(dName));
|
|
||||||
d->device = alcCaptureOpenDevice(dName, kCaptureFrequency, AL_FORMAT_MONO16, kCaptureFrequency / 5);
|
|
||||||
if (!d->device) {
|
if (!d->device) {
|
||||||
LOG(("Audio Error: capture device not present!"));
|
LOG(("Audio Error: capture device not present!"));
|
||||||
emit error();
|
emit error();
|
||||||
|
@ -198,7 +198,7 @@ Go to ***BuildPath*** and run
|
|||||||
|
|
||||||
git clone git://repo.or.cz/openal-soft.git
|
git clone git://repo.or.cz/openal-soft.git
|
||||||
cd openal-soft
|
cd openal-soft
|
||||||
git checkout openal-soft-1.19.1
|
git checkout openal-soft-1.20.1
|
||||||
cd build
|
cd build
|
||||||
if [ `uname -p` == "i686" ]; then
|
if [ `uname -p` == "i686" ]; then
|
||||||
cmake -D LIBTYPE:STRING=STATIC -D ALSOFT_UTILS:BOOL=OFF ..
|
cmake -D LIBTYPE:STRING=STATIC -D ALSOFT_UTILS:BOOL=OFF ..
|
||||||
|
Loading…
Reference in New Issue
Block a user