Re: Canvas view of FxGenerator, scaling issue
site_archiver@lists.apple.com Delivered-To: pro-apps-dev@lists.apple.com Hi Brian, So, I think that is why you are seeing the odd scaling issue. 1. Is it possible to have a 4096x2048 image clip dropped onto a 1920x1080 timeline in FCP, without the 4K being conformed down to a 1080p? Can the user have two or three or four 1080p video tracks each with a 4096x2048 image on them? Yes, see above. That is, can a FCP Filter (or Transition) resize a 4K input image down to the proper (1080p or 720p) size for the timeline. But, it does seem to me that a Generator should be able to either control it's duration, or have some way of indicating to the user it's optimal duration. True that some Generators have no predetermined duration. But, other Generators do have finite durations, and outside of that range they can't generate anything. So, to summarize: Good luck! - Paul On Mar 25, 2009, at 1:52 PM, Brian Gardner wrote: One of the custom plugins I need to write is basically an automated 'content-aware' pan-and-scan. Is there an easier way to by-pass the conform? -- Brian Darrin -- Darrin Cardani dcardani@apple.com _______________________________________________ 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/pschneider%40apple.com _______________________________________________ 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... images from image parameters, as well as the FxTemporalAPI, will always be at full size, even if the app is requesting a less-than-full- resolution render. So, you'll need to scale your parameter images by renderInfo.scale[X,Y]. This is less than convenient, but it's the way things currently work. In some situations, Final Cut will enter a legacy codepath where the canvas scale influences the render scale (if you're viewing at 27%, we'll ask you to render at 27%). This generally only happens with sequences that aren't supported by our RT engine, which is to say, sequences that don't match common video formats. Developers tend to encounter this path more frequently than users, since developers tend to test with self-generated video with non-video aspect ratios, or compressed with the Animation codec, etc. Please see the "FCP Rendering Paths" document included with the SDK for more about this. I don't mean to minimize the situation, but you won't encounter this when you are exporting a movie for final rendering, or when you are in our RT display path (which we think most users will be). Yes. When you drop a 4K clip into a 2K timeline, we will automatically apply a conform. This conform is actually something the user can adjust. Double-click the clip in the timeline, switch to the "Motion" tab, and you'll see that we've adjusted the scale, aspect ratio, etc to match the sequence. You can undo this adjustment by hitting the red X "reset" button. Once you've removed our scale, you can apply your own Ken Burns-style pan and scan in the "Motion" tab (or with your special plugin). There's no programmatic way for an FxPlug to accomplish this; the user has to click the red X. BUT, with mixed formats like this, we will scale (or crop) the clip down to sequence size in our RT display engine, for speed. We don't do this during final Cmd-R render, for quality. So, you might not be able to preview your pan-and-scan, which would be pretty unfortunate. I'm not sure exactly what the implications are, you might need to investigate. One workaround might be for you to grab your input using the FxTemporalImageAPI - that should get you the full-sized frame (see the first sentence of this email). You can request the current frame from the FxTemporalImageAPI just as you can with other frames. 2. Can the Filter or Transition control the conform? Not really. Final Cut wants you to return a sequence-sized output. But, you could use the FxTemporalAPI (or image parameters) to get a full-media-sized input. And it sounds like you want to return a sequence-sized output, anyway. 3. Is it even possible to cut a clip that has a Transition over it's entire duration? I can't seem to cut the clip that has a full-duration transition on it. No, that won't work with Final Cut's idea of Transitions. Transitions modulate one clip into another. It sounds like you want to modulate from clip A to clip B to clip C to clip D, which is more than we are expecting. That would be useful, but we don't support that. In general, FxPlugs can't change the timing of items in the timeline, even though often they'd like to (consider a retiming filter that speeds up the clip by 2x, and so would like to cut the duration in the timeline in half automatically). The only way we have to programmatically alter things in the timeline is our XML / Apple Event support. That is more for creating timelines than for modifying them while you're running, though. 1) you might be able to use the FxTemporalAPI to get clip-sized inputs, as opposed to sequence-sized inputs, in your filter (or transition). 2) pay attention to the renderInfo.scale, and remember that image parameters and FxTemporalAPI images aren't affected by this scale 3) we don't support FxPlugs changing edit boundaries in the timeline I actually need to have my Reference Image at a different width and height than the canvas. This is the main reason I'm writing a Generator and not a Filter or a Transition. I need to by-pass the conform. Typically 4096x2048 images in, and typically 1920x1080 out. Mostly choosing the best crop region. Occasionally, a partial scale & crop. It uses a set of rules and analyzes the 4K image to choose the crop region. It's likely your bug, since we ship dozens of generators which work properly, as do other developers. Have you checked the width and height of the reference image? It's probably not scaled the same as the canvas. (This is another reason why you might want to write an FxFilter instead of an FxGenerator.) This email sent to pschneider@apple.com This email sent to site_archiver@lists.apple.com
participants (1)
-
Paul Schneider