Changeset 658
- Timestamp:
- 02/26/07 15:36:48 (3 years ago)
- Location:
- QTSplit
- Files:
-
- 6 modified
-
AGRegex/pcre-build.sh (modified) (1 diff)
-
AppDelegate.m (modified) (1 diff)
-
QTChapter.m (modified) (2 diffs)
-
QTExporter.m (modified) (1 diff)
-
QTKit+Extensions.h (modified) (1 diff)
-
QTKit+Extensions.m (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
QTSplit/AGRegex/pcre-build.sh
r653 r658 28 28 /usr/bin/install_name_tool -id "@executable_path/../Libraries/libpcre.dylib" \ 29 29 "${built}" 30 mkdir -p "`dirname ${lib}`" 30 31 ln -f "${built}" "${lib}" -
QTSplit/AppDelegate.m
r657 r658 72 72 NSLog(@"Saving chapter %d in '%@'", i + 1, dst); 73 73 74 QTExporter *exporter = [QTExporterM4A exporterWithMovie: ext];75 [exporter exportToFile: dst];74 // QTExporter *exporter = [QTExporterM4A exporterWithMovie: ext]; 75 // [exporter exportToFile: dst]; 76 76 } 77 77 } -
QTSplit/QTChapter.m
r654 r658 71 71 - (QTMovie*) extractWithRange: (QTTimeRange)range { 72 72 QTMovie *mov = [[self movie] extract: range]; 73 73 74 [mov setEditable: YES]; 75 74 76 // Don't keep artwork, text, etc from margins 75 77 NSEnumerator *en = [[self chapterSpecificTracks] objectEnumerator]; … … 87 89 // Get rid of chapter track 88 90 [[mov chapterTrack] removeFromMovie]; 89 91 [mov setEditable: NO]; 92 90 93 // Add meta-data to indicate title 91 94 [mov setMetaData: [self name] forTag: QTMetaDataName]; -
QTSplit/QTExporter.m
r657 r658 68 68 } 69 69 70 + (NSString*) mktemp: (NSString*)file ext: (NSString*)ext { 71 NSString *tempfile = nil; 72 char *ctmpl = NULL; 73 74 NSString *template = [[NSTemporaryDirectory() 75 stringByAppendingPathComponent: file] 76 stringByAppendingPathExtension: ext]; 77 unsigned len = [template maximumLengthOfBytesUsingEncoding: 78 NSUTF8StringEncoding]; 79 ctmpl = malloc(len + 1); 80 BOOL ok = [template getCString: ctmpl maxLength: len 81 encoding: NSUTF8StringEncoding]; 82 if (!ok) goto done; 83 84 char *ctmpfile = mktemp(ctmpl); 85 tempfile = [NSString stringWithUTF8String: ctmpfile]; 86 87 done: 88 if (ctmpl) free(ctmpl); 89 return tempfile; 90 } 91 70 92 - (void) exportToFile: (NSString*)path { 93 NSFileManager *fm = [NSFileManager defaultManager]; 94 BOOL isDir; 95 BOOL exists = [fm fileExistsAtPath: path isDirectory: &isDir]; 96 if (exists && isDir) [NSException raise: QTExporterExportException 97 format: @"Directory is in the way of movie export"]; 98 71 99 /* QuickTime can sometimes be sensitive to file names, so export to a 72 100 * safe path and then move to the desired location */ 73 char template[] = "QTExporterXXXXXXXXX";74 char *tmpfile = mktemp(template);75 NSString *safe = tmpfile ? [NSString stringWithUTF8String: tmpfile] :path;76 77 NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:78 [NSNumber numberWithBool: YES], QTMovieExport,79 [NSNumber numberWithLong: stype], QTMovieExportType,80 [NSNumber numberWithLong: manu], QTMovieExportManufacturer,81 [settings asData], QTMovieExportSettings,82 nil];83 BOOL success = [movie writeToFile: safe withAttributes: attrs];84 if (!success) [NSException raise: QTExporterExportException85 format: @"Movie export failed"];101 NSString *safe = [[self class] mktemp: @".QTExporterXXXXXXXXXXX" 102 ext: [path pathExtension]]; 103 if (!safe) safe = path; 104 105 NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys: 106 [NSNumber numberWithBool: YES], QTMovieExport, 107 [NSNumber numberWithLong: stype], QTMovieExportType, 108 [NSNumber numberWithLong: manu], QTMovieExportManufacturer, 109 [settings asData], QTMovieExportSettings, 110 nil]; 111 BOOL success = [movie writeToFile: safe withAttributes: attrs]; 112 if (!success) [NSException raise: QTExporterExportException 113 format: @"Movie export failed"]; 86 114 87 115 if (![safe isEqual: path]) { 88 NSFileManager *fm = [NSFileManager defaultManager]; 116 if ([fm fileExistsAtPath: path]) 117 [fm removeFileAtPath: path handler: nil]; 89 118 if (![fm movePath: safe toPath: path handler: nil]) { 119 [fm removeFileAtPath: safe handler: nil]; 90 120 [NSException raise: QTExporterExportException 91 121 format: @"Can't move exported movie into place"]; -
QTSplit/QTKit+Extensions.h
r652 r658 46 46 47 47 // Editing movies 48 @interface QTMovie (EditingHidden) // Methods exist but silly Apple hides them 49 - (void) setEditable: (BOOL)ed; 50 @end 51 48 52 @interface QTMovie (Editing) 49 53 - (QTMovie*) extract: (QTTimeRange)range; -
QTSplit/QTKit+Extensions.m
r652 r658 141 141 @end 142 142 143 143 #import <objc/objc-class.h> 144 144 145 145 @implementation QTMovie (Editing) … … 147 147 range = QTWorkingIntersection(range, [self timeRange]); 148 148 QTMovie *dst = [QTMovie movie]; 149 [dst setAttribute: [NSNumber numberWithBool: TRUE] 150 forKey: QTMovieEditableAttribute]; 149 printf("%s\n", dst->isa->name); 150 151 [dst setEditable: YES]; 151 152 [dst insertSegmentOfMovie: self timeRange: range 152 153 atTime: [dst startTime]]; 154 [dst setEditable: NO]; 153 155 return dst; 154 156 }
