kristinbranson / APT

Animal Part Tracker
GNU General Public License v3.0
71 stars 16 forks source link

mjpeg reader fails in Mac. #222

Open piperod opened 5 years ago

piperod commented 5 years ago

We tested on my computer and Alice and seems like there is a problem with the reader for mjpeg in mac. My trace of the error is :

Error using get_readframe_fcn (line 385) Could not open file ... /20160214T111910_1_hour_segment_02_0_to_3600_subset.mjpg with VideoReader: Error using VideoReader/init (line 611) The file does not appear to have any video data.

Error in VideoReader (line 176) obj.init(fileName);

Error in get_readframe_fcn (line 328) readerobj = VideoReader(filename);

Error in MovieReader/open (line 124) get_readframe_fcn(obj.filename,'preload',obj.preload);%,'neednframes',obj.neednframes);

Error in Labeler/movieAdd (line 2366) mr.open(movfilefull);

Error in MovieManagerController/addLabelerMovie (line 377) lObj.movieAdd(movfile,trxfile);

Error in MovieManagerController/cbkPushButton (line 206) obj.addLabelerMovie();

Error in MovieManagerController>@(s,e)obj.cbkPushButton(s,e) (line 107) h.Callback = @(s,e)obj.cbkPushButton(s,e);

Error in MovieReader/open (line 124) get_readframe_fcn(obj.filename,'preload',obj.preload);%,'neednframes',obj.neednframes);

Error in Labeler/movieAdd (line 2366) mr.open(movfilefull);

Error in MovieManagerController/addLabelerMovie (line 377) lObj.movieAdd(movfile,trxfile);

Error in MovieManagerController/cbkPushButton (line 206) obj.addLabelerMovie();

Error in MovieManagerController>@(s,e)obj.cbkPushButton(s,e) (line 107) h.Callback = @(s,e)obj.cbkPushButton(s,e);

Error while evaluating UIControl Callback.

Alice's trace:

Error using parsejpg8 Requested 8796093024256x11172868369797873665 (17179869184.0GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information.

Error in ReadIndexedMJPGHeader (line 40) im = parsejpg8(filename,headerinfo.frame2file(1));

The file is not really that big. Is about 1.6 GB

allenleetc commented 5 years ago

parsejpg8 in jaaba, source from parsejpg8 in motr, is very old possibly hasn't been rebuilt since 2010. Try rebuilding on a recent MacOS+MATLAB.

In motr (https://github.com/motr/motr), Modules/MEX_Code/parsejpg8, see make_parsejpg8.m test_parsejpg8.m