Skip to content
Snippets Groups Projects
Commit f11902a7 authored by Michael Vines's avatar Michael Vines Committed by Gerrit - the friendly Code Review server
Browse files

Gecko patches for API level 22

Change-Id: I8e4b0d37f98a3f72bc90c1b64c106c0bb06ca4dc
parent 36f56cfe
No related branches found
No related tags found
No related merge requests found
From a49c14cf336031e9a69f07a422cf19b906e61e58 Mon Sep 17 00:00:00 2001
From: Michael Vines <mvines@codeaurora.org>
Date: Wed, 18 Mar 2015 14:34:48 -0700
Subject: [PATCH 1/4] Bug 1144512 - Add b2g build support for API level 22
Change-Id: Ibd833ee7d74716d86d23a5b664a7e414211d18b7
---
b2g/app/moz.build | 2 +-
configure.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/b2g/app/moz.build b/b2g/app/moz.build
index c6736b3..1f95405 100644
--- a/b2g/app/moz.build
+++ b/b2g/app/moz.build
@@ -58,7 +58,7 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
'cutils',
]
OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
- if CONFIG['ANDROID_VERSION'] in ('17', '18', '19', '21'):
+ if CONFIG['ANDROID_VERSION'] in ('17', '18', '19', '21', '22'):
OS_LIBS += [
'gui',
'suspend',
diff --git a/configure.in b/configure.in
index 72bff25..2250f4b 100644
--- a/configure.in
+++ b/configure.in
@@ -286,7 +286,7 @@ if test -n "$gonkdir" ; then
AC_DEFINE(MOZ_AUDIO_OFFLOAD)
MOZ_FMP4=1
;;
- 21)
+ 21|22)
GONK_INCLUDES="-I$gonkdir/frameworks/native/include -I$gonkdir/frameworks/av/include -I$gonkdir/frameworks/av/include/media -I$gonkdir/frameworks/av/include/camera -I$gonkdir/frameworks/native/include/media/openmax -I$gonkdir/frameworks/av/media/libstagefright/include"
MOZ_AUDIO_OFFLOAD=1
MOZ_OMX_DECODER=1
--
1.8.2.1
From f2957b0235cdc626a5984e7d1b9881c0ddde9d2d Mon Sep 17 00:00:00 2001
From: Michael Vines <mvines@codeaurora.org>
Date: Wed, 18 Mar 2015 14:41:11 -0700
Subject: [PATCH 2/4] Bug 1144513 - Use DISCONTINUITY_TIME as _SEEK is gone
from API level 22
Change-Id: I10619bfdae49766e3dedd16f8e179f8d41f2fb19
---
netwerk/protocol/rtsp/rtsp/RTSPSource.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/netwerk/protocol/rtsp/rtsp/RTSPSource.cpp b/netwerk/protocol/rtsp/rtsp/RTSPSource.cpp
index 315aec9..0649f58 100644
--- a/netwerk/protocol/rtsp/rtsp/RTSPSource.cpp
+++ b/netwerk/protocol/rtsp/rtsp/RTSPSource.cpp
@@ -494,7 +494,7 @@ void RTSPSource::onMessageReceived(const sp<AMessage> &msg) {
sp<AnotherPacketSource> source = info->mSource;
if (source != NULL) {
#if ANDROID_VERSION >= 21
- source->queueDiscontinuity(ATSParser::DISCONTINUITY_SEEK, NULL,
+ source->queueDiscontinuity(ATSParser::DISCONTINUITY_TIME, NULL,
true /* discard */);
#else
source->queueDiscontinuity(ATSParser::DISCONTINUITY_SEEK, NULL);
--
1.8.2.1
From a5dc50e9229ea93a692f146a112fa5c717d8f077 Mon Sep 17 00:00:00 2001
From: Michael Vines <mvines@codeaurora.org>
Date: Wed, 18 Mar 2015 15:02:19 -0700
Subject: [PATCH 3/4] Bug 1144514 - Whitelist pread64
Change-Id: I445e6988981ead54f34d4c44322954b49662aafe
---
security/sandbox/linux/SandboxFilter.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
index db4fa75..39d24e3 100644
--- a/security/sandbox/linux/SandboxFilter.cpp
+++ b/security/sandbox/linux/SandboxFilter.cpp
@@ -145,6 +145,9 @@ SandboxFilterImplContent::Build() {
#if SYSCALL_EXISTS(ftruncate64)
Allow(SYSCALL(ftruncate64));
#endif
+#if SYSCALL_EXISTS(pread64)
+ Allow(SYSCALL(pread64));
+#endif
/* ioctl() is for GL. Remove when GL proxy is implemented.
* Additionally ioctl() might be a place where we want to have
@@ -286,7 +289,6 @@ SandboxFilterImplContent::Build() {
Allow(SYSCALL(mkdir));
Allow(SYSCALL(getcwd));
Allow(SYSCALL(readahead));
- Allow(SYSCALL(pread64));
Allow(SYSCALL(statfs));
#if SYSCALL_EXISTS(ugetrlimit)
Allow(SYSCALL(ugetrlimit));
--
1.8.2.1
From ae4139a7b5dfb0b0326c84070e52fa58e43a54fe Mon Sep 17 00:00:00 2001
From: Michael Vines <mvines@codeaurora.org>
Date: Wed, 18 Mar 2015 15:03:15 -0700
Subject: [PATCH] Bug 1144515 - ConsumerListener interface changes
Change-Id: I3a3e4d6f58a42576197356ba4b7301c670298c74
---
widget/gonk/libdisplay/FramebufferSurface.cpp | 4 ++++
widget/gonk/libdisplay/FramebufferSurface.h | 4 ++++
.../nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.cpp | 16 ++++++++++++++++
.../nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.h | 5 +++++
.../GonkBufferQueueLL/GonkBufferQueueProducer.cpp | 9 ++++++++-
widget/gonk/nativewindow/GonkConsumerBaseLL.cpp | 4 ++++
widget/gonk/nativewindow/GonkConsumerBaseLL.h | 5 +++++
widget/gonk/nativewindow/GonkNativeWindowLL.cpp | 5 +++++
widget/gonk/nativewindow/GonkNativeWindowLL.h | 4 ++++
9 files changed, 55 insertions(+), 1 deletion(-)
diff --git a/widget/gonk/libdisplay/FramebufferSurface.cpp b/widget/gonk/libdisplay/FramebufferSurface.cpp
index 32d0907..3282448 100644
--- a/widget/gonk/libdisplay/FramebufferSurface.cpp
+++ b/widget/gonk/libdisplay/FramebufferSurface.cpp
@@ -129,7 +129,11 @@ status_t FramebufferSurface::nextBuffer(sp<GraphicBuffer>& outBuffer, sp<Fence>&
}
// Overrides ConsumerBase::onFrameAvailable(), does not call base class impl.
+#if ANDROID_VERSION >= 22
+void FramebufferSurface::onFrameAvailable(const ::android::BufferItem &item) {
+#else
void FramebufferSurface::onFrameAvailable() {
+#endif
sp<GraphicBuffer> buf;
sp<Fence> acquireFence;
status_t err = nextBuffer(buf, acquireFence);
diff --git a/widget/gonk/libdisplay/FramebufferSurface.h b/widget/gonk/libdisplay/FramebufferSurface.h
index 1528c6e..0e4c2aa 100644
--- a/widget/gonk/libdisplay/FramebufferSurface.h
+++ b/widget/gonk/libdisplay/FramebufferSurface.h
@@ -63,7 +63,11 @@ public:
private:
virtual ~FramebufferSurface() { }; // this class cannot be overloaded
+#if ANDROID_VERSION >= 22
+ virtual void onFrameAvailable(const ::android::BufferItem &item);
+#else
virtual void onFrameAvailable();
+#endif
virtual void freeBufferLocked(int slotIndex);
// nextBuffer waits for and then latches the next buffer from the
diff --git a/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.cpp b/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.cpp
index 1056c3b..649d06b 100644
--- a/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.cpp
+++ b/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.cpp
@@ -32,12 +32,28 @@ GonkBufferQueue::ProxyConsumerListener::ProxyConsumerListener(
GonkBufferQueue::ProxyConsumerListener::~ProxyConsumerListener() {}
+#if ANDROID_VERSION == 21
void GonkBufferQueue::ProxyConsumerListener::onFrameAvailable() {
sp<ConsumerListener> listener(mConsumerListener.promote());
if (listener != NULL) {
listener->onFrameAvailable();
}
}
+#else
+void GonkBufferQueue::ProxyConsumerListener::onFrameAvailable(const ::android::BufferItem& item) {
+ sp<ConsumerListener> listener(mConsumerListener.promote());
+ if (listener != NULL) {
+ listener->onFrameAvailable(item);
+ }
+}
+
+void GonkBufferQueue::ProxyConsumerListener::onFrameReplaced(const ::android::BufferItem& item) {
+ sp<ConsumerListener> listener(mConsumerListener.promote());
+ if (listener != NULL) {
+ listener->onFrameReplaced(item);
+ }
+}
+#endif
void GonkBufferQueue::ProxyConsumerListener::onBuffersReleased() {
sp<ConsumerListener> listener(mConsumerListener.promote());
diff --git a/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.h b/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.h
index 9fb740a..b1b4e06 100644
--- a/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.h
+++ b/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueLL.h
@@ -63,7 +63,12 @@ public:
public:
ProxyConsumerListener(const wp<ConsumerListener>& consumerListener);
virtual ~ProxyConsumerListener();
+#if ANDROID_VERSION == 21
virtual void onFrameAvailable();
+#else
+ virtual void onFrameAvailable(const ::android::BufferItem& item);
+ virtual void onFrameReplaced(const ::android::BufferItem& item);
+#endif
virtual void onBuffersReleased();
virtual void onSidebandStreamChanged();
private:
diff --git a/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueProducer.cpp b/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueProducer.cpp
index 5d3bbed..3340c97 100644
--- a/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueProducer.cpp
+++ b/widget/gonk/nativewindow/GonkBufferQueueLL/GonkBufferQueueProducer.cpp
@@ -537,6 +537,7 @@ status_t GonkBufferQueueProducer::queueBuffer(int slot,
return BAD_VALUE;
}
+ GonkBufferItem item;
sp<IConsumerListener> listener;
{ // Autolock scope
Mutex::Autolock lock(mCore->mMutex);
@@ -593,7 +594,6 @@ status_t GonkBufferQueueProducer::queueBuffer(int slot,
++mCore->mFrameCounter;
mSlots[slot].mFrameNumber = mCore->mFrameCounter;
- GonkBufferItem item;
item.mAcquireCalled = mSlots[slot].mAcquireCalled;
item.mGraphicBuffer = mSlots[slot].mGraphicBuffer;
item.mCrop = crop;
@@ -641,11 +641,18 @@ status_t GonkBufferQueueProducer::queueBuffer(int slot,
output->inflate(mCore->mDefaultWidth, mCore->mDefaultHeight,
mCore->mTransformHint, mCore->mQueue.size());
+
+ item.mGraphicBuffer.clear();
+ item.mSlot = GonkBufferItem::INVALID_BUFFER_SLOT;
} // Autolock scope
// Call back without lock held
if (listener != NULL) {
+#if ANDROID_VERSION == 21
listener->onFrameAvailable();
+#else
+ listener->onFrameAvailable(reinterpret_cast<::android::BufferItem&>(item));
+#endif
}
return NO_ERROR;
diff --git a/widget/gonk/nativewindow/GonkConsumerBaseLL.cpp b/widget/gonk/nativewindow/GonkConsumerBaseLL.cpp
index 8444665..36e4a83 100644
--- a/widget/gonk/nativewindow/GonkConsumerBaseLL.cpp
+++ b/widget/gonk/nativewindow/GonkConsumerBaseLL.cpp
@@ -85,7 +85,11 @@ void GonkConsumerBase::freeBufferLocked(int slotIndex) {
mSlots[slotIndex].mFrameNumber = 0;
}
+#if ANDROID_VERSION == 21
void GonkConsumerBase::onFrameAvailable() {
+#else
+void GonkConsumerBase::onFrameAvailable(const ::android::BufferItem& item) {
+#endif
ALOGV("onFrameAvailable");
sp<FrameAvailableListener> listener;
diff --git a/widget/gonk/nativewindow/GonkConsumerBaseLL.h b/widget/gonk/nativewindow/GonkConsumerBaseLL.h
index ba7b6c3..0b2c2d1 100644
--- a/widget/gonk/nativewindow/GonkConsumerBaseLL.h
+++ b/widget/gonk/nativewindow/GonkConsumerBaseLL.h
@@ -107,7 +107,12 @@ protected:
// the GonkConsumerBase implementation must be called from the derived class.
// The GonkConsumerBase version of onSidebandStreamChanged does nothing and can
// be overriden by derived classes if they want the notification.
+#if ANDROID_VERSION == 21
virtual void onFrameAvailable();
+#else
+ virtual void onFrameAvailable(const ::android::BufferItem& item);
+ virtual void onFrameReplaced(const ::android::BufferItem& item) {};
+#endif
virtual void onBuffersReleased();
virtual void onSidebandStreamChanged();
diff --git a/widget/gonk/nativewindow/GonkNativeWindowLL.cpp b/widget/gonk/nativewindow/GonkNativeWindowLL.cpp
index ee939ce..0cccc9d 100644
--- a/widget/gonk/nativewindow/GonkNativeWindowLL.cpp
+++ b/widget/gonk/nativewindow/GonkNativeWindowLL.cpp
@@ -188,8 +188,13 @@ void GonkNativeWindow::setNewFrameCallback(
mNewFrameCallback = callback;
}
+#if ANDROID_VERSION == 21
void GonkNativeWindow::onFrameAvailable() {
GonkConsumerBase::onFrameAvailable();
+#else
+void GonkNativeWindow::onFrameAvailable(const ::android::BufferItem &item) {
+ GonkConsumerBase::onFrameAvailable(item);
+#endif
if (mNewFrameCallback) {
mNewFrameCallback->OnNewFrame();
diff --git a/widget/gonk/nativewindow/GonkNativeWindowLL.h b/widget/gonk/nativewindow/GonkNativeWindowLL.h
index a257cc5..1a9b210 100644
--- a/widget/gonk/nativewindow/GonkNativeWindowLL.h
+++ b/widget/gonk/nativewindow/GonkNativeWindowLL.h
@@ -118,7 +118,11 @@ class GonkNativeWindow: public GonkConsumerBase
static void RecycleCallback(TextureClient* client, void* closure);
protected:
+#if ANDROID_VERSION == 21
virtual void onFrameAvailable();
+#else
+ virtual void onFrameAvailable(const ::android::BufferItem &item);
+#endif
private:
GonkNativeWindowNewFrameCallback* mNewFrameCallback;
--
1.8.2.1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment