DCHECK failure when using RealSense R200 depth stream |
|||||
Issue descriptionOccurs when I use the Intel RealSense camera on https://webrtc.github.io/samples/src/content/devices/input-output/ and try to see the depth data (RGB data work fine). Happens on the debug build 3c8a4fdc731c2d66, doesn't happen with my normal browser 53.0.2785.143. It's not just the assertion that's problematic - if I disable it, the the data shown on the camera are garbage (while in my normal browser, the depth data are shown properly). [6457:6649:1107/135508:FATAL:video_capture_device_client.cc(397)] Check failed: static_cast<size_t>(length) >= frame_format.ImageAllocationSize() (589064 vs. 590320) #0 0x7fdf328cf9fe base::debug::StackTrace::StackTrace() #1 0x7fdf3293ef3f logging::LogMessage::~LogMessage() #2 0x7fdf28d93e7d media::VideoCaptureDeviceClient::OnIncomingCapturedY16Data() #3 0x7fdf28d92d52 media::VideoCaptureDeviceClient::OnIncomingCapturedData() #4 0x7fdf28d7c0e1 media::V4L2CaptureDelegate::DoCapture() #5 0x7fdf28d824d7 _ZN4base8internal13FunctorTraitsIMN5media19V4L2CaptureDelegateEFvvEvE6InvokeIRK13scoped_refptrIS3_EJEEEvS5_OT_DpOT0_ #6 0x7fdf28d82421 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN5media19V4L2CaptureDelegateEFvvEJRK13scoped_refptrIS5_EEEEvOT_DpOT0_ #7 0x7fdf28d823c2 _ZN4base8internal7InvokerINS0_9BindStateIMN5media19V4L2CaptureDelegateEFvvEJ13scoped_refptrIS4_EEEEFvvEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #8 0x7fdf28d8230c _ZN4base8internal7InvokerINS0_9BindStateIMN5media19V4L2CaptureDelegateEFvvEJ13scoped_refptrIS4_EEEEFvvEE3RunEPNS0_13BindStateBaseE #9 0x7fdf328d58f1 _ZNO4base8internal8RunMixinINS_8CallbackIFvvELNS0_8CopyModeE0ELNS0_10RepeatModeE0EEEE3RunEv #10 0x7fdf328d52f9 base::debug::TaskAnnotator::RunTask() #11 0x7fdf32967f4a base::MessageLoop::RunTask() #12 0x7fdf329681d4 base::MessageLoop::DeferOrRunPendingTask() #13 0x7fdf329684be base::MessageLoop::DoWork() #14 0x7fdf3297fe13 base::MessagePumpDefault::Run() #15 0x7fdf32967aca base::MessageLoop::RunHandler() #16 0x7fdf32a0fd54 base::RunLoop::Run() #17 0x7fdf32ab6128 base::Thread::Run() #18 0x7fdf32ab69ca base::Thread::ThreadMain() #19 0x7fdf32a9d9ea base::(anonymous namespace)::ThreadFunc() #20 0x7fdf32d10464 start_thread #21 0x7fdf1f6b99df clone
,
Nov 7 2016
There seems to be two issues: 1. DCHECK failure on odd frame sizes - apparently. although spec states it is 628x468 [1], it is 628x429[2]. This patch should address it: https://crrev.com/2481343002/ 2. Rendering issue. a) c#0: "the data shown on the camera are garbage" How does this look - screenshot should help on guessing if it is about wrong row stride. b) Using version 53.0.2785.143, the depth is displayed. This could only mean that the depth is provided also through YUV or some other than Y16 format. Important to know what format and what is the resolution/fps for the stream. The spec [1] doesn't state anything about stream formats used for depth device. Screenshot here could also help to understand if it is the same depth device that was selected in combo box in both release and developer build. Anyway, you got the camera to debug with Y16 contribution disabled in V4L2CaptureDelegate. [1] http://registrationcenter-download.intel.com/akdlm/irc_nas/9078/release_notes_RealSense_SDK_2016_R2.pdf [2] https://github.com/IntelRealSense/librealsense/blob/cf6f1ca4b7687b04007c0c8a17ef509200af909a/src/ds-device.cpp#L416
,
Nov 8 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/54d98c87e71183a3346d3bbcc1a20b0338af9ffe commit 54d98c87e71183a3346d3bbcc1a20b0338af9ffe Author: aleksandar.stojiljkovic <aleksandar.stojiljkovic@intel.com> Date: Tue Nov 08 01:29:17 2016 VideoFrame::AllocationSize test against odd values. Skip aligning to even dimensions for various non YUV plannar formats. BUG= 662911 Review-Url: https://codereview.chromium.org/2481343002 Cr-Commit-Position: refs/heads/master@{#430465} [modify] https://crrev.com/54d98c87e71183a3346d3bbcc1a20b0338af9ffe/media/base/video_frame.cc [modify] https://crrev.com/54d98c87e71183a3346d3bbcc1a20b0338af9ffe/media/base/video_frame_unittest.cc
,
Nov 8 2016
#c3 fixes the #c2.1 and the original title. Reducing priority and renaming to "Support RealSense R200 depth stream".
,
Nov 8 2016
The attached images were taken using my normal packaged browser. I might have overstated it a bit when I said that it "works" - the video size is quite weird and it's very grainy (the RGB part looks normal). If you squint a lot, you can see a person rotated 90 degrees on top of the first one, and a person rotated 180 degrees in the second.
,
Nov 8 2016
The attached image is the second output (I guess depth) when using the build from git and the DCHECK commented out, looking at a window. The third one (should be IR) is completely black.
,
Nov 8 2016
Patch https://crrev.com/2481343002/ fixed the DCHECK issue. The output of the camera is supposedly as expected.
,
Nov 8 2016
#5 This was the original state - pushing Y16 through YUV and not working. See the screenshot of the same camera in https://bugs.chromium.org/p/chromium/issues/detail?id=624436#c0. So, no regression there. #6 This looks wrong but might also be expected state now and seems that the row stride is correct. The issue is that for R200 only 10 or 11 bits (of 16 bits) are holding valid information - high byte including only 2 or 3 bits. This could be better explained from here: https://bugs.chromium.org/p/chromium/issues/detail?id=624436#c16 low byte is red and high byte is green (yellowish on the picture). A very few dots are green. As we render only high byte we see only very few dots. To fix this, it is good to check the format specification for the 16-bit format used for R200 and see how many bits hold the useful information.
,
Nov 10 2016
,
Nov 10 2016
I created a new issue #664150 for the problems mentioned in #8. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by aleksand...@intel.com
, Nov 7 2016