Hey I noticed very strange error with meta data when I tested my Reader plugins. First I was thinking that I made some mistake, but I completely removed prefetchMetaData() implementation and... still the same. So after some investigation I discovered what happens. Usually Nuke calls function in this order:
prefetchMetaData() open() execute() but from time to time Nuke calls open() function first. Then to handle metadata calls Nuke create new instance of Reader and suddenly it starts to call execute() for this "ghost" Reader instance, with completely weird result. So I have a question: is the order of those function guaranteed by API? The quick way to recreate the problem: load some mov or r3d file and then connect viewMetaData node and viewer. Then wait a few seconds until Nuke calls destructor for the Reader. Then change frame in Viewer and again- wait a moment for destructor and change the frame. After a few repetitions (usually less than ten) an error appears. In case of r3dReader Nuke shows black frame, colorfull noise etc. In case of movReader older versions of Nuke shows "unhandled pixel format" error but Nuke 6.2 crash immediately. This problem affects all videosequence Readers derived from Reader Class (ffmpeg, mov and r3d) on all platforms, from Nuke 5.2 up to 6.2 version. Below I paste prints from my Terminal which shows what happens (I removed multiple 'engine()' prints to make this all more clear): ##################### PRINT FROM TERMINAL #################### +++constructor+++ meta call open call for frame: 544 engine call meta call open call for frame: 634 engine cal meta call open call for frame: 747 engine call meta call open call for frame: 806 engine call __destructor call__ +++constructor+++ open call for frame: 217 meta call engine call __destructor call__ +++constructor+++ +++constructor+++ open call for frame: 472 meta call engine call Read1: /Volumes/LaCie/final_cut/final/version_long.mov: Unhandled pixel format: __destructor call__ +++constructor+++ +++constructor+++ open call for frame: 443 engine call nuke6.0v1(5680,0xa0825fa0) malloc: *** error for object 0x13c9a630: incorrect checksum for freed object - object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug meta call Read1: /Volumes/LaCie/final_cut/final/version_long.mov: Unhandled pixel format: __destructor call__ ######################### END ########################## _______________________________________________ Nuke-dev mailing list [email protected] http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
