Re: parameter getting/setting problems with FxPlug on FCP
site_archiver@lists.apple.com Delivered-To: pro-apps-dev@lists.apple.com User-agent: Thunderbird 2.0.0.0 (Macintosh/20070326) Hi, Ben, - Paul On Oct 4, 2007, at 11:31 AM, Benjamin Kent wrote: Hi, I'm having some problems getting and setting parameters on FCP. Cheers Ben _______________________________________________ Do not post admin requests to the list. They will be ignored. Pro-apps-dev mailing list (Pro-apps-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/pro-apps-dev/site_archiver%40lists.ap... Paul Schneider wrote: 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. 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. -- 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 (Pro-apps-dev@lists.apple.com <mailto:Pro-apps-dev@lists.apple.com>) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/pro-apps-dev/pschneider%40apple.com This email sent to pschneider@apple.com <mailto:pschneider@apple.com> This email sent to site_archiver@lists.apple.com
participants (1)
-
Benjamin Kent