[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24976] trunk/blender/source/blender/ quicktime/apple/qtkit_export.m: qtkit : improve thread safety, enforce build on OSX 10.5+
Damien Plisson
damien.plisson at yahoo.fr
Sat Nov 28 19:16:27 CET 2009
Revision: 24976
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24976
Author: damien78
Date: 2009-11-28 19:16:27 +0100 (Sat, 28 Nov 2009)
Log Message:
-----------
qtkit : improve thread safety, enforce build on OSX 10.5+
qtkit movie creation functions can be started in a worker thread only from OSX 10.5
Modified Paths:
--------------
trunk/blender/source/blender/quicktime/apple/qtkit_export.m
Modified: trunk/blender/source/blender/quicktime/apple/qtkit_export.m
===================================================================
--- trunk/blender/source/blender/quicktime/apple/qtkit_export.m 2009-11-28 18:08:17 UTC (rev 24975)
+++ trunk/blender/source/blender/quicktime/apple/qtkit_export.m 2009-11-28 18:16:27 UTC (rev 24976)
@@ -60,6 +60,11 @@
#endif
#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
+
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4
+#error OSX 10.5 minimum is needed for QTKit
+#endif
+
#endif /* __APPLE__ */
typedef struct QuicktimeExport {
@@ -127,9 +132,12 @@
char name[2048];
- if(qtexport == NULL) qtexport = MEM_callocN(sizeof(QuicktimeExport), "QuicktimeExport");
-
if (G.afbreek != 1) {
+
+ if(qtexport == NULL) qtexport = MEM_callocN(sizeof(QuicktimeExport), "QuicktimeExport");
+
+ [QTMovie enterQTKitOnThread];
+
/* Check first if the QuickTime 7.2.1 initToWritableFile: method is available */
if ([[[[QTMovie alloc] init] autorelease] respondsToSelector:@selector(initToWritableFile:error:)] != YES) {
G.afbreek = 1;
@@ -144,6 +152,7 @@
if(qtexport->movie == nil) {
G.afbreek = 1;
NSLog(@"Unable to create quicktime movie : %@",[error localizedDescription]);
+ [QTMovie exitQTKitOnThread];
} else {
[qtexport->movie retain];
[qtexport->filename retain];
@@ -235,6 +244,8 @@
[qtexport->frameAttributes release];
[qtexport->movie release];
}
+
+ [QTMovie exitQTKitOnThread];
if(qtexport) {
MEM_freeN(qtexport);
More information about the Bf-blender-cvs
mailing list