Bug 874726 -split ShmemYCbCrImage into YCbCrImageDataSerializer and YCbCrImageDataDeserializer. r=jrmuizel
This commit is contained in:
@@ -13,9 +13,10 @@
|
||||
#include "mozilla/layers/SharedPlanarYCbCrImage.h"
|
||||
#include "GLContext.h"
|
||||
#include "BasicLayers.h" // for PaintContext
|
||||
#include "ShmemYCbCrImage.h"
|
||||
#include "mozilla/layers/YCbCrImageDataSerializer.h"
|
||||
#include "gfxReusableSurfaceWrapper.h"
|
||||
#include "gfxPlatform.h"
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
using namespace mozilla::gl;
|
||||
|
||||
@@ -277,8 +278,8 @@ AutoLockYCbCrClient::Update(PlanarYCbCrImage* aImage)
|
||||
|
||||
ipc::Shmem& shmem = mDescriptor->get_YCbCrImage().data();
|
||||
|
||||
ShmemYCbCrImage shmemImage(shmem);
|
||||
if (!shmemImage.CopyData(data->mYChannel, data->mCbChannel, data->mCrChannel,
|
||||
YCbCrImageDataSerializer serializer(shmem.get<uint8_t>());
|
||||
if (!serializer.CopyData(data->mYChannel, data->mCbChannel, data->mCrChannel,
|
||||
data->mYSize, data->mYStride,
|
||||
data->mCbCrSize, data->mCbCrStride,
|
||||
data->mYSkip, data->mCbSkip)) {
|
||||
@@ -306,9 +307,9 @@ bool AutoLockYCbCrClient::EnsureTextureClient(PlanarYCbCrImage* aImage)
|
||||
needsAllocation = true;
|
||||
} else {
|
||||
ipc::Shmem& shmem = mDescriptor->get_YCbCrImage().data();
|
||||
ShmemYCbCrImage shmemImage(shmem);
|
||||
if (shmemImage.GetYSize() != data->mYSize ||
|
||||
shmemImage.GetCbCrSize() != data->mCbCrSize) {
|
||||
YCbCrImageDataSerializer serializer(shmem.get<uint8_t>());
|
||||
if (serializer.GetYSize() != data->mYSize ||
|
||||
serializer.GetCbCrSize() != data->mCbCrSize) {
|
||||
needsAllocation = true;
|
||||
}
|
||||
}
|
||||
@@ -320,19 +321,18 @@ bool AutoLockYCbCrClient::EnsureTextureClient(PlanarYCbCrImage* aImage)
|
||||
mTextureClient->ReleaseResources();
|
||||
|
||||
ipc::SharedMemory::SharedMemoryType shmType = OptimalShmemType();
|
||||
size_t size = ShmemYCbCrImage::ComputeMinBufferSize(data->mYSize,
|
||||
data->mCbCrSize);
|
||||
size_t size = YCbCrImageDataSerializer::ComputeMinBufferSize(data->mYSize,
|
||||
data->mCbCrSize);
|
||||
ipc::Shmem shmem;
|
||||
if (!mTextureClient->GetForwarder()->AllocUnsafeShmem(size, shmType, &shmem)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ShmemYCbCrImage::InitializeBufferInfo(shmem.get<uint8_t>(),
|
||||
data->mYSize,
|
||||
data->mCbCrSize);
|
||||
YCbCrImageDataSerializer serializer(shmem.get<uint8_t>());
|
||||
serializer.InitializeBufferInfo(data->mYSize,
|
||||
data->mCbCrSize);
|
||||
|
||||
|
||||
*mDescriptor = YCbCrImage(shmem, 0, 0);
|
||||
*mDescriptor = YCbCrImage(shmem, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user