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]

Reply via email to