I am implementing a standard Importer using the PP SDK.
During file playback i get occasional flashing frames, where it will randomly display the wrong frame (always displays a frame but may be 10 frames out or more) and then goes back to the correct frame.
If I call (*ldataH)->PPixCacheSuite->ExpireAllPPixesFromCache() at the end of every call to GetSourceVideo() which is effectively forcing Premiere to not cache any frames by constantly clearing the cache then the video plays smoothly in order with no issues.
This would indicate that the frame cache is somehow caching the frames in the incorrect places, and as such returning the wrong frame accasionally - forcing it to decode every frame every time seems to work.
Could I be doing something wrong that could cause this ?
You could also do a quick check with other file types, to make sure there isn't some other problem going on with your installation. If the problem is isolated to the filetype your importer supports, then yes it would be an issue in the importer code.
Of course, for your final version, you won't want to use ExpireAllPPixesFromCache(), but your finding is an interesting data point.
I wonder if your importer could somehow be referencing the wrong frame based on the time requested. Are you only importing frames synchronously through imGetSourceVideo, or are you also implementing async reads? Another possibility is that the memory for those frames is stale or otherwise incorrect, containing memory from other PPixes.