diff --git a/extra/firefox/PKGBUILD b/extra/firefox/PKGBUILD index f40fce3bd..7afc2d92f 100644 --- a/extra/firefox/PKGBUILD +++ b/extra/firefox/PKGBUILD @@ -11,7 +11,7 @@ highmem=1 pkgname=firefox pkgver=43.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="Standalone web browser from mozilla.org" arch=('i686' 'x86_64') license=('MPL' 'GPL' 'LGPL') @@ -33,6 +33,8 @@ source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$pkgver/source/ firefox.desktop firefox-install-dir.patch vendor.js + firefox-disable-GMP-PDM.patch + firefox-support-YUV420J-pixel-format.patch firefox-fixed-loading-icon.png no-neon.patch 189d4b0f9f23.patch::https://hg.mozilla.org/releases/mozilla-b2g44_v2_5/raw-rev/189d4b0f9f23) @@ -41,6 +43,8 @@ sha256sums=('b1f9173c6ddbd2bf868d94a815fde364bc37aa46a00981903fd1fe86a8f873d8' 'c202e5e18da1eeddd2e1d81cb3436813f11e44585ca7357c4c5f1bddd4bec826' 'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd' '4b50e9aec03432e21b44d18c4c97b2630bace606b033f7d556c9d3e3eb0f4fa4' + 'fb1f631363c9b50c8246a0d8738c40570717b3e15b5457dacad9f447449d7e92' + '4a949e5b4281be4df0bece8087ecad0a3debb4828efc6a587bd3bd931ab70c94' '68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213' '6d0c1c9ca28b20d206ce24ca84f4d4e3f5d062a2e9cb7445fcb6c2cfea959b4a' 'cbd14ac4839062f4437d1db7cfd5fb9aaadb6786dc63612b219106e01000aafd') @@ -65,6 +69,12 @@ _mozilla_api_key=16674381-f021-49de-8622-3021c5942aff prepare() { cd $pkgname-$pkgver + # https://bugzilla.mozilla.org/show_bug.cgi?id=1233429 + patch -Np1 -i ../firefox-disable-GMP-PDM.patch + + # https://bugzilla.mozilla.org/show_bug.cgi?id=1233340 + patch -Np1 -i ../firefox-support-YUV420J-pixel-format.patch + cp ../mozconfig .mozconfig patch -Np1 -i ../firefox-install-dir.patch diff --git a/extra/firefox/firefox-disable-GMP-PDM.patch b/extra/firefox/firefox-disable-GMP-PDM.patch new file mode 100644 index 000000000..25f7ed5d4 --- /dev/null +++ b/extra/firefox/firefox-disable-GMP-PDM.patch @@ -0,0 +1,34 @@ +# HG changeset patch +# User Jean-Yves Avenard + +Bug 1233429: Disable GMP PDM. r=cpearce + +Prevent users from shooting themselves in the foot by turning some prefs on. + +diff --git a/dom/media/platforms/PlatformDecoderModule.cpp b/dom/media/platforms/PlatformDecoderModule.cpp +index 530c7b9..50933ca 100644 +--- a/dom/media/platforms/PlatformDecoderModule.cpp ++++ b/dom/media/platforms/PlatformDecoderModule.cpp +@@ -150,20 +150,22 @@ PlatformDecoderModule::Create() + } + return CreateAgnosticDecoderModule(); + } + + /* static */ + already_AddRefed + PlatformDecoderModule::CreatePDM() + { ++#ifndef RELEASE_BUILD + if (sGMPDecoderEnabled) { + nsRefPtr m(new GMPDecoderModule()); + return m.forget(); + } ++#endif + #ifdef MOZ_WIDGET_ANDROID + if(sAndroidMCDecoderPreferred && sAndroidMCDecoderEnabled){ + nsRefPtr m(new AndroidDecoderModule()); + return m.forget(); + } + #endif + if (sUseBlankDecoder) { + return CreateBlankDecoderModule(); diff --git a/extra/firefox/firefox-support-YUV420J-pixel-format.patch b/extra/firefox/firefox-support-YUV420J-pixel-format.patch new file mode 100644 index 000000000..178c5897d --- /dev/null +++ b/extra/firefox/firefox-support-YUV420J-pixel-format.patch @@ -0,0 +1,34 @@ + +# HG changeset patch +# User Jean-Yves Avenard +# Date 1450657258 -39600 +# Node ID 8b0ced62c1957f6da6028af686c32ada1ccb570c +# Parent e1a98377eb38679bda820456ee6d20bdc17eaa8e +Bug 1233340: [ffmpeg] Support YUV420J pixel format. r=kentuckyfriedtakahe + +YUV420J is 12bpp YUV420P. + + +diff --git a/dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp +--- a/dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp ++++ b/dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp +@@ -52,17 +52,17 @@ FFmpegDataDecoder::~FFmpegDat + * For now, we just look for YUV420P as it is the only non-HW accelerated format + * supported by FFmpeg's H264 decoder. + */ + static PixelFormat + ChoosePixelFormat(AVCodecContext* aCodecContext, const PixelFormat* aFormats) + { + FFMPEG_LOG("Choosing FFmpeg pixel format for video decoding."); + for (; *aFormats > -1; aFormats++) { +- if (*aFormats == PIX_FMT_YUV420P) { ++ if (*aFormats == PIX_FMT_YUV420P || *aFormats == PIX_FMT_YUVJ420P) { + FFMPEG_LOG("Requesting pixel format YUV420P."); + return PIX_FMT_YUV420P; + } + } + + NS_WARNING("FFmpeg does not share any supported pixel formats."); + return PIX_FMT_NONE; + } +