Re: Fields vs. frames, and parameter saving
Re: Fields vs. frames, and parameter saving
- Subject: Re: Fields vs. frames, and parameter saving
- From: Paul Schneider <email@hidden>
- Date: Tue, 9 Oct 2007 11:48:44 -0400
Hi, Hugh,
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?
We will always send you fields.
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:
I don't see anything obviously wrong with your code.
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.
- Paul
_______________________________________________
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