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

Reply via email to