mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-25 09:57:32 +09:00
parent
b586913598
commit
2531de02eb
85 changed files with 68 additions and 1357 deletions
|
|
@ -26,9 +26,6 @@ using namespace android;
|
|||
#include "runnable_utils.h"
|
||||
|
||||
// Gecko
|
||||
#if defined(MOZ_WIDGET_GONK) && ANDROID_VERSION >= 21
|
||||
#include "GonkBufferQueueProducer.h"
|
||||
#endif
|
||||
#include "GonkNativeWindow.h"
|
||||
#include "GrallocImages.h"
|
||||
#include "mozilla/Atomics.h"
|
||||
|
|
@ -326,30 +323,16 @@ public:
|
|||
mHeight = aHeight;
|
||||
|
||||
sp<Surface> surface = nullptr;
|
||||
#if defined(MOZ_WIDGET_GONK) && ANDROID_VERSION >= 21
|
||||
sp<IGraphicBufferProducer> producer;
|
||||
sp<IGonkGraphicBufferConsumer> consumer;
|
||||
GonkBufferQueue::createBufferQueue(&producer, &consumer);
|
||||
mNativeWindow = new GonkNativeWindow(consumer);
|
||||
#else
|
||||
mNativeWindow = new GonkNativeWindow();
|
||||
#endif
|
||||
if (mNativeWindow.get()) {
|
||||
// listen to buffers queued by MediaCodec::RenderOutputBufferAndRelease().
|
||||
mNativeWindow->setNewFrameCallback(this);
|
||||
// XXX remove buffer changes after a better solution lands - bug 1009420
|
||||
#if defined(MOZ_WIDGET_GONK) && ANDROID_VERSION >= 21
|
||||
static_cast<GonkBufferQueueProducer*>(producer.get())->setSynchronousMode(false);
|
||||
// More spare buffers to avoid OMX decoder waiting for native window
|
||||
consumer->setMaxAcquiredBufferCount(WEBRTC_OMX_H264_MIN_DECODE_BUFFERS);
|
||||
surface = new Surface(producer);
|
||||
#else
|
||||
sp<GonkBufferQueue> bq = mNativeWindow->getBufferQueue();
|
||||
bq->setSynchronousMode(false);
|
||||
// More spare buffers to avoid OMX decoder waiting for native window
|
||||
bq->setMaxAcquiredBufferCount(WEBRTC_OMX_H264_MIN_DECODE_BUFFERS);
|
||||
surface = new Surface(bq);
|
||||
#endif
|
||||
}
|
||||
status_t result = mCodec->configure(config, surface, nullptr, 0);
|
||||
if (result == OK) {
|
||||
|
|
|
|||
|
|
@ -2217,11 +2217,7 @@ public:
|
|||
#if defined(MOZILLA_INTERNAL_API)
|
||||
if (buffer) {
|
||||
// Create a video frame using |buffer|.
|
||||
#ifdef MOZ_WIDGET_GONK
|
||||
RefPtr<PlanarYCbCrImage> yuvImage = new GrallocImage();
|
||||
#else
|
||||
RefPtr<PlanarYCbCrImage> yuvImage = image_container_->CreatePlanarYCbCrImage();
|
||||
#endif
|
||||
uint8_t* frame = const_cast<uint8_t*>(static_cast<const uint8_t*> (buffer));
|
||||
|
||||
PlanarYCbCrData yuvData;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue