Re: parameter getting/setting problems with FxPlug on FCP
Re: parameter getting/setting problems with FxPlug on FCP
- Subject: Re: parameter getting/setting problems with FxPlug on FCP
- From: Benjamin Kent <email@hidden>
- Date: Thu, 04 Oct 2007 17:08:15 +0100
Paul Schneider wrote:
Hi, Ben,
The first problem is that it seems like I can only get the correct
value for a parameter if I ask for its value at the current frame. Is
this the expected behaviour outside of the renderOutput function?
This is a known limitation of Final Cut 6.0.1. See the FxPlug release
notes:
Remaining Issues in Final Cut Pro 6
Some APIs Available Only During Render
In Final Cut Pro 6, the FxTimingAPI and FxTemporalImageAPI only work
correctly if called during
one of the following selectors:
■ -getOutputWidth: height:
■ -frameSetup
■ -renderOutput
■ -frameCleanup
As well, sampling keyframed parameters at arbitrary times only works
during these selectors.
We plan to address this problem in an upcoming release.
Ah, thanks - missed that one. Do you have any idea when this release
will be? I realise you probably can't put an exact date on it, but do
you know if we're talking weeks or months?
The second problem is more general I think. It appears that setting
keyframes only works if the user has already clicked the keyframe
button for the parameter in the ui, otherwise it just changes the
value of the parameter over the entire time range. This is especially
a problem when trying to set keyframes on hidden parameters, as the
user can't even click the keyframe button. Is there a way to do this
automatically?
We don't have a way to support that in Final Cut today. The user
turns on keyframing for parameters with the green button; there's no
way for a plugin to do this programmatically. This would be useful,
particularly for hidden parameters, but we don't have that support today.
Another slight problem is as follows, though I'd imagine this is an
FCP specific bug. If you add this code to the plugin, click the
keyframe button on the size parameter in the ui, then go to frame 20
it will set a keyframe as expected. Then jump to frame 50 on the
timeline - again it will set a keyframe as expected. But now if you
go to frames in between, it seems sporadic as to whether it actually
sets the keyframe.
We're not expecting you to change parameter values from within
-renderOutput. Doing so will trigger another render, which will start
a cycle that confuses Final Cut. I've seen a fair amount of problems
when plugins change parameter values, or hide and show parameters,
from within -renderOutput. I recommend doing this inside
-parameterChanged instead.
I imagine you're doing this because you can't get values at arbitrary
times outside of -renderOutput? Hopefully that issue will be resolved
soon.
Cool, I'll make sure I don't set any values during renderOutput from
now on.
- Paul
On Oct 4, 2007, at 11:31 AM, Benjamin Kent wrote:
Hi,
I'm having some problems getting and setting parameters on FCP.
Basically, I'm trying to get and set keyframes on some parameters in
a callback function in response to a custom widget pushbutton I've
created.
The first problem is that it seems like I can only get the correct
value for a parameter if I ask for its value at the current frame. Is
this the expected behaviour outside of the renderOutput function?
The second problem is more general I think. It appears that setting
keyframes only works if the user has already clicked the keyframe
button for the parameter in the ui, otherwise it just changes the
value of the parameter over the entire time range. This is especially
a problem when trying to set keyframes on hidden parameters, as the
user can't even click the keyframe button. Is there a way to do this
automatically? This behaviour seems to manifest itself by adding the
following code to the beginning of renderOutput in the
ScrollingRichText example:
id settingAPI = [_apiManager apiForProtocol:@protocol
(FxParameterSettingAPI)];
[settingAPI setIntValue: renderInfo.frame
toParm: kParamID_Size
atTime: renderInfo.frame];
return YES;
Another slight problem is as follows, though I'd imagine this is an
FCP specific bug. If you add this code to the plugin, click the
keyframe button on the size parameter in the ui, then go to frame 20
it will set a keyframe as expected. Then jump to frame 50 on the
timeline - again it will set a keyframe as expected. But now if you
go to frames in between, it seems sporadic as to whether it actually
sets the keyframe.
Cheers
Ben
--
Ben Kent, Senior Software Engineer
The Foundry, 1 Wardour Street, London, W1D 6PA, UK
Tel: +44 (0)20 7434 0449 • Fax: +44 (0)20 7434 1550 • Web:
www.thefoundry.co.uk <http://www.thefoundry.co.uk>
The Foundry Visionmongers Ltd • Registered in England and Wales No:
4642027
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Pro-apps-dev mailing list (email@hidden
<mailto:email@hidden>)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden <mailto:email@hidden>
_______________________________________________
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