Ah, Vade answered it while I was typing. Also check if you've got a timer firing the QCRenderer's renderAtTime: or displaylink - something like that could increment the retain count and prevent it from releasing.
Chris On 1 March 2010 16:42, vade <[email protected]> wrote: > Indeed, the current beta and release has some subtle and not so subtle > issues threading issues. Hopefully these can get addressed. Apologies if > they caused any issues. > Just quickly, indeed the NSArray increments the retain count (ie it owns) > whatever you put in it. However, compositions don't render, the QCRenderer > does (its inclear by your language in the initial email), so having > compositions sitting there doing nothing should not be a problem to my > knowledge. They are 'inactive' representations of the render/object graph > that QC will use, and nothing more. Correct me if I am wrong about that. > There should be no problem to my knowledge of having an array of > QCCompositions 'ready to go' to be used for initting a QCRenderer. The > QCComposition your renderer is based on should not need to be "cleaned up". > Are you also putting your QCRenderers into an array? If so, they are still > retained, using VRam and resources even if you are not actively calling > executeAtTime. > Just FYI, the v002 movie player works asyncronously, and playback is not > linked to the time parameter of the QCRenderer. I can envision an scenario > here where the QCRenderer that contains the movie no longer has > executeAtTime called, is still around, and thus, if the movies rate is not > set to 0, the QTMovie object associated with the plugin in the comp you are > loading is still 'playing' in the background (assuming the QCRenderer is not > properly de-alloc'ed). > Can you verify that you are indeed properly releasing your QCRenderers and > that their retain count goes to 0? I had some issues with this personally in > other projects, until I noticed I was leaking renderers unintentionally (an > extra retain was causing the renderer to keep textures and resources around, > eventually exhausting resources - not fun). > > On Mar 1, 2010, at 11:29 AM, Tamas Nagy wrote: > > As far i know, the v002 movie player doesn't work properly on a background > thread, maybe this is the issue. Did you tried with the built-in movie > player patch? > > On Mar 1, 2010, at 5:10 PM, Joshua Strickon wrote: > > Autoreleased or not, it seems that the composition movie rendering is not > stopping. This could be some quicktime blunder. I did some more digging > and it looks like QCView has all the functions for starting, stopping and > unloading compositions. I get all the messages properly in Quartz Composer. > I abandoned using qcview because it renders on the main thread which had > undesirable results. I wonder if there are hidden private apis that could > deal with unloading, stopping and cleanup. > > On Mar 1, 2010, at 9:14 AM, Tamas Nagy wrote: > > Hi, > > as i remember, the QCComposition object is autoreleased, for be sure, check > the QCComposition's documentation. It's not the answer for your question i > know, but FYI :) > > > > 2010/3/1 Joshua Strickon <[email protected]> >> >> I have an nsview for which I programmatically swap out quartz >> compositions. I do this by recreating a new QCRenderer. I have using the >> V002 movie player plugin as I had terrible results with the current Apple >> quartz movie player patch, it could be related to this problem. After a >> bunch of switches, I have noticed that the thread count going up in sync, to >> the point of instability. Upon further investigation it appears that the >> plugin disableExecution or stopExecution functions are not getting called. >> When should these get called? Shouldn't these get called when I recreated >> the QCRenderer with a new composition? >> I currently have an array of compositions that I keep from querying the >> repository. I then reference the array by a number that is passed to the >> code that swaps the compositions. I simply create the new renderer and pass >> in the composition and the relative view pieces. Seems like the composition >> is not getting cleaned up when it is no longer being rendered. Is it >> possible because my array is retaining the composition? How do I tell the >> composition to that is is no longer being used? >> Any ideas? >> Here are the swap functions. >> >> Thanks >> Josh >> [_renderer release]; >> _renderer = [[QCRenderer alloc] initWithCGLContext:(CGLContextObj)[[qcView >> openGLContext] CGLContextObj] >> pixelFormat:(CGLPixelFormatObj)[[qcView pixelFormat] CGLPixelFormatObj] >> colorSpace:CGDisplayCopyColorSpace(kCGDirectMainDisplay) >> composition:[compositions objectAtIndex:comp]]; >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Quartzcomposer-dev mailing list ([email protected]) >> Help/Unsubscribe/Update your Subscription: >> >> http://lists.apple.com/mailman/options/quartzcomposer-dev/tamas.lov.nagy%40gmail.com >> >> This email sent to [email protected] > > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Quartzcomposer-dev mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/quartzcomposer-dev/doktorp%40mac.com > > This email sent to [email protected] > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Quartzcomposer-dev mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/quartzcomposer-dev/psonice%40gmail.com > > This email sent to [email protected] > _______________________________________________ Do not post admin requests to the list. They will be ignored. Quartzcomposer-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com This email sent to [email protected]

