-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"Frame Didn't Arrive Within 15000" issue with D435 while I push rs::frame to std::queue #9501
Comments
Hi @pangpangshui The frame queue of the RealSense SDK can process up to 16 frames at a time. So if the frames are not being released then the queue could get jammed up with frames, causing the application to time-out. The 16-frame limit is addressed in advice in the link below, which recommends using the SDK's Keep() function to resolve the situation. Keep() enables frames to be stored in the computer's memory capacity. An advantage of Keep() is that instead of constantly writing frames to file, you can store all of the frames in memory capacity (so long as you have enough memory capacity remaining as it gets progressively filled during recording) and then close the pipeline and perform batch operations such as post-processing, align and saving to file on the whole set of frames at the same time. |
Thanks. I have a more question, if I use frame.keep(), How should I release thease frames? |
There is a C++ example script for Keep() provided in the link below that you can test. |
I change frame.reset() from protected to public and use it to release frame. It's OK now. Example in #1942 (comment) will lead to memory grows crazy. |
That's great news that you developed a solution - thanks for the update :) |
Issue Description
I want to push rs::frame to queue to save video, and use the origin frame to preview Real-time. But while I push 16 frame to queue, the error occured with using
wait_for_frames
. the code like this:Please help and thanks!
The text was updated successfully, but these errors were encountered: