Software Archive
Read-only legacy content
17061 Discussions

Randomly occuring PXC_STATUS_EXEC_ABORTED (-301) error

Elad_P_
Beginner
463 Views

Hi.

I wrote a small test program meant to test frame rates of raw streams.

Basically all it does is:

1) initialize a session.

2) Queries available devices, streams and stream configurations.

3) Create's a session manager and reads 500 frames (using a user selected stream and stream profile).

 

Sometimes it works, and sometimes I get -301 error.

This seems to be random.

Is there a reason for this?

I'm attaching the logs I gather.

I'm using Win 10, 64bit on a Skylake CPU with an MSI board.

0 Kudos
10 Replies
jb455
Valued Contributor II
463 Views

I was getting this when using EnableStream without specifying the FPS. Once I added the FPS argument, the error code stopped popping up. 

0 Kudos
Elad_P_
Beginner
463 Views

Well,

 

I do specify the FPS in EnableStream explicitly.

I noticed that this may happen if I run it once on IR stream and then again on depth stream.

 

0 Kudos
jb455
Valued Contributor II
463 Views

I was doing it with two streams too (depth and colour). Are you requesting the streams to be the same rate? What arguments are you giving AcquireFrame()?

0 Kudos
Elad_P_
Beginner
463 Views

Hi James, 

thank you for responding.

The program only uses 1 stream at a time.

It works as follows:

Ask the user to select a stream type (color, ir or depth) from a list of available streams.

Ask the user to select a stream configuration (resolution, FPS...) from a list of available configuration for the selected stream type.

It then enables the requested stream with the requested configuration and FPS.

The main loop is very simple:

for (int i=0; i<500; i++) {
        pxcStatus status = m_pSenseManager->AcquireFrame(false);
        if (!checkStatus(status)) break;
        PXCCapture::Sample *sample = m_pSenseManager->QuerySample();
        m_pSenseManager->ReleaseFrame();
}

I get the impression that if I run the program once with an IR stream selected it works.

If immediately after this I run it again with a depth stream selected it doesn't work.

0 Kudos
jb455
Valued Contributor II
463 Views

Try commenting out the if (!checkStatus(status)) break; line and see if sample contains the image you want. I did notice that sometimes this error comes up but it did actually get the frame successfully. You could add if (sample==null || sample.depth == null) {m_pSenseManager->ReleaseFrame(); continue;} (or however you say that in C++), and see if that works (though obviously you may end up with fewer than 500 frames).

0 Kudos
Elad_P_
Beginner
463 Views

Tried it but I'm getting an empty image (randomly).

I'm using PXCSenseManager::CreateInstance to create a senseManager object.

How do I know which capture algorithm is used to stream (I have 2 listed: RealSense and VideoCapture)?

Also, how do I know which device is used?

 

 

0 Kudos
jb455
Valued Contributor II
463 Views

For your first question, I've never tried it so I'm not sure if it does what you want but have you seen QueryModule?

To get the device you can use SenseManager.captureManager.QueryDevice();

0 Kudos
Elad_P_
Beginner
463 Views

Looking at the "Enumerating Devices" section in the SDK documentation I can see how to list the different modules and the different devices.

My question is, when I create a SenseManager and start streaming, what module and what device is actually used.

Can I set this some how?

0 Kudos
jb455
Valued Contributor II
463 Views

The Raw Streams sample has code for listing all available RealSense devices, then specifying which one you want to use when initialising the streams. As far as I know, you have to enable each module specifically, ie EnableStream() enables the streaming module, Enable3DScan enables 3D scan etc... I don't know if enabling some modules will automatically enable others too.

0 Kudos
Elad_P_
Beginner
463 Views

Hi James, thank you very much for taking the time to assist me, it is much appreciated.

I followed the samples.

Everything is working most of the time (raw streams and hand tracking algorithm).

I just keep getting this -301 error sometimes. When this happens, it's straight when trying to acquire the first sample.

B.T.W, the documentation for AcquireFrame doesn't list this error as a possible return value.

I think it is either a hardware problem in the camera or my computer or a software issue in the SDK or DCM or whatever.

I've been reading in the threads that I'm not the only one who encountered such an error.

 

If someone from Intel reads this, then I have the following comment/request:

It is pretty strange that Intel has no official support channel to deal with such cases. They do supply a logging utility in the SDK information viewer, which I guess is meant for debug purposes (I attached the logs in the thread). But there appears to be no official destination to send these logs to. So basically I'm left with a randomly working product and the good will of people in the forum (luckily, there are some good people in the forum).

Even official responses such as "this is a limitation", "we are aware of the problem but its low priority for us" etc. will be better then the current state.

If its a hardware issue not related to the camera, a list of compatible computers/hardware would be good.

If it is an issue with the camera (I've been having issues with it on another computer with qualifying specs), then some clear means to replace the unit.

Sincerely,

Not giving up yet :)

0 Kudos
Reply