Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Applying a CIPerspectiveTransform to a QTMovieLayer



On Mar 11, 2008, at 6:07 PM, Brian Bucknam wrote:

On Mar 9, 2008, at 12:43 PM, Christopher Ashworth wrote:

I'm experimenting on 10.5.2 with applying CIFilters to QTMovieLayers. I have a simple test project that has a single NSView with a single QTMovieLayer. It applies a single filter to the QTMovieLayer, sets the default values on the filter, and that's it.

For most filters this works fine, but when I try to apply the CIPerspectiveTransform the console fills with messages of this nature:

CoreImage: ROI is not tilable:
APPLY perspective DOD [118,140 528x367] ROI [183,219 19x22] RGBA_14
AFFINE [1 -0 -0 1 -16384 -16384] DOD [-16384,-16384 32768x32768] ROI [-13375,-8223 1712x2498] ARGB_8
IMAGE CIImage:0x7dae20 DOD [0,0 32768x32768] ARGB_8


This is, alas, the main filter I'm interested in using. What am I doing wrong?

This isn't really an answer, but I've found that a lot of the CIFilters don't seem to work reliably with images more than 1000 by 1000 pixels, or, basically, more than one million pixels.


Due to issues exactly as you describe (the filter fails to work, no error is returned or exception thrown, just a log message), I pass any images with more than 1M pixels through a CITransform filter to scale them down before adding any other filters. 10.4 seemed to handle 2M pixels reliably, but 10.5 would fail on images that 10.4 would succeed on, so now I limit to 1M in all cases.

For kicks I tried displaying the movie in a QTMovieView and applying the CIPerspectiveTransform in the view:willDisplayImage: callback.


It worked. Except that, then I tried applying a CIAffineTransform to achieve a rotation, which in and of itself works, but the portions of the QTMovieView that are "revealed" by the rotation are full of pixel sewage.

Now I'm wondering if I should just do some extra computation to come up with the CIPerspectiveTransform that will represent whatever rotation I want, and combine it with whatever perspective transformation is already in place, but that feels like it shouldn't be necessary. Moreover, it's not clear that the CIPerspectiveTransform will keep working with the QTMovieView. (i.e. is this behavior I can rely on, or will it break like the CIAffineTransform in 10.5.3.) To say nothing of the constraints imposed by doing things in separate views, rather than the deliciously flexible, mashable layers of CoreAnimation.

I wonder if there is some kind of "setup" (perhaps related to defining a region of interest?) that the QTMovieView is doing that the CALayer is not?

Chris

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartz-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartz-dev/email@hidden

This email sent to email@hidden
References: 
 >Applying a CIPerspectiveTransform to a QTMovieLayer (From: Christopher Ashworth <email@hidden>)
 >Re: Applying a CIPerspectiveTransform to a QTMovieLayer (From: Brian Bucknam <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.