Hi George,
Your plugin should conform to the FxTransition protocol, which is defined in FxTransition.h in the SDK. In cases where the sample code or documentation differ, the header file wins.
It looks like there's a bug in the sample plugin. -getOutputWidth:height::::: should use NSUIntegers, not UInt32s. These are the same in 32-bit but different in 64-bit.
It also appears that there's a bug in the documentation for -renderOutput:withInputA:withInputB:withTimeFraction:withInfo. The header doc should match the method signature.
I believe you are in for further disappointment, however. Motion doesn't support FxTransitions. If you want to make a transition plug-in for FCPX, you'll need to make a Motion Transition, and feed the input images to a filter or generator plugin. The Motion Effect documentation should cover this, and you can also open the transitions we ship with FCPX to see how they are built. (Right-click on a Motion transition in the Transitions Browser and choose "Open a copy in Motion").
FCP7 does support FxTransitions, but since you are building 64-bit I assume you are not targeting FCP7, which is a 32-bit app.
- Paul
On Sep 12, 2012, at 12:51 PM, George Toledo < email@hidden> wrote: Just noticed that the Transition template itself doesn't build without some warnings, mainly caused by:
warning: conflicting types for '-(BOOL)getOutputWidth:(UInt32 *)width height:(UInt32 *)height withInputA:(FxImageInfo)inputInfoA withInputB:(FxImageInfo)inputInfoB withTimeFraction:(float)timeFraction withInfo:(FxRenderInfo)renderInfo'
So, maybe it makes sense that I'm having problems.
I'm building with 64 bit Intel, and using the most recent SDK.
Has anyone else run into this?
-gt
On Wed, Sep 12, 2012 at 3:32 PM, George Toledo <email@hidden> wrote:
D'oh. I just remembered there's a Transition template. So, scratch that last tacked on question.
I'm still curious about the two method definitions that take the same structure/do the same thing, but one being without timeFraction in the name portion. Just a doc error?
-gtOn Wed, Sep 12, 2012 at 3:25 PM, George Toledo <email@hidden> wrote:
I have a few questions. Hopefully they'll be clear.
In the FxPlugin documentation, there are two methods that I'd like to get clarification on; there seems to be something possibly incorrect in documentation.
The method - renderOutput:withInputA:withInputB:withInfo:
...takes a structure with time fraction, even though it's not listed in the method name:
- (BOOL)renderOutput:(FxImage *)output withInputA:(FxImage *)inputImageA withInputB:(FxImage *)inputImageB withTimeFraction:(float)timeFraction withInfo:(FxRenderInfo)renderInfo;
While the method - renderOutput:withInputA:withInputB:withTimeFraction:withInfo
...takes a structure with the time fraction as well.
- (BOOL)renderOutput:(FxImage *)output withInputA:(FxImage *)inputImageA withInputB:(FxImage *)inputImageB withTimeFraction:(float)timeFraction withInfo:(FxRenderInfo)renderInfo;
What is the difference between these two methods? The description for both is "Renders output image from a plug-in."
What brings me to ask this question is that in implementing a Transition, I'm getting a warning of incomplete implementation, with methods that the filter type variants of these required Transition methods aren't being found (instead of the Transition methods, that are actually being called in the code).
The only place I can see to tag it as a Transition protocol is the InfoPlist. Is that correct? Is there anything apparent that would make it not recognize the Transition methods?
I've traced through my code a few times, and it seems as though I'm using all the methods appropriately... at which time I stumbled on the part in the docs I'm mentioning.
I've successfully made a Generator and Filter without problem, but this one is hanging me up. I also note that there's no Xcode example for a Transition, unless I've missed it. If anyone knows of one with a link, feel free to pass it along.
Thanks, George Toledo
Do not post admin requests to the list. They will be ignored.
Pro-apps-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
|