[GEM-dev] pix_video again

james tittle tigital at mac.com
Thu May 11 19:06:48 CEST 2006


hey all,

On May 11, 2006, at 9:05 AM, Erich Berger wrote:
> of course pix_film !
> - she is using osx on a minimac with the
> version u have commited a bug fix (for pix_fim)
> on 8th of november.
>
> On Thu, 11 May 2006, chris clepper wrote:
>
>> I think you mean pix_film or pix_movie.  What OS and GEM version?
>>
>> On 5/11/06, Erich Berger <eb at randomseed.org> wrote:
>>> hi,
>>> i have some question regarding memory management and pix_video.
>>> a friend of mine is using it for playing in some certain order  
>>> about 70
>>> small clips for an installation. she had it test running the  
>>> whole night
>>> and reported that is was becoming extremly slow when she had a  
>>> look at it
>>> in the morning. i had no possibility to check the stuff but i  
>>> guess that
>>> it is because the memory got full by constantly loading the clips.
>>> now the questions:
>>> when pix_video is loading another clip, is it freeing the memory  
>>> which
>>> took the clip played before or does it stay in the memory ?
>>> when the same clip is played again after playing another one is  
>>> it loaded
>>> again into the memory or is the one already loaded before used  
>>> again ?
>>> is there a method to clear the memory taken over by all this loaded
>>> films without restarting pd ?

...hmm, I'm looking at [pix_film] and whaddaya know?  There seems to  
be all kinds of stuff going weird with createBuffer(), deleteBuffer 
(), and prepareTexture() :-(  First off, pix_film::openMess() has:

#ifndef __APPLE__
   createBuffer();
   prepareTexture();
#endif

...this may be a relic/hack from waaaay back?

...but this occurs AFTER pix_film::openMess() calls realOpen(), which  
is in pix_filmDarwin.cpp...this may be significant because in  
pix_filmDarwin::realOpen() we call the same things (or not) based on  
the value of m_colorspace (BGRA or other)...

...also, pix_film::createBuffer() will never cache the buffer because  
oldx and oldy aren't member variables AND they're always set to 0, so  
we always hit this:

if (neededXSize != oldx || neededYSize != oldy)
{
deleteBuffer();
...
}

...um, and that's as far as I've gotten:  I'll give some of these  
ideas a test, but won't have much time until, uh, later...

jamie




More information about the GEM-dev mailing list