Re: FCP6 TemporalImageAPI - returning an image different from main input
Re: FCP6 TemporalImageAPI - returning an image different from main input
- Subject: Re: FCP6 TemporalImageAPI - returning an image different from main input
- From: Peter Litwinowicz <email@hidden>
- Date: Wed, 02 May 2007 10:21:00 -0700
- Thread-topic: FCP6 TemporalImageAPI - returning an image different from main input
Title: Re: FCP6 TemporalImageAPI - returning an image different from main input
Technically speaking, isn’t the field scanline-duplicated to create the full frame?
Yes. Either way, I don't think -upscalesFields really applies. The question is, when using the temporalAPI to request a progressive input in an interlaced timeline, do you get a progressive frame or a single field?
A progressive FRAME!
We’ve been through this before :-): let’s not confuse input and output settings. They are independent. And always should be.
input images are in the timeline format, not the media format.
Which is the crux of the problem. The problem is that for efficiency’s sake that you guys have assumed that input that the layer is applied to has the same settings as the output (or “sequence”) settings. This is what should be changed, not the API for temporal frame access. Okay, we can’t do that today because it involves an entire restructuring that can’t be done for the release of FCP 6/Motion 3. So perhaps we should leave it in as as a special case (to be addressed, of course, in a future release :-) ).
MORE THOUGHTS:
You should not give me a field as input if the input is progressive and vice-versa.
If I have 30p input and 60i output, then when I ask for input at time 30, I get full progressive frame at time 30. (same for times 30.01 through 30.99).
If FCP/Motion wants a field as output (and when I say “output” I mean within a “sequence”) when the input is progressive frames you can do one of two things internally in FCP/Motion:
- tell the plugin it has full frames as input and that the plugin needs to create a field as output (and it would be nice then if FCP supplied a Frame-to-field subsampling routine, but I’m sure we can all write our own).
- tell the plugin it has full frames as input and let the plugin return a full frame, then FCP/Motion can internally create a field by throwing away 1/2 the scanlines. This is “better” because then each plugin doesn’t have to worry about subsampling to create a field from a frame.
Either way is appropriate and easy enough to implement on the plugin side.
Why is this important? Well, when creating 60i from 30p using Twixtor, we actually create inbetween fields using motion estimation, and we need to get the original progressive frames in order to do this. Of course, if the convention is that we have to get 2 fields to reconstruct the original progressive frame, that’s okay, but seems really inefficient (and to me, MORE confusing... Why should my input sequence rely on what the output settings are?)
And let’s flip the scenario around. If I have a 60i sequence in a 30p sequence, do you expect to hand me full frames (since the output is progressive) when the input is interlaced material? If so, why not extend that to the frame rate too? (and then 1/2 my input fields are not even accessible to me). Once you start tying one input setting to the output settings then you start going down a very slippery slope.
Input is input and has it’s own settings and frame retrieval process. Same for output.
Right now, FCP's implementation of the temporalAPI will always give you the native format of the media. In other words, if you use the temporalAPI on a progressive clip, you'll get a full frame back, even if you are in an interlaced timeline. This is arguably confusing, since it's not the same as the input image that we pass to filters (input images are in the timeline format, not the media format). I think Paul Miller has a good point here.
Not confusing at all. If the source is progressive, you get progressive frames. If the source is interlaced you get fields. What’s confusing about that? What’s more confusing to me is that the input is somehow tied to the output settings. I find it more confusing that I have to worry to use my output settings to somehow retrieve my input. And I worry also that when you tie input to output settings then you also get into the problems that FCP and Motion has that you can’t retrieve all 120 frames of a 120fps sequence when you are sitting within a 30p or 60 sequence. Of course, let’s address one issue at a time.
You should always get the input media in its native format. It will reduce the number of problems in the future when mixing and matching different types of media formats (size, field order, frame rate, etc.).
Pete
_______________________________________________
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