Re: Fields vs. frames, and parameter saving
site_archiver@lists.apple.com Delivered-To: pro-apps-dev@lists.apple.com Hi, Hugh, We will always send you fields. I don't see anything obviously wrong with your code. - Paul _______________________________________________ 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... I'm still getting passed half-height fields, however. Is there anything I can do about it? If I just process even-numbered fields, and divide rowbytes by 2, am I effectively processing frames then? It's true that in Final Cut, the bitmap for the first field and the bitmap for the second field point to the same interlaced frame, with the base address and rowbytes adjusted. So you could modify what we pass you to get the original interlaced frame. This is an implementation detail of Final Cut, and is not guaranteed by the FxPlug API. Not all hosts are guaranteed to work this way. Final Cut isn't guaranteed to keep working this way. We would probably try to give you plenty of advanced warning if we decided to change it, though, since I believe a few developers depend on this right now. As Micah said, you can get both fields using the FxTemporalAPI and assemble an interlaced frame yourself. This may be a bit more work, but it's guaranteed to continue to work in all situations. Be aware that the fields occur at different points in time, and keyframed parameters may have different values at field1 than field2. And you generally want to be careful that pixels from one field don't bleed into the other, if you are doing a convolution or something similar. Working on full interlaced frames only makes sense in a few situations (like if you are writing a de-interlacer). 2) I can't get parameter persistence to work for me, using a custom parameter defined as below [at the end of the message]. When I quit FCP after saving my project, I can see that the NSCoding interfaces are called: One thing that surprises a lot of people is that we will call you to encode and decode your values multiple times during normal operation. We make copies of your parameter values for undo purposes, etc. So it can be difficult to track down which object is actually being serialized to disk. The SimpleMatte example included with the SDK demonstrates some working code for serializing and deserializing custom parameter data. I think your best bet is to compare your code to that plugin and look for differences. Don't confuse SimpleMatte with SimplePaint! That's an easy mistake to make. This email sent to site_archiver@lists.apple.com
participants (1)
-
Paul Schneider