I have a project in which I'm allocating large amounts of memory in order to
load (custom) movies via their byte[]s. What we're finding is that when
we're done with the movie and disposing it, we aren't reclaiming the full
amount of memory back. In a moderate sized playlist we keep accumulating
memory until we exceed our limits and crash.
If the QT session is dumped then reopened, the memory is freed. I'm
assuming that a reference is being kept somewhere that is preventing the
full deallocation. I've been as careful as i can to free everything on my
end, so I've become suspicious that there may be a leak in the QTJava code.
I'm creating my movie in memory via this factory method:
public static Movie createMovie( byte[] data, String mime ) throws
QTException {
Debug.trace( "MediaFactory.createMovie() data.length: " + data.length + ",
mimetype: " + mime );
DataRef dr = createDataRef( data, mime );
Movie m = Movie.fromDataRef( dr, 0 );
dr.disposeQTObject();
dr = null;
data = null;
return m;
}
and disposing it with:
_m.disposeQTObject();
_player = null;
_m = null;
_component = null;
etc.
My code doesn't leak when loading MOV files from disk using OpenMovieFile
etc. Does anyone have any suggestions on things to look out for in my code,
or known memory issues in QTJava in these areas?
We're testing this on (only) Windows machines using QT 6.5.2 and a 1.4.2
JRE. Macs aren't currently supported in this product release. I'm not using
any of the deprecated code.
Thank you,
Ryan Francesconi.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-java mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden