Revision: 28242
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28242
Author:   damien78
Date:     2010-04-17 10:33:42 +0200 (Sat, 17 Apr 2010)

Log Message:
-----------
Quicktime audio export: force AAC sample rate to be <=48kHz to avoid later 
codec error + potential quicktime mem leaks fixes

AAC Codec does not handle sample rates above 48kHz.

Modified Paths:
--------------
    trunk/blender/source/blender/quicktime/apple/qtkit_export.m
    trunk/blender/source/blender/quicktime/apple/qtkit_import.m

Modified: trunk/blender/source/blender/quicktime/apple/qtkit_export.m
===================================================================
--- trunk/blender/source/blender/quicktime/apple/qtkit_export.m 2010-04-17 
07:04:09 UTC (rev 28241)
+++ trunk/blender/source/blender/quicktime/apple/qtkit_export.m 2010-04-17 
08:33:42 UTC (rev 28242)
@@ -275,7 +275,7 @@
                *ioNumberDataPackets = AUDIOOUTPUTBUFFERSIZE / 
qtexport->audioInputFormat.mBytesPerPacket;
        
        if ((qtexport->audioTotalExportedFrames + *ioNumberDataPackets) > 
qtexport->audioLastFrame)
-               *ioNumberDataPackets += qtexport->audioLastFrame - 
qtexport->audioTotalExportedFrames;
+               *ioNumberDataPackets = (qtexport->audioLastFrame - 
qtexport->audioTotalExportedFrames) / 
qtexport->audioInputFormat.mFramesPerPacket;
        
        qtexport->audioTotalExportedFrames += *ioNumberDataPackets;
        
@@ -379,7 +379,7 @@
                                                break;
                                }
                                qtexport->audioInputFormat.mBytesPerFrame = 
qtexport->audioInputFormat.mChannelsPerFrame * 
qtexport->audioInputFormat.mBitsPerChannel / 8;
-                               qtexport->audioInputFormat.mFramesPerPacket = 1;
+                               qtexport->audioInputFormat.mFramesPerPacket = 
1; /*If not ==1, then need to check input callback for "rounding" issues"*/
                                qtexport->audioInputFormat.mBytesPerPacket = 
qtexport->audioInputFormat.mBytesPerFrame;
                                qtexport->audioInputFormat.mFormatFlags |= 
kLinearPCMFormatFlagIsPacked;
                                
@@ -399,6 +399,9 @@
                                switch (rd->qtcodecsettings.audiocodecType) {
                                        case kAudioFormatMPEG4AAC:
                                                
qtexport->audioOutputFormat.mFormatFlags = kMPEG4Object_AAC_Main;
+                                               /* AAC codec does not handle 
sample rates above 48kHz, force this limit instead of getting an error 
afterwards */
+                                               if 
(qtexport->audioOutputFormat.mSampleRate > 48000) 
qtexport->audioOutputFormat.mSampleRate = 48000;
+                                               break;
                                        case kAudioFormatAppleLossless:
                                                switch (U.audioformat) {
                                                        case AUD_FORMAT_S16:
@@ -531,7 +534,6 @@
                        [QTMovie exitQTKitOnThread];
                } else {
                        [qtexport->movie retain];
-                       [qtexport->filename retain];
                        [qtexport->movie setAttribute:[NSNumber 
numberWithBool:YES] forKey:QTMovieEditableAttribute];
                        [qtexport->movie setAttribute:@"Made with Blender" 
forKey:QTMovieCopyrightAttribute];
                        
@@ -736,6 +738,7 @@
                        fileManager = [[NSFileManager alloc] init];
                        [fileManager removeItemAtPath:qtexport->audioFileName 
error:&error];
                        [fileManager 
removeItemAtPath:qtexport->videoTempFileName error:&error];
+                       [fileManager release];
                }
                else {
                        /* Flush update of the movie file */

Modified: trunk/blender/source/blender/quicktime/apple/qtkit_import.m
===================================================================
--- trunk/blender/source/blender/quicktime/apple/qtkit_import.m 2010-04-17 
07:04:09 UTC (rev 28241)
+++ trunk/blender/source/blender/quicktime/apple/qtkit_import.m 2010-04-17 
08:33:42 UTC (rev 28242)
@@ -198,7 +198,6 @@
                
                rasterRGB = (uchar*)[blBitmapFormatImageRGB bitmapData];
                if (rasterRGB == NULL) {
-                       [bitmapImage release];
                        [blBitmapFormatImageRGB release];
                        return NULL;
                }
@@ -220,7 +219,6 @@
                
                rasterRGBA = (uchar*)[blBitmapFormatImageRGBA bitmapData];
                if (rasterRGBA == NULL) {
-                       [bitmapImage release];
                        [blBitmapFormatImageRGB release];
                        [blBitmapFormatImageRGBA release];
                        return NULL;
@@ -390,13 +388,14 @@
                BLI_testextensie(name, ".mp3")) return 0;
 
        
-       image = [NSImage alloc];
-       if ([image initWithContentsOfFile:[NSString 
stringWithUTF8String:name]]) 
+       image = [[NSImage alloc] initWithContentsOfFile:[NSString 
stringWithUTF8String:name]];
+       if (image) {
+               [image release];
                result = true;
+       }
        else 
                result = false;
 
-       [image release];
        [pool drain];
        return result;
 }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to