Skip to content

Commit

Permalink
MFH: r415570
Browse files Browse the repository at this point in the history
www/chromium: unbreak WebRTC microphone selection with PULSEAUDIO=off

Similar to r414386. No kernel ALSA is available to enumerate soundcards,
so assume sound(4) can always be used via ALSA plugins like "oss".
This partially reverts https://codereview.chromium.org/7888011/

PR:		206480
Reported by:	Betso <[email protected]>
Reviewed by:	cem, cmt (briefly)
Approved by:	maintainer timeout (2 weeks)
Approved by:	ports-secteam (feld)
  • Loading branch information
jbeich committed May 20, 2016
1 parent 5615eb5 commit 7959565
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 0 deletions.
1 change: 1 addition & 0 deletions www/chromium/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ LIB_DEPENDS= libcairo.so:graphics/cairo \
libwebp.so:graphics/webp

RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \
alsa-lib>=1.1.1_1:audio/alsa-lib \
droid-fonts-ttf>0:x11-fonts/droid-fonts-ttf \
xdg-open:devel/xdg-utils

Expand Down
54 changes: 54 additions & 0 deletions www/chromium/files/patch-media__audio__alsa__audio_manager_alsa.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
--- media/audio/alsa/audio_manager_alsa.cc.orig 2016-04-07 19:01:10 UTC
+++ media/audio/alsa/audio_manager_alsa.cc
@@ -128,7 +128,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
int card = -1;

// Loop through the sound cards to get ALSA device hints.
+#ifdef OS_LINUX
while (!wrapper_->CardNext(&card) && card >= 0) {
+#endif
void** hints = NULL;
int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
if (!error) {
@@ -140,7 +142,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
DLOG(WARNING) << "GetAlsaAudioDevices: unable to get device hints: "
<< wrapper_->StrError(error);
}
+#ifdef OS_LINUX
}
+#endif
}

void AudioManagerAlsa::GetAlsaDevicesInfo(
@@ -226,7 +230,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvail
// goes through software conversion if needed (e.g. incompatible
// sample rate).
// TODO(joi): Should we prefer "hw" instead?
+#ifdef OS_LINUX
static const char kDeviceTypeDesired[] = "plughw";
+#else
+ static const char kDeviceTypeDesired[] = "plug";
+#endif
return strncmp(kDeviceTypeDesired,
device_name,
arraysize(kDeviceTypeDesired) - 1) == 0;
@@ -250,7 +258,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
// Loop through the sound cards.
// Don't use snd_device_name_hint(-1,..) since there is a access violation
// inside this ALSA API with libasound.so.2.0.0.
+#ifdef OS_LINUX
while (!wrapper_->CardNext(&card) && (card >= 0) && !has_device) {
+#endif
int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
if (!error) {
for (void** hint_iter = hints; *hint_iter != NULL; hint_iter++) {
@@ -274,7 +284,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
DLOG(WARNING) << "HasAnyAudioDevice: unable to get device hints: "
<< wrapper_->StrError(error);
}
+#ifdef OS_LINUX
}
+#endif

return has_device;
}

0 comments on commit 7959565

Please sign in to comment.