Changeset 768

Show
Ignore:
Timestamp:
01/15/08 16:48:55 (1 year ago)
Author:
astrange
Message:

QT 7.4 doesn't call MovieImportFile?, breaking subtitle import completely. Fix it. (WTF????)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/perian-1.1/MatroskaImport.cpp

    r652 r768  
    116116        err = store->ImportDataRef((Handle)alias, rAliasType, theMovie, targetTrack, 
    117117                                                           usedTrack, atTime, durationAdded, inFlags, outFlags); 
    118         if (err) goto bail; 
    119          
    120         LoadExternalSubtitles(&theFileFSRef, theMovie); 
    121          
     118                 
    122119bail: 
    123120        if (alias) 
     
    131128                                                                          Track *usedTrack, TimeValue atTime, TimeValue *durationAdded, long inFlags, long *outFlags) 
    132129{ 
    133         return store->ImportDataRef(dataRef, dataRefType, theMovie, targetTrack, 
     130        ComponentResult res = store->ImportDataRef(dataRef, dataRefType, theMovie, targetTrack, 
    134131                                                                usedTrack, atTime, durationAdded, inFlags, outFlags); 
     132         
     133        LoadExternalSubtitlesFromFileDataRef(dataRef, dataRefType, theMovie); 
     134        return res; 
    135135} 
    136136 
     
    254254                        // invalid file, validate should catch this 
    255255                        return invalidMovie; 
    256                  
     256                                
    257257                err = SetupMovie(); 
    258258                if (err) return err; 
  • branches/perian-1.1/Subtitles/SubImport.h

    r743 r768  
    2525short GetFilenameLanguage(CFStringRef filename); 
    2626ComponentResult LoadExternalSubtitles(const FSRef *theFile, Movie theMovie); 
     27ComponentResult LoadExternalSubtitlesFromFileDataRef(Handle dataRef, OSType dataRefType, Movie theMovie); 
    2728Track CreatePlaintextSubTrack(Movie theMovie, ImageDescriptionHandle imgDesc, TimeScale timescale, Handle dataRef, OSType dataRefType, FourCharCode subType, Handle imageExtension, Rect movieBox); 
    2829 
  • branches/perian-1.1/Subtitles/SubImport.mm

    r755 r768  
    444444} 
    445445 
     446ComponentResult 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 
    446466#pragma mark Obj-C Classes 
    447467 
  • branches/perian-1.1/ff_MovieImport.c

    r752 r768  
    405405        result = FSpMakeFSRef(theFile, &theFileFSRef); 
    406406        require_noerr(result, bail); 
    407          
    408         LoadExternalSubtitles(&theFileFSRef, theMovie); 
    409          
     407                 
    410408bail: 
    411409                if(dataRef) 
     
    434432        if(valid != 255) 
    435433                goto bail; 
    436                  
     434                        
    437435        /* Prepare the iocontext structure */ 
    438436        result = url_open_dataref(&byteContext, dataRef, dataRefType, &storage->dataHandler, &storage->dataHandlerSupportsWideOffsets, &storage->dataSize); 
     
    548546        } 
    549547         
     548        LoadExternalSubtitlesFromFileDataRef(dataRef, dataRefType, theMovie); 
     549 
    550550bail: 
    551551        if(result == noErr)