• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
0

Three questions about the CS4 SDK Exporter

Guest
Apr 09, 2010 Apr 09, 2010

Copy link to clipboard

Copied

    Hello. I'm working to make an Exporter Plug-In that supports "Pro CS4" and "Elements 8.0" single binary.

    Please give me any advices to complete it. I show you the questions as follows:

  1. How can I get the slider screen without checkbox (in parameter GUI)
  2. How to enable an Exporter Plug-In at "Elements 8.0".
  3. What is the difference between ver.4.0 and ver.4.2 in exExpoterInfoRec.

Details below.

1st:

    I tried PrSDKExportParamSuite::AddParam() with exParamFlag_slider and exParamFlag_optional.

    Both cases parameter GUI shows slider with checkbox. Please teach me a method to use simple slider (no checkbox) in parameter GUI.

    BTW, Standard plugins are seem to use "Premiere Export Private Statndar Param Suite". Are you planning to publish it?

2nd:

    The Premiere Elements 8.0 never shows any additional Exporter Plug-in, including SDK sample (ExporterSDK.prm).

    Please tell me if I need special installation procedures.

3rd:

    I found that the exExporterInfoRec is difference between 4.0 and 4.2. The exExporterInfoRec[ver. 4.2] is defined in CS4SDK_r1. But I can't find any definition of exExporterInfoRec[ver. 4.0] in the SDK.

    An Exporter Plug-In is build with CS4SDK_r1 never work on the Premiere Pro CS4 (4.0) / Media Encoder CS4 (4.0). I need definition of exExporterInfoRec[ver. 4.0] to support CS4 (ver. 4.0).

Thanks.

TOPICS
SDK

Views

1.9K

Translate

Translate

Report

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

correct answers 1 Correct answer

Advisor , Apr 09, 2010 Apr 09, 2010

Hi Kazuhiro-san,

1) This particular bug is a known issue (bug 1925419) in CS4 for exporter plug-ins.  Stay tuned for progress on this bug in CS5.

2) For a CS4-style exporter to show up in the Premiere Elements 8 UI, you’ll need to provide a special preset:

  • Create a folder named "OTHERS" in <Install_Path>/sharingcenter/Presets/pc/
  • Create a sub-folder with your name (e.g. MyCompany) under OTHERS and place the preset file (.epr) in it.

The final path of the preset file should be something like <Install_

...

Votes

Translate

Translate
Advisor ,
Apr 09, 2010 Apr 09, 2010

Copy link to clipboard

Copied

Hi Kazuhiro-san,

1) This particular bug is a known issue (bug 1925419) in CS4 for exporter plug-ins.  Stay tuned for progress on this bug in CS5.

2) For a CS4-style exporter to show up in the Premiere Elements 8 UI, you’ll need to provide a special preset:

  • Create a folder named "OTHERS" in <Install_Path>/sharingcenter/Presets/pc/
  • Create a sub-folder with your name (e.g. MyCompany) under OTHERS and place the preset file (.epr) in it.

The final path of the preset file should be something like <Install_Path>/sharingcenter/Presets/pc/OTHERS/MyCompany/MyPreset.epr

The next time you launch Premiere Elements, the preset will be displayed in the Premiere Elements UI.

3) Exporter plug-ins built with the public CS4 SDK will work with 4.0.1 and later.  We recommend for anyone who wants to use 3rd party exporters that they update to 4.0.1 and later.  The 4.0.1 is marked as a critical update.

The main breaking change for exporters between 4.0 and 4.0.1 is that the Sequence Render Suite was incremented from version 1 to version 2.  If you'd like to use version 1 in 4.0, you can use this definition for RenderVideoFrame:

prSuiteError (*RenderVideoFrame)(
    long                                 inVideoRenderID,
    PrTime                               inTime,
    SequenceRender_ParamsRec*            inRenderParams,
    PrRenderCacheType                    inCacheFlags,
    int                                  getNativeCompressedFrame,
    SequenceRender_GetFrameReturnRec*    getFrameReturn
    );

Note that getNativeCompressedFrame was removed because it isn't used.  You can just set it to 0.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advisor ,
Apr 12, 2010 Apr 12, 2010

Copy link to clipboard

Copied

Hi Kazuhiro-san,

We currently do not plan to  publicize the Premiere Export Private Standard Param Suite.  Hopefully  the public suite should be sufficient for your needs.

Also,  I can confirm that bug 1925419 has been fixed in CS5.  So slider parameters defined by your exporter should behave as expected in the upcoming CS5 release.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 14, 2010 Apr 14, 2010

Copy link to clipboard

Copied

Hi Kazuhiro-san,

one more hint to get an exporter working under Elements 8.

In the exSelStartup handler you have to return 18 instead of exportReturn_IterateExporter. Unless it has been fixed in an update meanwhile.

Regards from Osaka,

Peter

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 22, 2010 Apr 22, 2010

Copy link to clipboard

Copied

Hi Peter-san

When I created my plug-in for Elements8, I had noticed the plug-in didn't operate.
I used returning exportReturn_ErrNone instead of exportReturn_IterateExporter.
Because I thought that Elements8 did not support exportReturn_IterateExporter.
Why did you decide to return 18 (exportReturn_InternalErrorSilent ??) ?

Regards,

Kengo Mikoshiba.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 22, 2010 Apr 22, 2010

Copy link to clipboard

Copied

Hi Kengo-san,

I was struggling with same problem that the exporter was not recognized.
The Adobe Elements team told me to change the return value to 18 to  solve the problem. Somehow they had messed it up in their implementation  so that PE is not CS4 API compatible.

An exporter should always return exportReturn_IterateExporter (or 18 for  PE) on the first call. Then on the second call, in case it only  represents only one exporter, return exportReturn_IterateExporterDone.

Regards,
Peter

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 22, 2010 Apr 22, 2010

Copy link to clipboard

Copied

Hi Peter-san

> An exporter should always return exportReturn_IterateExporter (or 18 for  PE) on the first call.
> Then on the second call, in case it only  represents only one exporter, return exportReturn_IterateExporterDone.

  I think so, I hope so.

  The code that I propose is shown below.

#define isElements( fourcc ) (( fourcc == kAppPremiereElements ) ? ( true ) : ( false ))
#define RETVAL_FOR_ELEMENTS8 (18)

/* Function that is called from exSelStartup */
static prMALError Startup( exportStdParms *sp, exExporterInfoRec *ip )
{
    SPBasicSuite *basicsuite = sp->getSPBasicSuite();
    PrSDKAppInfoSuite *AppInfoSuite;
    long  appfourcc;
    VersionInfo versioninfo;
    basicsuite->AcquireSuite( kPrSDKAppInfoSuite, kPrSDKAppInfoSuiteVersion, (const void **)&AppInfoSuite );
    AppInfoSuite->GetAppInfo( AppInfoSuite->kAppInfo_AppFourCC, (long *)&appfourcc );
    AppInfoSuite->GetAppInfo( AppInfoSuite->kAppInfo_Version, (long *)&versioninfo );
    basicsuite->ReleaseSuite( kPrSDKAppInfoSuite, kPrSDKAppInfoSuiteVersion );


    /* check host version if needed */
    ...

    /* decides return value */
    r = exportReturn_IterateExporter;
    if ( isElements( appfourcc ) ) {
        r = RETVAL_FOR_ELEMENTS8;
    }

.
.
.

}

Regards,
Kengo Mikoshiba

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advisor ,
Apr 22, 2010 Apr 22, 2010

Copy link to clipboard

Copied

LATEST

Below is the definition of the return values in Premiere Elements 8. The red values are unique to Premiere Elements 8, and shifted the subsequent return values 2 values higher than their definition in the Premiere Pro SDK.

enum

{

      exportReturn_ErrNone = 0,                 // no error

      exportReturn_Abort,                             // User aborted the compile

      exportReturn_Done,                              // Export finished normally

      exportReturn_InternalError,

      exportReturn_OutputFormatAccept,                // The output format is valid

      exportReturn_OutputFormatDecline,               // The compile module cannot compile to the output format

      exportReturn_OutOfDiskSpace,        // Out of disk space error

      exportReturn_BufferFull,                  // The offset into the audio buffer would overflow it

      exportReturn_ErrOther,                    //

      exportReturn_ErrMemory,                   // ran out of memory

      exportReturn_ErrFileNotFound,       // File not found

      exportReturn_ErrTooManyOpenFiles,   // Too many open files

      exportReturn_ErrPermErr,                  // Permission violation

      exportReturn_ErrOpenErr,                  // Unable to open the file

      exportReturn_ErrInvalidDrive,       // Drive isn't valid.

      exportReturn_ErrDupFile,                  // Duplicate Filename

      exportReturn_ErrIo,                             // File io error

      exportReturn_ErrInUse,                    // File is in use

      exportReturn_IterateExporter,       // Return value from exSelStartup to request Exporter iteration

      exportReturn_IterateExporterDone,   // Return value from exSelStartup to indicate there are no more Exporters

      exportReturn_InternalErrorSilent,   /*    Silent error code; host application will not display an error message on screen.

                                                                  Exporters can return this error code from compDoCompile if they wish to

                                                                  put their own customized error message on screen just before returning

                                                                  control.  */

      exportReturn_ErrCodecBadInput,            // a video codec refused the input format

      exportReturn_ErrLastErrorSet,       // the Exporter had an error and set a display string for it using the PrSDKErrorSuite.

      exportReturn_ErrLastWarningSet,           // the Exporter had an warning and set a display string for it using the PrSDKErrorSuite.

      exportReturn_ErrLastInfoSet,        // the Exporter has an info string to display and set it using the PrSDKErrorSuite.

      exportReturn_ErrExceedsMaxFormatDuration, // the Exporter (or the host) has deemed the duration of the compile to be too large

      exportReturn_VideoCodecNeedsActivation,         // the current video codec is not activated and cannot be used.

      exportReturn_AudioCodecNeedsActivation,         // the current audio codec is not activated and cannot be used.

      exportReturn_IncompatibleAudioChannelType,      // the requested audio channels are not compatible with the source audio

      exportReturn_Unsupported = -100           // Unsupported selector

};

Obviously, this wasn't the right way to add these new return values.

Votes

Translate

Translate

Report

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