Why do I receive the error "GETDATA timed out before FRAMES

Illustration
Wojciech - 2022-01-13T11:48:53+00:00
Question: Why do I receive the error "GETDATA timed out before FRAMES

Why do I receive the error "GETDATA timed out before FRAMES were available" when using GETDATA in Image Acquisition Toolbox 4.3 (R2012a)?   I'm using a camera on a Linux machine. I would like to get image data frame by frame in a for-loop. However, I get errors as follows at the same line of different iterations. What should I do to avoid the error?   Warning: Unable to start acquisition: Error event occurred at 13:57:18 for video input object: YUYV_640x480-linuxvideo-2. The image acquisition device failed to start acquiring images. The image acquisition device failed to start acquiring images. Error in imaqdevice/getdata (line 139) frames = getdata(imaqgate('privateGetField', obj, 'uddobject'),varargin{:}); Error in test (line 8) imageData1=getdata(vid1,1); Error using imaqdevice/getdata (line 146) OBJ is not running and no frames are available. Error in test (line 10) imageData2=getdata(vid2,1);  

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

The error message on your Linux machine is caused by the delay between the device and MATLAB, which is not a constant value and this related to your system and device driver. This is the reason why it happens at random iterations. Due to the delay, there are no available frames when the time exceeds the Timeout value. To ensure that you are getting data from the camera, you have two options:
 
 
1. Setting a larger Timeout value for the object
set(vid,'Timeout',50); %set the Timeout property of VIDEOINPUT object 'vid' to 50 seconds

2. Before GETDATA, wait until there's an available frame

while get(vid,'FramesAvailable')<1  %Wait until at least 1 frame is available

      unavailable=1;

end

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!