[arch-commits] Commit in firefox/trunk (PKGBUILD firefox-quicktime.patch)
Evangelos Foutras
foutrelis at archlinux.org
Tue Feb 2 13:34:41 UTC 2016
Date: Tuesday, February 2, 2016 @ 14:34:41
Author: foutrelis
Revision: 258777
upgpkg: firefox 44.0-2
Add QuickTime support (FS#47953).
Added:
firefox/trunk/firefox-quicktime.patch
Modified:
firefox/trunk/PKGBUILD
-------------------------+
PKGBUILD | 7 +-
firefox-quicktime.patch | 144 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 150 insertions(+), 1 deletion(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2016-02-02 12:57:59 UTC (rev 258776)
+++ PKGBUILD 2016-02-02 13:34:41 UTC (rev 258777)
@@ -4,7 +4,7 @@
pkgname=firefox
pkgver=44.0
-pkgrel=1
+pkgrel=2
pkgdesc="Standalone web browser from mozilla.org"
arch=('i686' 'x86_64')
license=('MPL' 'GPL' 'LGPL')
@@ -24,6 +24,7 @@
firefox.desktop
firefox-install-dir.patch
vendor.js
+ firefox-quicktime.patch
firefox-fixed-loading-icon.png)
sha256sums=('ea82b0f4840d320aa4fe8046ba28e686bf6dc60f707a0514a9d68c150d0c4c1d'
'a7a5dffa8df27a8f4d1e034c5fc10b39d69068be92ee3f40e8ee7980a68655a6'
@@ -30,6 +31,7 @@
'c202e5e18da1eeddd2e1d81cb3436813f11e44585ca7357c4c5f1bddd4bec826'
'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd'
'4b50e9aec03432e21b44d18c4c97b2630bace606b033f7d556c9d3e3eb0f4fa4'
+ '6b731ca36e7688aeb24685da702e0af0475e6671072fc96464fbbed49d0bbd50'
'68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213')
validpgpkeys=('2B90598A745E992F315E22C58AB132963A06537A')
@@ -51,6 +53,9 @@
prepare() {
cd $pkgname-$pkgver
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1244523
+ patch -Np1 -i ../firefox-quicktime.patch
+
cp ../mozconfig .mozconfig
patch -Np1 -i ../firefox-install-dir.patch
Added: firefox-quicktime.patch
===================================================================
--- firefox-quicktime.patch (rev 0)
+++ firefox-quicktime.patch 2016-02-02 13:34:41 UTC (rev 258777)
@@ -0,0 +1,144 @@
+
+# HG changeset patch
+# User John Lin <jolin at mozilla.com>
+# Date 1447265580 -3600
+# Node ID aeb7ece8cbd40280f27ec3631f4f9e5b8b52c5a9
+# Parent 22d372a893d764554af0edb7e47f817af93b2114
+Bug 1211802 - Recognize 'avc?' as mp4 video. r=jya
+
+diff --git a/toolkit/components/mediasniffer/nsMediaSniffer.cpp b/toolkit/components/mediasniffer/nsMediaSniffer.cpp
+--- a/toolkit/components/mediasniffer/nsMediaSniffer.cpp
++++ b/toolkit/components/mediasniffer/nsMediaSniffer.cpp
+@@ -36,16 +36,17 @@ nsMediaSnifferEntry nsMediaSniffer::sSni
+ PATTERN_ENTRY("\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF", "RIFF\x00\x00\x00\x00WAVE", AUDIO_WAV),
+ // mp3 with ID3 tags, the string "ID3".
+ PATTERN_ENTRY("\xFF\xFF\xFF", "ID3", AUDIO_MP3)
+ };
+
+ // For a complete list of file types, see http://www.ftyps.com/index.html
+ nsMediaSnifferEntry sFtypEntries[] = {
+ PATTERN_ENTRY("\xFF\xFF\xFF", "mp4", VIDEO_MP4), // Could be mp41 or mp42.
++ PATTERN_ENTRY("\xFF\xFF\xFF", "avc", VIDEO_MP4), // Could be avc1, avc2, ...
+ PATTERN_ENTRY("\xFF\xFF\xFF", "3gp", VIDEO_3GPP), // Could be 3gp4, 3gp5, ...
+ PATTERN_ENTRY("\xFF\xFF\xFF\xFF", "M4A ", AUDIO_MP4),
+ PATTERN_ENTRY("\xFF\xFF\xFF\xFF", "M4P ", AUDIO_MP4)
+ };
+
+ static bool MatchesBrands(const uint8_t aData[4], nsACString& aSniffedType)
+ {
+ for (size_t i = 0; i < mozilla::ArrayLength(sFtypEntries); ++i) {
+
+
+# HG changeset patch
+# User Jean-Yves Avenard <jyavenard at mozilla.com>
+# Date 1454373529 -39600
+# Node ID f7d66b2782266c066f2efecc9f066af01472ffb5
+# Parent b237f1bffcfd9b7c7da767ffa54dbf4ed7b68321
+Bug 1244523: P1. Allow video/quicktime mimetype. r=cpearce
+
+It's just like video/mp4
+
+
+diff --git a/dom/media/fmp4/MP4Decoder.cpp b/dom/media/fmp4/MP4Decoder.cpp
+--- a/dom/media/fmp4/MP4Decoder.cpp
++++ b/dom/media/fmp4/MP4Decoder.cpp
+@@ -102,16 +102,17 @@ MP4Decoder::CanHandleMediaType(const nsA
+ const bool isMP4Audio = aMIMETypeExcludingCodecs.EqualsASCII("audio/mp4") ||
+ aMIMETypeExcludingCodecs.EqualsASCII("audio/x-m4a");
+ const bool isMP4Video =
+ // On B2G, treat 3GPP as MP4 when Gonk PDM is available.
+ #ifdef MOZ_GONK_MEDIACODEC
+ aMIMETypeExcludingCodecs.EqualsASCII(VIDEO_3GPP) ||
+ #endif
+ aMIMETypeExcludingCodecs.EqualsASCII("video/mp4") ||
++ aMIMETypeExcludingCodecs.EqualsASCII("video/quicktime") ||
+ aMIMETypeExcludingCodecs.EqualsASCII("video/x-m4v");
+ if (!isMP4Audio && !isMP4Video) {
+ return false;
+ }
+
+ nsTArray<nsCString> codecMimes;
+ if (aCodecs.IsEmpty()) {
+ // No codecs specified. Assume AAC/H.264
+
+
+# HG changeset patch
+# User Jean-Yves Avenard <jyavenard at mozilla.com>
+# Date 1454373530 -39600
+# Node ID b0c3e8efafc8aa13935d023762e26495fc9b99a9
+# Parent f7d66b2782266c066f2efecc9f066af01472ffb5
+Bug 1244523: [mp4] P2. Have sniffer recognise ftyp qt subtype. r=cpearce
+
+
+diff --git a/toolkit/components/mediasniffer/nsMediaSniffer.cpp b/toolkit/components/mediasniffer/nsMediaSniffer.cpp
+--- a/toolkit/components/mediasniffer/nsMediaSniffer.cpp
++++ b/toolkit/components/mediasniffer/nsMediaSniffer.cpp
+@@ -37,17 +37,18 @@ nsMediaSnifferEntry nsMediaSniffer::sSni
+ };
+
+ // For a complete list of file types, see http://www.ftyps.com/index.html
+ nsMediaSnifferEntry sFtypEntries[] = {
+ PATTERN_ENTRY("\xFF\xFF\xFF", "mp4", VIDEO_MP4), // Could be mp41 or mp42.
+ PATTERN_ENTRY("\xFF\xFF\xFF", "avc", VIDEO_MP4), // Could be avc1, avc2, ...
+ PATTERN_ENTRY("\xFF\xFF\xFF", "3gp", VIDEO_3GPP), // Could be 3gp4, 3gp5, ...
+ PATTERN_ENTRY("\xFF\xFF\xFF\xFF", "M4A ", AUDIO_MP4),
+- PATTERN_ENTRY("\xFF\xFF\xFF\xFF", "M4P ", AUDIO_MP4)
++ PATTERN_ENTRY("\xFF\xFF\xFF\xFF", "M4P ", AUDIO_MP4),
++ PATTERN_ENTRY("\xFF\xFF\xFF\xFF", "qt ", VIDEO_MP4),
+ };
+
+ static bool MatchesBrands(const uint8_t aData[4], nsACString& aSniffedType)
+ {
+ for (size_t i = 0; i < mozilla::ArrayLength(sFtypEntries); ++i) {
+ const auto& currentEntry = sFtypEntries[i];
+ bool matched = true;
+ MOZ_ASSERT(currentEntry.mLength <= 4, "Pattern is too large to match brand strings.");
+
+
+# HG changeset patch
+# User Jean-Yves Avenard <jyavenard at mozilla.com>
+# Date 1454373533 -39600
+# Node ID 15d15d76aae97b14717eded043ea73cc81fe50e6
+# Parent b0c3e8efafc8aa13935d023762e26495fc9b99a9
+Bug 1244523: [mp4] P3. Skip four bytes when we hit a zero length box, r=kentuckyfriedtakahe
+
+Similar to bug 1180101, but don't handle only the last box in the file.
+
+
+diff --git a/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp
+--- a/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp
++++ b/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp
+@@ -646,24 +646,24 @@ static bool ValidInputSize(int32_t size)
+ // frame. This is a reasonable cut-off for a lossy codec,
+ // combined with the current Firefox limit to 5k video.
+ return (size > 0 && size <= 4 * (1920 * 1080) * 3 / 2);
+ }
+
+ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
+ ALOGV("entering parseChunk %lld/%d", *offset, depth);
+ uint32_t hdr[2];
+- ssize_t nbytes;
+- if ((nbytes = mDataSource->readAt(*offset, hdr, 8)) < 8) {
+- if (nbytes == 4) {
+- if (!hdr[0]) {
+- *offset += 4;
+- return OK;
+- }
+- }
++ if (mDataSource->readAt(*offset, hdr, 4) < 4) {
++ return ERROR_IO;
++ }
++ if (!hdr[0]) {
++ *offset += 4;
++ return OK;
++ }
++ if (mDataSource->readAt(*offset + 4, hdr + 1, 4) < 4) {
+ return ERROR_IO;
+ }
+ uint64_t chunk_size = ntohl(hdr[0]);
+ uint32_t chunk_type = ntohl(hdr[1]);
+ off64_t data_offset = *offset + 8;
+
+ if (chunk_size == 1) {
+ if (mDataSource->readAt(*offset + 8, &chunk_size, 8) < 8) {
+
More information about the arch-commits
mailing list