RE: image formats for rendering, etc.
RE: image formats for rendering, etc.
- Subject: RE: image formats for rendering, etc.
- From: Peter Litwinowicz <email@hidden>
- Date: Wed, 06 Jun 2007 17:45:19 -0700
- Thread-topic: image formats for rendering, etc.
Title: RE: image formats for rendering, etc.
Hi, Pete,
all images in FxPlug are premultiplied, including the YUV images. It's a strange choice, but that's the way it is.
Really? Well, there you are.
You can check if an image is premultiplied or not with [FxImage isPremultiplied], but currently this will return YES in all cases. We've talked about adding an opt-in mechanism where plugins can request straight alpha, which would be more efficient in Final Cut since we are straight-alpha internally. That's not scheduled for the near future, though.
YUV support is optional. Your plugin implements a -properties method, which returns a list of properties. You can set the kFxPropertyKey_SupportsR408 and kFxPropertyKey_SupportsR4fl keys to indicate support for YUV. If you don't set these properties, you will always get RGB images. This should be in the documentation, please file a bug if it isn't explained clearly. You can choose to support R408 but not r4fl, or vice versa.
I completely forgot (and you guys did tell me this a while ago). And this is not in the document anywhere.
In fact, I can’t find which properties are valid to set, except to look in the example programs.
To Dave Howell: is there a document I’m not finding? Or is this info in the doc and I’m just losing it today?
As we've discussed before, there's no way to tell if a YUV image is Rec 601 or Rec 709. We ARE planning to fix this in the near future.
Right, I DO remember that.
RGB support is mandatory. Software plugins must support 8-bit and 32-bit-float RGB. GPU plugins must support 8-bit, 16-bit-float, and 32-bit-float RGB.
Cool. I don’t see this information anywhere in the Overview manual (which is just a short 18 page document, which is the one I downloaded from the Apple developer site and was uploaded on May 21, 2007).
In Final Cut, all images (including those from image wells) should be in the same format and bit depth. That format and bit depth is determined by your sequence settings.
Okay, another item for the doc (and another piece of missing info for me).
In Final Cut, if you return canRenderSoftware=NO and canRenderHardware=NO, we won't fall back to a lower bit depth. You'll get the red "the plugin failed to render" error frame.
Ah, good to know.
And if I don’t support r408, then the 8 bit YUV images get converted to 8 bit RGB, correct? (I remember filing a feature request that it would be nice to have the opportunity to go to floating point YUV, because otherwise the user will see “rampant” quantization when going through the 8 bit YUV and 8 bit RGB to 8 bit YUV round-trip... And you told me the user can set sequence settings to “high precision” to affect what I wanted... Except when in RT preview (but final renders will look right). Still think there needs to be a setting that allows the user to override this case too.
And floating point YUV (r4fl) gets converted to floating point RGB, correct?
And the answers to these last two questions should go into the doc.
Finally, in Final Cut, 8-bit RGB images are alpha-first, and floating-point RGB images are alpha-last.
Hope that helps,
As usual, greatly helpful!
Pete
------ End of Forwarded Message
_______________________________________________
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