Date: Friday, March 29, 2013 @ 03:54:22
  Author: foutrelis
Revision: 180975

upgpkg: chromium 26.0.1410.43-2

Fix choppy/stuttering HTML5 audio (FS#34511). Go back to building the bundled 
ffmpeg as testing/ffmpeg 1.2 breaks media playback.

Added:
  chromium/trunk/chromium-26.0.1410.43-audio-buffer-size.patch
Modified:
  chromium/trunk/PKGBUILD
Deleted:
  chromium/trunk/chromium-system-ffmpeg-r2a.patch

-----------------------------------------------+
 PKGBUILD                                      |   19 +-
 chromium-26.0.1410.43-audio-buffer-size.patch |   12 +
 chromium-system-ffmpeg-r2a.patch              |  203 ------------------------
 3 files changed, 22 insertions(+), 212 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2013-03-28 23:52:00 UTC (rev 180974)
+++ PKGBUILD    2013-03-29 02:54:22 UTC (rev 180975)
@@ -6,13 +6,13 @@
 
 pkgname=chromium
 pkgver=26.0.1410.43
-pkgrel=1
+pkgrel=2
 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/";
 license=('BSD')
 depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss'
-         'libgcrypt' 'ttf-font' 'udev' 'dbus' 'flac' 'opus' 'libwebp' 'ffmpeg'
+         'libgcrypt' 'ttf-font' 'udev' 'dbus' 'flac' 'opus' 'libwebp'
          'speech-dispatcher' 'pciutils' 'desktop-file-utils'
          'hicolor-icon-theme')
 makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
@@ -27,7 +27,7 @@
         chromium-20.0.1132.57-glib-2.16-use-siginfo_t.patch
         chromium-25.0.1364.152-fix-crash-when-cups-is-down.patch
         chromium-ppapi-r0.patch
-        chromium-system-ffmpeg-r2a.patch
+        chromium-26.0.1410.43-audio-buffer-size.patch
         chromium-26.0.1410.43-speechd-0.8.patch)
 sha256sums=('31021f81642124b75cb9fa68aa806206dea345bf1aaf7094c71b3f84344b1d84'
             '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
@@ -36,7 +36,7 @@
             'c1baf14121502efbc2a31b64029dcafa0e28ca5b71ad0e28a3c6342d18198615'
             '36ff43d8e85a7eac305727057c4ffd45eb7a357ce212a4a3f153037bc34a5ace'
             '1f4b57670d317959bc2dc60e5d2a44aa8fc6028f7ed540cdb502fa0aa99c81bd'
-            '8344737762508e33f748a04a81fc460c82e1752ad49d214abf4ff670ecd06925'
+            '5af41119d383b10c21f98f0e02d2259cc8cf60eefdb2fa737d8ed87d4c01f056'
             '23b04468881642ffdc8457016c8f91df395dfccb4af2ad6b758168180ae070f3')
 
 # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
@@ -59,12 +59,12 @@
   # Fix build without NaCl glibc toolchain (patch from Gentoo)
   patch -Np0 -i "$srcdir/chromium-ppapi-r0.patch"
 
-  # Patch to build with system ffmpeg (patch from Gentoo)
-  patch -Np1 -i "$srcdir/chromium-system-ffmpeg-r2a.patch"
-
   # Fix header location for speech-dispatcher 0.8 (patch from PLD Linux)
   patch -Np2 -i "$srcdir/chromium-26.0.1410.43-speechd-0.8.patch"
 
+  # http://code.google.com/p/chromium/issues/detail?id=178626
+  patch -Np1 -i "$srcdir/chromium-26.0.1410.43-audio-buffer-size.patch"
+
   # Use Python 2
   find . -type f -exec sed -i -r \
     -e 's|/usr/bin/python$|&2|g' \
@@ -97,10 +97,11 @@
     -Dlinux_use_gold_binary=0 \
     -Dlinux_use_gold_flags=0 \
     -Drelease_extra_cflags="$CFLAGS" \
+    -Dffmpeg_branding=Chrome \
     -Dproprietary_codecs=1 \
     -Duse_system_bzip2=1 \
     -Duse_system_flac=1 \
-    -Duse_system_ffmpeg=1 \
+    -Duse_system_ffmpeg=0 \
     -Duse_system_libevent=1 \
     -Duse_system_libjpeg=1 \
     -Duse_system_libpng=1 \
@@ -128,7 +129,7 @@
   install -Dm4755 -o root -g root out/Release/chrome_sandbox \
     "$pkgdir/usr/lib/chromium/chromium-sandbox"
 
-  cp out/Release/{*.pak,nacl_helper{,_bootstrap}} \
+  cp out/Release/{*.pak,libffmpegsumo.so,nacl_helper{,_bootstrap}} \
     out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_*.nexe} \
     "$pkgdir/usr/lib/chromium/"
 

Added: chromium-26.0.1410.43-audio-buffer-size.patch
===================================================================
--- chromium-26.0.1410.43-audio-buffer-size.patch                               
(rev 0)
+++ chromium-26.0.1410.43-audio-buffer-size.patch       2013-03-29 02:54:22 UTC 
(rev 180975)
@@ -0,0 +1,12 @@
+diff -upr chromium-26.0.1410.43.orig/media/audio/audio_util.cc 
chromium-26.0.1410.43/media/audio/audio_util.cc
+--- chromium-26.0.1410.43.orig/media/audio/audio_util.cc       2013-03-29 
02:10:07.000000000 +0200
++++ chromium-26.0.1410.43/media/audio/audio_util.cc    2013-03-29 
02:21:41.000000000 +0200
+@@ -201,8 +201,6 @@ size_t GetAudioHardwareBufferSize() {
+   HRESULT hr = CoreAudioUtil::GetPreferredAudioParameters(eRender, eConsole,
+                                                           &params);
+   return FAILED(hr) ? kFallbackBufferSize : params.frames_per_buffer();
+-#elif defined(OS_LINUX)
+-  return 512;
+ #else
+   return 2048;
+ #endif

Deleted: chromium-system-ffmpeg-r2a.patch
===================================================================
--- chromium-system-ffmpeg-r2a.patch    2013-03-28 23:52:00 UTC (rev 180974)
+++ chromium-system-ffmpeg-r2a.patch    2013-03-29 02:54:22 UTC (rev 180975)
@@ -1,203 +0,0 @@
-diff --git a/media/filters/ffmpeg_glue.h b/media/filters/ffmpeg_glue.h
-index 17241b9..8a92312 100644
---- a/media/filters/ffmpeg_glue.h
-+++ b/media/filters/ffmpeg_glue.h
-@@ -28,9 +28,9 @@
- #include "base/basictypes.h"
- #include "base/memory/scoped_ptr.h"
- #include "media/base/media_export.h"
-+#include "media/ffmpeg/ffmpeg_common.h"
- 
- struct AVFormatContext;
--struct AVIOContext;
- 
- namespace media {
- 
-diff --git a/media/media.gyp b/media/media.gyp
-index df217d2..fde3830 100644
---- a/media/media.gyp
-+++ b/media/media.gyp
-@@ -363,6 +363,9 @@
-           'dependencies': [
-             '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
-           ],
-+          'export_dependent_settings': [
-+            '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
-+          ],
-         }, {  # media_use_ffmpeg == 0
-           # Exclude the sources that depend on ffmpeg.
-           'sources!': [
---- a/media/ffmpeg/ffmpeg_common.cc.orig       2013-01-17 00:07:51.635057013 
+0000
-+++ b/media/ffmpeg/ffmpeg_common.cc    2013-01-17 00:15:50.867406811 +0000
-@@ -10,6 +10,8 @@
- #include "media/base/video_frame.h"
- #include "media/base/video_util.h"
- 
-+#undef SampleFormat
-+
- namespace media {
- 
- // Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are
-Index: build/common.gypi
-diff --git a/build/common.gypi b/build/common.gypi
-index 
34c6a15e0add1001e4a24712c9c809e3b698a390..521decfa19d102263086ebf4de7c8bac74c95e30
 100644
---- a/build/common.gypi
-+++ b/build/common.gypi
-@@ -741,6 +741,9 @@
-     'google_default_client_secret%': '<(google_default_client_secret)',
-     'enable_managed_users%': '<(enable_managed_users)',
- 
-+    # Use system ffmpeg instead of bundled one.
-+    'use_system_ffmpeg%': 0,
-+
-     # Use system mesa instead of bundled one.
-     'use_system_mesa%': 0,
- 
-Index: media/ffmpeg/ffmpeg_common.cc
-diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
-index 
26953efc699a0dc1ce9cd951eb47b04713974b44..bf234304aa2b26fb7e0f729a4e75257099c00358
 100644
---- a/media/ffmpeg/ffmpeg_common.cc
-+++ b/media/ffmpeg/ffmpeg_common.cc
-@@ -84,8 +84,10 @@ AudioCodec CodecIDToAudioCodec(CodecID codec_id) {
-       return kCodecGSM_MS;
-     case CODEC_ID_PCM_MULAW:
-       return kCodecPCM_MULAW;
-+#ifndef CHROMIUM_OMIT_CODEC_ID_OPUS
-     case CODEC_ID_OPUS:
-       return kCodecOpus;
-+#endif
-     default:
-       DVLOG(1) << "Unknown audio CodecID: " << codec_id;
-   }
-@@ -129,8 +131,10 @@ static CodecID AudioCodecToCodecID(AudioCodec audio_codec,
-       return CODEC_ID_GSM_MS;
-     case kCodecPCM_MULAW:
-       return CODEC_ID_PCM_MULAW;
-+#ifndef CHROMIUM_OMIT_CODEC_ID_OPUS
-     case kCodecOpus:
-       return CODEC_ID_OPUS;
-+#endif
-     default:
-       DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
-   }
-@@ -147,8 +151,10 @@ VideoCodec CodecIDToVideoCodec(CodecID codec_id) {
-       return kCodecMPEG4;
-     case CODEC_ID_VP8:
-       return kCodecVP8;
-+#ifndef CHROMIUM_OMIT_AV_CODEC_ID_VP9
-     case AV_CODEC_ID_VP9:
-       return kCodecVP9;
-+#endif
-     default:
-       DVLOG(1) << "Unknown video CodecID: " << codec_id;
-   }
-@@ -165,8 +171,10 @@ static CodecID VideoCodecToCodecID(VideoCodec 
video_codec) {
-       return CODEC_ID_MPEG4;
-     case kCodecVP8:
-       return CODEC_ID_VP8;
-+#ifndef CHROMIUM_OMIT_AV_CODEC_ID_VP9
-     case kCodecVP9:
-       return AV_CODEC_ID_VP9;
-+#endif
-     default:
-       DVLOG(1) << "Unknown VideoCodec: " << video_codec;
-   }
-@@ -468,8 +476,10 @@ ChannelLayout ChannelLayoutToChromeChannelLayout(int64_t 
layout, int channels) {
-       return CHANNEL_LAYOUT_6_1_FRONT;
-     case AV_CH_LAYOUT_7POINT0_FRONT:
-       return CHANNEL_LAYOUT_7_0_FRONT;
-+#ifdef AV_CH_LAYOUT_7POINT1_WIDE_BACK
-     case AV_CH_LAYOUT_7POINT1_WIDE_BACK:
-       return CHANNEL_LAYOUT_7_1_WIDE_BACK;
-+#endif
-     case AV_CH_LAYOUT_OCTAGONAL:
-       return CHANNEL_LAYOUT_OCTAGONAL;
-     default:
-Index: media/media.gyp
-diff --git a/media/media.gyp b/media/media.gyp
-index 
f514dec48e5cc78567d141f20e2cb970a8707e92..75b62bebb503e2d9488bf0fc5cec3fd0a7e1916d
 100644
---- a/media/media.gyp
-+++ b/media/media.gyp
-@@ -469,6 +469,18 @@
-             'filters/vpx_video_decoder.h',
-           ],
-         }],
-+        ['use_system_ffmpeg == 1', {
-+          'defines': [
-+            '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-+                '--code "#include <libavcodec/avcodec.h>\n'
-+                'int test() { return CODEC_ID_OPUS; }" '
-+                '--on-failure CHROMIUM_OMIT_CODEC_ID_OPUS)',
-+            '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-+                '--code "#include <libavcodec/avcodec.h>\n'
-+                'int test() { return AV_CODEC_ID_VP9; }" '
-+                '--on-failure CHROMIUM_OMIT_AV_CODEC_ID_VP9)',
-+          ],
-+        }],
-         ['OS == "ios"', {
-           'includes': [
-             # For shared_memory_support_sources variable.
-Index: tools/compile_test/compile_test.py
-diff --git a/tools/compile_test/compile_test.py 
b/tools/compile_test/compile_test.py
-new file mode 100755
-index 
0000000000000000000000000000000000000000..a52c0720209142af858d656a071ca43328dd3b16
---- /dev/null
-+++ b/tools/compile_test/compile_test.py
-@@ -0,0 +1,57 @@
-+#!/usr/bin/env python
-+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-+# Use of this source code is governed by a BSD-style license that can be
-+# found in the LICENSE file.
-+
-+"""
-+Tries to compile given code, produces different output depending on success.
-+
-+This is similar to checks done by ./configure scripts.
-+"""
-+
-+
-+import optparse
-+import os
-+import shutil
-+import subprocess
-+import sys
-+import tempfile
-+
-+
-+def DoMain(argv):
-+  parser = optparse.OptionParser()
-+  parser.add_option('--code')
-+  parser.add_option('--on-success', default='')
-+  parser.add_option('--on-failure', default='')
-+
-+  options, args = parser.parse_args(argv)
-+
-+  if not options.code:
-+    parser.error('Missing required --code switch.')
-+
-+  cxx = os.environ.get('CXX', 'g++')
-+
-+  tmpdir = tempfile.mkdtemp()
-+  try:
-+    cxx_path = os.path.join(tmpdir, 'test.cc')
-+    with open(cxx_path, 'w') as f:
-+      f.write(options.code.decode('string-escape'))
-+
-+    o_path = os.path.join(tmpdir, 'test.o')
-+
-+    cxx_popen = subprocess.Popen([cxx, cxx_path, '-o', o_path, '-c'],
-+                                 stdout=subprocess.PIPE,
-+                                 stderr=subprocess.PIPE)
-+    cxx_stdout, cxx_stderr = cxx_popen.communicate()
-+    if cxx_popen.returncode == 0:
-+      print options.on_success
-+    else:
-+      print options.on_failure
-+  finally:
-+    shutil.rmtree(tmpdir)
-+
-+  return 0
-+
-+
-+if __name__ == '__main__':
-+  sys.exit(DoMain(sys.argv[1:]))

Reply via email to