Premiere Pro SDK Exporter for still frames

Explorer ,
Jan 21, 2021

Copy link to clipboard

Copied

Hi, I would like to create an exporter that exports a video clip as a sequence of stills, and I'm working my way through understanding the SDK API and the SDK_Exporter example.

I understand with a still sequence (presumably by setting 'singleFrameOnly' in exExporterInfoRec, on exSelStartup) that exSelExport is called for each frame. In terms of getting the pixel data, is the same as the existing SDK example, i.e. calling RenderVideoFrame on the SequenceRenderSuite? Presumably with exportInfoP->startTime as the time point?

 

Thanks,

 

Derek.

TOPICS
Export, SDK

Views

126

Likes

Translate

Translate

Report

Report
Reply
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

1 Correct Answer

Explorer , Jan 21, 2021
Derek5E2F Explorer , Jan 21, 2021
I modified the exSDKStartup function:prMALError exSDKStartup ( exportStdParms *stdParmsP, exExporterInfoRec *infoRecP) { prMALError result = malNoError; // .... snip .... infoRecP->singleFrameOnly = kPrTrue; // .... snip .... return result; }and added a handler for exSelQueryStillSequence:prMALError exSDKQueryStillSequence ( exportStdParms* stdParmsP, exQueryStillSequenceRec* exportQueryStillSequenceRecP) { prMALError result = malNoError; csSDK_uint32 exID = exportQueryS...

Likes

Translate

Translate
Jump to answer Jump to answer
Adobe Employee ,
Jan 21, 2021

Copy link to clipboard

Copied

think so, yes; let us know how it goes.

Likes

Translate

Translate

Report

Report
Reply
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Explorer ,
Jan 21, 2021

Copy link to clipboard

Copied

I modified the exSDKStartup function:

prMALError exSDKStartup (
	exportStdParms		*stdParmsP, 
	exExporterInfoRec	*infoRecP)
{
     prMALError result = malNoError;

// .... snip ....

    infoRecP->singleFrameOnly = kPrTrue;

// .... snip ....

    return result;
}

and added a handler for exSelQueryStillSequence:

prMALError exSDKQueryStillSequence (
	exportStdParms* stdParmsP,
	exQueryStillSequenceRec* exportQueryStillSequenceRecP)
{
	prMALError result	= malNoError;
	csSDK_uint32 exID = exportQueryStillSequenceRecP->exporterPluginID;

	ExportSettings* mySettings = reinterpret_cast<ExportSettings*>(exportQueryStillSequenceRecP->privateData);
	PrSDKExportParamSuite* paramSuite = mySettings->exportParamSuite;

	csSDK_int32 mgroupIndex = 0;
	exParamValues frameRate;
	paramSuite->GetParamValue(exID, mgroupIndex, ADBEVideoFPS, &frameRate);

	exportQueryStillSequenceRecP->exportAsStillSequence = kPrTrue;
	exportQueryStillSequenceRecP->exportFrameRate = frameRate.value.timeValue;

	return result;
}

Likes

Translate

Translate

Report

Report
Reply
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Explorer ,
Jan 21, 2021

Copy link to clipboard

Copied

One thing I wanted to query was whether I've got the exportFrameRate setting right - I assumed it was in 'ticks' (as per other usages of frame rate in the SDK docs) rather than 'FPS', but the SDK documentation wasn't explicit for the exQueryStillSequenceRec struct.

Likes

Translate

Translate

Report

Report
Reply
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Adobe Employee ,
Jan 22, 2021

Copy link to clipboard

Copied

exQueryStillSequenceRec.exportFrameRate is a PrTime.

Likes

Translate

Translate

Report

Report
Reply
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more