3 Replies Latest reply: May 3, 2013 10:35 AM by Zac Lam RSS

    How to use PrSDKTransmitInvocationSuite in a importer ?

    jack vexel


      But other types of plug-ins can use the Transmit Invocation Suite to push frames to transmitters. For example, an effect or titler with a modal setup dialog could push frames to the output.



      This is good idea for a title importer ! But, how to use "PrSDKTransmitInvocationSuite" in our title importer ? Sorry, we did not find any samples or codes in Examples of SDK.


      Is there some guys from Adobe could write some example code in here ?


      for example, where and how to call PrSDKTransmitInvocationSuite::CreateInstance(...) ?  how to fill the field of "ioInstance" parameters for this API ?


      how to implement PrSDKTransmitChangedProc functions ?


      It seems that there is no documents about this suite in SDK manual.

        • 1. Re: How to use PrSDKTransmitInvocationSuite in a importer ?
          Zac Lam Adobe Employee

          Hi Jack,


          The ioInstance parameter is a pointer to a tmInstance structure, defined in PrSDKTransmit.  Are there any specific structure members you're not clear how to initialize?


          The PrSDKTransmitChangedProc function will be called if the transmit plug-in sets outResetModule to notify that host that it's state has changed and it needs to be reinitialized.  You should implement PrSDKTransmitChangedProc to respond to a transmit plug-in being reset.





          • 2. Re: How to use PrSDKTransmitInvocationSuite in a importer ?
            jack vexel Community Member

            Hi Zac,


            Thanks for your reply, please see my comment, am I right ?


            typedef struct
            csSDK_int32 inInstanceID;     // How to fill this ID ?

            PrTimelineID inTimelineID;  //  set it to 0 ?
            PrPlayID inPlayID;                 // set it to 0 ?

            prBool inHasAudio;               //  set it to FALSE, because Title did not need audio.
            csSDK_uint32 inNumChannels; // set it to 0
            PrAudioChannelLabel inChannelLabels[16];
            PrAudioSampleType inAudioSampleType;
            float inAudioSampleRate;

            prBool inHasVideo;                         // set to TRUE ?
            csSDK_int32 inVideoWidth;          //  Title project video resolution ?

            csSDK_int32 inVideoHeight;
            csSDK_int32 inVideoPARNum;
            csSDK_int32 inVideoPARDen;
            PrTime inVideoFrameRate;
            prFieldType inVideoFieldType;

            void* ioPrivateInstanceData; // may be written by plugin in CreateInstance, need not be serializable by the host
            } tmInstance;





            • 3. Re: How to use PrSDKTransmitInvocationSuite in a importer ?
              Zac Lam Adobe Employee

              Hi Jack,


              inInstanceID will be filled in by the CreateInstance() call.

              inTimelineID should only be filled in if you have a timelineID instance, for example if you are transmitting from an importer setup dialog during imGetPrefs8, if imGetPrefsRec.timelineData is valid.  Otherwise it should be left at zero.

              inPlayID can be 0.

              Your comments are correct:

              inHasVideo should be true.

              inVideoWidth/Height should be the video resolution.

              inVideoPARNum/Den should be the video pixel aspect ratio.