Bug 1421187 - P2. Properly set bytesPerPixel in MappedYCbCrTextureData. r?mattwoodrow draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 28 Nov 2017 15:53:54 +0100
changeset 705061 607219d441bf07a22e35a7d52ff3f9c79fd4c888
parent 705060 66b235230c2130a3c2e2fceb37e60f9c4de2aa24
child 705062 86e61836040c433a4c729605b9c9cf75de208527
push id91349
push userbmo:jyavenard@mozilla.com
push dateWed, 29 Nov 2017 12:37:47 +0000
reviewersmattwoodrow
bugs1421187
milestone59.0a1
Bug 1421187 - P2. Properly set bytesPerPixel in MappedYCbCrTextureData. r?mattwoodrow MozReview-Commit-ID: 891mPTv2Npj
gfx/layers/BufferTexture.cpp
--- a/gfx/layers/BufferTexture.cpp
+++ b/gfx/layers/BufferTexture.cpp
@@ -366,31 +366,35 @@ BufferTextureData::BorrowMappedYCbCrData
   const YCbCrDescriptor& desc = mDescriptor.get_YCbCrDescriptor();
 
   uint8_t* data = GetBuffer();
   auto ySize = desc.ySize();
   auto cbCrSize = desc.cbCrSize();
 
   aMap.stereoMode = desc.stereoMode();
   aMap.metadata = nullptr;
+  uint32_t bytesPerPixel = desc.bitDepth() > 8 ? 2 : 1;
 
   aMap.y.data = data + desc.yOffset();
   aMap.y.size = ySize;
   aMap.y.stride = desc.yStride();
   aMap.y.skip = 0;
+  aMap.y.bytesPerPixel = bytesPerPixel;
 
   aMap.cb.data = data + desc.cbOffset();
   aMap.cb.size = cbCrSize;
   aMap.cb.stride = desc.cbCrStride();
   aMap.cb.skip = 0;
+  aMap.cb.bytesPerPixel = bytesPerPixel;
 
   aMap.cr.data = data + desc.crOffset();
   aMap.cr.size = cbCrSize;
   aMap.cr.stride = desc.cbCrStride();
   aMap.cr.skip = 0;
+  aMap.cr.bytesPerPixel = bytesPerPixel;
 
   return true;
 }
 
 bool
 BufferTextureData::UpdateFromSurface(gfx::SourceSurface* aSurface)
 {
   if (mDescriptor.type() != BufferDescriptor::TRGBDescriptor) {