Changeset 768
- Timestamp:
- 01/15/08 16:48:55 (2 years ago)
- Files:
-
- branches/perian-1.1/MatroskaImport.cpp (modified) (3 diffs)
- branches/perian-1.1/Subtitles/SubImport.h (modified) (1 diff)
- branches/perian-1.1/Subtitles/SubImport.mm (modified) (1 diff)
- branches/perian-1.1/ff_MovieImport.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/perian-1.1/MatroskaImport.cpp
r652 r768 116 116 err = store->ImportDataRef((Handle)alias, rAliasType, theMovie, targetTrack, 117 117 usedTrack, atTime, durationAdded, inFlags, outFlags); 118 if (err) goto bail; 119 120 LoadExternalSubtitles(&theFileFSRef, theMovie); 121 118 122 119 bail: 123 120 if (alias) … … 131 128 Track *usedTrack, TimeValue atTime, TimeValue *durationAdded, long inFlags, long *outFlags) 132 129 { 133 returnstore->ImportDataRef(dataRef, dataRefType, theMovie, targetTrack,130 ComponentResult res = store->ImportDataRef(dataRef, dataRefType, theMovie, targetTrack, 134 131 usedTrack, atTime, durationAdded, inFlags, outFlags); 132 133 LoadExternalSubtitlesFromFileDataRef(dataRef, dataRefType, theMovie); 134 return res; 135 135 } 136 136 … … 254 254 // invalid file, validate should catch this 255 255 return invalidMovie; 256 256 257 257 err = SetupMovie(); 258 258 if (err) return err; branches/perian-1.1/Subtitles/SubImport.h
r743 r768 25 25 short GetFilenameLanguage(CFStringRef filename); 26 26 ComponentResult LoadExternalSubtitles(const FSRef *theFile, Movie theMovie); 27 ComponentResult LoadExternalSubtitlesFromFileDataRef(Handle dataRef, OSType dataRefType, Movie theMovie); 27 28 Track CreatePlaintextSubTrack(Movie theMovie, ImageDescriptionHandle imgDesc, TimeScale timescale, Handle dataRef, OSType dataRefType, FourCharCode subType, Handle imageExtension, Rect movieBox); 28 29 branches/perian-1.1/Subtitles/SubImport.mm
r755 r768 444 444 } 445 445 446 ComponentResult LoadExternalSubtitlesFromFileDataRef(Handle dataRef, OSType dataRefType, Movie theMovie) 447 { 448 if (dataRefType != AliasDataHandlerSubType) { 449 FourCharCode type = EndianU32_NtoB(dataRefType); 450 Codecprintf(NULL, "importing dataRef of type \"%.4s\"", &type); 451 return noErr; 452 } 453 454 CFStringRef cfPath; 455 FSRef ref; 456 uint8_t path[PATH_MAX]; 457 458 QTGetDataReferenceFullPathCFString(dataRef, dataRefType, kQTPOSIXPathStyle, &cfPath); 459 CFStringGetCString(cfPath, (char*)path, PATH_MAX, kCFStringEncodingUTF8); 460 FSPathMakeRef(path, &ref, NULL); 461 CFRelease(cfPath); 462 463 return LoadExternalSubtitles(&ref, theMovie); 464 } 465 446 466 #pragma mark Obj-C Classes 447 467 branches/perian-1.1/ff_MovieImport.c
r752 r768 405 405 result = FSpMakeFSRef(theFile, &theFileFSRef); 406 406 require_noerr(result, bail); 407 408 LoadExternalSubtitles(&theFileFSRef, theMovie); 409 407 410 408 bail: 411 409 if(dataRef) … … 434 432 if(valid != 255) 435 433 goto bail; 436 434 437 435 /* Prepare the iocontext structure */ 438 436 result = url_open_dataref(&byteContext, dataRef, dataRefType, &storage->dataHandler, &storage->dataHandlerSupportsWideOffsets, &storage->dataSize); … … 548 546 } 549 547 548 LoadExternalSubtitlesFromFileDataRef(dataRef, dataRefType, theMovie); 549 550 550 bail: 551 551 if(result == noErr)
