[arch-commits] Commit in chromium/trunk (2 files)
Evangelos Foutras
foutrelis at nymeria.archlinux.org
Sat May 25 16:06:26 UTC 2013
Date: Saturday, May 25, 2013 @ 18:06:26
Author: foutrelis
Revision: 186359
upgpkg: chromium 27.0.1453.93-3
Allow sample rate pass through on Linux (FS#35454).
Added:
chromium/trunk/chromium-27.0.1453.93-allow-sample-rate-pass-through-on-linux.patch
Modified:
chromium/trunk/PKGBUILD
---------------------------------------------------------------------+
PKGBUILD | 8
chromium-27.0.1453.93-allow-sample-rate-pass-through-on-linux.patch | 96 ++++++++++
2 files changed, 103 insertions(+), 1 deletion(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2013-05-25 15:54:34 UTC (rev 186358)
+++ PKGBUILD 2013-05-25 16:06:26 UTC (rev 186359)
@@ -6,7 +6,7 @@
pkgname=chromium
pkgver=27.0.1453.93
-pkgrel=2
+pkgrel=3
pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
arch=('i686' 'x86_64')
url="http://www.chromium.org/"
@@ -25,6 +25,7 @@
chromium.default
chromium.sh
chromium-pnacl-r0.patch
+ chromium-27.0.1453.93-allow-sample-rate-pass-through-on-linux.patch
chromium-27.0.1453.93-fix-crash-when-quickly-dragging-a-new-tab.patch
chromium-26.0.1410.43-speechd-0.8.patch)
sha256sums=('6dd8c01a4d72acc512652332d67e92ff9bcb3533b621f2b281c30f00ce26ad40'
@@ -32,6 +33,7 @@
'478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232'
'4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9'
'9875ffcc0e9ae9420876ac66b130b1b017d445a031d43cbe0119793e1fb3781c'
+ 'c57d760589af1566469fbba0d85624b53eb07a3077485599f599a226dbd4d2a8'
'd530f52cb485ff8da035b38ffebe171309a1d8e515040f5e6398ecb286336797'
'23b04468881642ffdc8457016c8f91df395dfccb4af2ad6b758168180ae070f3')
@@ -49,6 +51,10 @@
# Fix build without pnacl (patch from Gentoo)
patch -Np0 -i "$srcdir/chromium-pnacl-r0.patch"
+ # Allow sample rate pass through on Linux
+ # https://code.google.com/p/chromium/issues/detail?id=229918
+ patch -Np1 -i "$srcdir/chromium-27.0.1453.93-allow-sample-rate-pass-through-on-linux.patch"
+
# Fix crash when quickly dragging a new tab
# https://code.google.com/p/chromium/issues/detail?id=228918
patch -Np1 -i "$srcdir/chromium-27.0.1453.93-fix-crash-when-quickly-dragging-a-new-tab.patch"
Added: chromium-27.0.1453.93-allow-sample-rate-pass-through-on-linux.patch
===================================================================
--- chromium-27.0.1453.93-allow-sample-rate-pass-through-on-linux.patch (rev 0)
+++ chromium-27.0.1453.93-allow-sample-rate-pass-through-on-linux.patch 2013-05-25 16:06:26 UTC (rev 186359)
@@ -0,0 +1,96 @@
+From ed5409740e3f6c13895a29b770d46d659973863e Mon Sep 17 00:00:00 2001
+From: "dalecurtis at google.com"
+ <dalecurtis at google.com@0039d316-1c4b-4281-b951-d872f2087c98>
+Date: Fri, 24 May 2013 23:54:45 +0000
+Subject: [PATCH] Allow sample rate pass through on Linux.
+
+Requiring the native output sample rate to avoid glitching appears
+to have just been an issue with a poor tlength choice. xians and
+I resolved this prior to turning PulseAudio on by default, but left
+the native sample rate requirement in at the time.
+
+Since "native sample rate" can change on the fly with PulseAudio
+our approach of specifying FIX_RATE was incorrect. Allowing Pulse
+to handle resampling lets us remove the FIX_RATE flag. It also
+improves CPU usage in cases where Pulse can configure the output
+device to match the requested sample rate.
+
+BUG=229918
+TEST=extensive manual checks for glitching.
+R=xians at chromium.org
+
+Review URL: https://codereview.chromium.org/15957002
+
+git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202233 0039d316-1c4b-4281-b951-d872f2087c98
+---
+ content/renderer/media/audio_renderer_mixer_manager.cc | 6 +++---
+ media/audio/pulse/audio_manager_pulse.cc | 6 +++++-
+ media/audio/pulse/pulse_util.cc | 6 +++---
+ 3 files changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/content/renderer/media/audio_renderer_mixer_manager.cc b/content/renderer/media/audio_renderer_mixer_manager.cc
+index 7db67d1..0044d25 100644
+--- a/content/renderer/media/audio_renderer_mixer_manager.cc
++++ b/content/renderer/media/audio_renderer_mixer_manager.cc
+@@ -52,9 +52,9 @@ media::AudioRendererMixer* AudioRendererMixerManager::GetMixer(
+ return it->second.mixer;
+ }
+
+- // On ChromeOS we can rely on the playback device to handle resampling, so
+- // don't waste cycles on it here.
+-#if defined(OS_CHROMEOS)
++ // On ChromeOS and Linux we can rely on the playback device to handle
++ // resampling, so don't waste cycles on it here.
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ int sample_rate = params.sample_rate();
+ #else
+ int sample_rate = hardware_config_->GetOutputSampleRate();
+diff --git a/media/audio/pulse/audio_manager_pulse.cc b/media/audio/pulse/audio_manager_pulse.cc
+index c127d17..fed919a 100644
+--- a/media/audio/pulse/audio_manager_pulse.cc
++++ b/media/audio/pulse/audio_manager_pulse.cc
+@@ -141,11 +141,15 @@ AudioParameters AudioManagerPulse::GetPreferredOutputStreamParameters(
+ int buffer_size = kDefaultOutputBufferSize;
+ int bits_per_sample = 16;
+ int input_channels = 0;
++ int sample_rate;
+ if (input_params.IsValid()) {
+ bits_per_sample = input_params.bits_per_sample();
+ channel_layout = input_params.channel_layout();
+ input_channels = input_params.input_channels();
+ buffer_size = std::min(buffer_size, input_params.frames_per_buffer());
++ sample_rate = input_params.sample_rate();
++ } else {
++ sample_rate = GetNativeSampleRate();
+ }
+
+ int user_buffer_size = GetUserBufferSize();
+@@ -154,7 +158,7 @@ AudioParameters AudioManagerPulse::GetPreferredOutputStreamParameters(
+
+ return AudioParameters(
+ AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels,
+- GetNativeSampleRate(), bits_per_sample, buffer_size);
++ sample_rate, bits_per_sample, buffer_size);
+ }
+
+ AudioOutputStream* AudioManagerPulse::MakeOutputStream(
+diff --git a/media/audio/pulse/pulse_util.cc b/media/audio/pulse/pulse_util.cc
+index 0a4734b..6a4dad1 100644
+--- a/media/audio/pulse/pulse_util.cc
++++ b/media/audio/pulse/pulse_util.cc
+@@ -289,9 +289,9 @@ bool CreateOutputStream(pa_threaded_mainloop** mainloop,
+ pa_stream_connect_playback(
+ *stream, NULL, &pa_buffer_attributes,
+ static_cast<pa_stream_flags_t>(
+- PA_STREAM_FIX_RATE | PA_STREAM_INTERPOLATE_TIMING |
+- PA_STREAM_ADJUST_LATENCY | PA_STREAM_AUTO_TIMING_UPDATE |
+- PA_STREAM_NOT_MONOTONIC | PA_STREAM_START_CORKED),
++ PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_ADJUST_LATENCY |
++ PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_NOT_MONOTONIC |
++ PA_STREAM_START_CORKED),
+ NULL, NULL) == 0,
+ "pa_stream_connect_playback FAILED ");
+
+--
+1.8.2.2
+
More information about the arch-commits
mailing list