I found that if we use just one pipeline object, and pull color and depth frames though that pipe, the frame rate of both depth and color would be locked to a lower one. But if we want to get the 90 Hz depth video and 1080p 30Hz color video for the same scene, can we create two pipelines and use 2 threads to deal with color and depth frames separately?
The 'Software Support Model' documentation for the 400 Series cameras has information on multiple-process streaming. It is around halfway down the page, under the 'Multi-Streaming Model' heading.
I believe that if one thread is using a certain stream type, the other thread cannot use it. If you want to have color in one thread and depth in another, that should be fine though.