I am creating an synthetic importer to be used in Premiere and Media Encoder.
The synthetic importer is file based. The file contains information about the contents to be rendered.
Since the code can automatically generate frames and arbitrary resolution and framerate I want the user to just add the file and produce a sequence or to a media encoder convert.
But the Importer API wants me to set a definitive resolution and framerate on the imGetInfo8 callback.
To give a fixed framerate does not seem to be a problem because if I set "canDoContinuousTime" during imInit I get all calls for every frame of the sequence even if does not match the framerate given in imGetInfo8.
But the fixed resolution is a problem because I don't know the resolution of the target material.
When importing a clip without a file (File -> New -> Custom Importer) a "New Synthetic" dialog is shown to configure framerate and resolution. These values are defaulted to the values of the current sequence.
The SDKFileInfo8->vidInfo on the imGetInfo8 callback is pre filled with the values entered in the dialog.
The same workflow for importing files would be very helpful. (but without the "New Synthetic" dialog)
Especially because the Media Encoder has no option to set a synthetic as source.
Is there a way to implement a "match destination" like the H.264 exporter offers a "match source"?
Message was edited by: Bjoern Gdanietz
If you implement imImportImage rather than imGetSourceVideo, then you still retain some flexibility about source resolution. You can implement a custom settings dialog in response to imGetPrefs8, where the user can modify the clip dimensions. The Custom Importer sample demonstrates modifying dimensions after a double-click on the clip.