size_t
YCbCrImageDataSerializer::ComputeMinBufferSize(const gfxIntSize& aYSize,
                                               const gfxIntSize& aCbCrSize)
{
  return ComputeMinBufferSize(gfx::IntSize(aYSize.width, aYSize.height),
                              gfx::IntSize(aCbCrSize.width, aCbCrSize.height));
}
void YCbCrImageDataDeserializerBase::Validate()
{
    mIsValid = false;
    if (!mData) {
        return;
    }
    YCbCrBufferInfo* info = GetYCbCrBufferInfo(mData, mDataSize);
    if (!info) {
        return;
    }
    size_t requiredSize = ComputeMinBufferSize(
                              IntSize(info->mYWidth, info->mYHeight),
                              info->mYStride,
                              IntSize(info->mCbCrWidth, info->mCbCrHeight),
                              info->mCbCrStride);
    mIsValid = requiredSize && requiredSize <= mDataSize;

}
// Minimum required shmem size in bytes
size_t
YCbCrImageDataDeserializerBase::ComputeMinBufferSize(const gfx::IntSize& aYSize,
        const gfx::IntSize& aCbCrSize)
{
    return ComputeMinBufferSize(aYSize, aYSize.width, aCbCrSize, aCbCrSize.width);
}