- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can't start the left or right streams in combination with the color and/or depth stream. Is this by design? I would have thought I'd need the left and right streams to produce the depth stream anyways, so why can't I view them at the same time?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What is your combinations? There are usually constraints on multiple stream configurations. For example, the configuration of an inferred stream may be tied to the corresponding depth stream. When enumerating multiple stream configurations, the QueryStreamProfileSet function returns the unique combinations of all valid stream configurations. Use the IsStreamProfileSetValid function to validate certain stream configuration. You can find detail info @https://software.intel.com/sites/landingpage/realsense/camera-sdk/v1.1/documentation/html/index.html?manuals_enumerate_stream_configuration.html
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just ran some more tests with the example you linked and got some interesting results.
I ran the following code to test all possible combinations of streams if there are ANY valid configurations:
for (int i = 1; i < 0x0020; ++i) { if (i & PXCCapture::STREAM_TYPE_IR) continue; std::cout << "Streams: "; if (i & PXCCapture::STREAM_TYPE_COLOR) { std::cout << "COLOR "; } else { std::cout << " "; } if (i & PXCCapture::STREAM_TYPE_DEPTH) { std::cout << "DEPTH "; } else { std::cout << " "; } if (i & PXCCapture::STREAM_TYPE_LEFT) { std::cout << "LEFT "; } else { std::cout << " "; } if (i & PXCCapture::STREAM_TYPE_RIGHT) { std::cout << "RIGHT "; } else { std::cout << " "; } PXCCapture::StreamType streams = static_cast<PXCCapture::StreamType>(i); PXCCapture::Device::StreamProfileSet profiles = {}; pxcStatus sts = device->QueryStreamProfileSet(streams, 0, &profiles); if (sts == PXC_STATUS_NO_ERROR) std::cout << "=> OK" << std::endl; else std::cout << "=> no valid streams" << std::endl; }
...and got this result:
Streams: COLOR => OK Streams: DEPTH => OK Streams: COLOR DEPTH => OK Streams: LEFT => OK Streams: COLOR LEFT => no valid streams Streams: DEPTH LEFT => no valid streams Streams: COLOR DEPTH LEFT => OK Streams: RIGHT => OK Streams: COLOR RIGHT => no valid streams Streams: DEPTH RIGHT => no valid streams Streams: COLOR DEPTH RIGHT => no valid streams Streams: LEFT RIGHT => OK Streams: COLOR LEFT RIGHT => no valid streams Streams: DEPTH LEFT RIGHT => no valid streams Streams: COLOR DEPTH LEFT RIGHT => OK
I don't really see a pattern here that makes sense to me.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, Not every combination is supported. So it is good for you to check if it is supported.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yeah, I know that. The question was: Why? For example, why does COLOR DEPTH LEFT work, but COLOR DEPTH Right doesn't?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
And, even though it shows valid configurations for the RIGHT stream only, I still can't initialize it.
PXCVideoModule::DataDesc desc = {}; desc.deviceInfo.streams = PXCCapture::STREAM_TYPE_RIGHT; st = senseManager->EnableStreams(&desc); if (st < PXC_STATUS_NO_ERROR) // this is fine return -1; st = senseManager->Init(); if (st < PXC_STATUS_NO_ERROR) // here I get PXC_STATUS_ITEM_UNAVAILABLE return -1;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What combination do you want to use? Just enable STREAM_TYPE_RIGHT?
Henning J. wrote:
And, even though it shows valid configurations for the RIGHT stream only, I still can't initialize it.
PXCVideoModule::DataDesc desc = {}; desc.deviceInfo.streams = PXCCapture::STREAM_TYPE_RIGHT; st = senseManager->EnableStreams(&desc); if (st < PXC_STATUS_NO_ERROR) // this is fine return -1; st = senseManager->Init(); if (st < PXC_STATUS_NO_ERROR) // here I get PXC_STATUS_ITEM_UNAVAILABLE return -1;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What combination do you want to use? Just enable STREAM_TYPE_RIGHT?
Yes, in that case I just wanted to run STREAM_TYPE_RIGHT and it didn't work.
But I'd also like to understand why some of the stream combinations are not supported.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Henning, even from your result, ONLY STREAM_TYPE_RIGHT is not a valid stream for R200.
Streams: DEPTH RIGHT => no valid streams
Some stream combinations are not supported due to hardware and firmware limitation.
Thanks!
Henning J. wrote:
I just ran some more tests with the example you linked and got some interesting results.
I ran the following code to test all possible combinations of streams if there are ANY valid configurations:
for (int i = 1; i < 0x0020; ++i) { if (i & PXCCapture::STREAM_TYPE_IR) continue; std::cout << "Streams: "; if (i & PXCCapture::STREAM_TYPE_COLOR) { std::cout << "COLOR "; } else { std::cout << " "; } if (i & PXCCapture::STREAM_TYPE_DEPTH) { std::cout << "DEPTH "; } else { std::cout << " "; } if (i & PXCCapture::STREAM_TYPE_LEFT) { std::cout << "LEFT "; } else { std::cout << " "; } if (i & PXCCapture::STREAM_TYPE_RIGHT) { std::cout << "RIGHT "; } else { std::cout << " "; } PXCCapture::StreamType streams = static_cast<PXCCapture::StreamType>(i); PXCCapture::Device::StreamProfileSet profiles = {}; pxcStatus sts = device->QueryStreamProfileSet(streams, 0, &profiles); if (sts == PXC_STATUS_NO_ERROR) std::cout << "=> OK" << std::endl; else std::cout << "=> no valid streams" << std::endl; }...and got this result:
Streams: COLOR => OK Streams: DEPTH => OK Streams: COLOR DEPTH => OK Streams: LEFT => OK Streams: COLOR LEFT => no valid streams Streams: DEPTH LEFT => no valid streams Streams: COLOR DEPTH LEFT => OK Streams: RIGHT => OK Streams: COLOR RIGHT => no valid streams Streams: DEPTH RIGHT => no valid streams Streams: COLOR DEPTH RIGHT => no valid streams Streams: LEFT RIGHT => OK Streams: COLOR LEFT RIGHT => no valid streams Streams: DEPTH LEFT RIGHT => no valid streams Streams: COLOR DEPTH LEFT RIGHT => OKI don't really see a pattern here that makes sense to me.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No, the one you quoted is DEPTH and RIGHT together. That doesn't show any valid streams, so it's obvious why it doesn't work.
But only RIGHT show valid streams, but doesn't start.
Streams: RIGHT => OK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It works for me. You can try Capture Viewer under RealSense SDK tool. Here is my screenshot.
Henning J. wrote:
No, the one you quoted is DEPTH and RIGHT together. That doesn't show any valid streams, so it's obvious why it doesn't work.
But only RIGHT show valid streams, but doesn't start.
Streams: RIGHT => OK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Interesting. With the Capture Viewer it works just fine. With the Raw Streams sample or my own code it still doesn't work.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think it is a bug and we will fix it in the future release. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Good to know, thanks

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page