Unzip testcase.zip and replace .../openfx-master/Examples/Basic/basic.cpp with the one contained within testcase.zip
rebuild the "basic" plugin by calling make from the .../openfx-master/Examples/Basic/
Open OFX_timecode_issue.nk and go to frame -1,0, 2 and 3.
Result:
The metadata timcodes viewed before and after the OFX plugin do not match for these frames
Expected Result:
Timecodes should match for all frames.
Notes:
Disabling the OFX plugin node "fixes" the timecode mismatch.
Commenting out the line gPropHost->propSetInt(effectProps, kOfxImageEffectPropTemporalClipAccess, 0, 1); also "fixes" the issue.
Looking at what is going on inside AddTimeCode::_fetchMetaData(...) it seems that for some reason the outputContext()->frame() is returning 0 for frames -2 to 2 when going through the OFX plugin. This is incorrect for everything except frame 0.