Changeset 310

Show
Ignore:
Timestamp:
01/27/07 04:06:54 (2 years ago)
Author:
astrange
Message:

* Add Ragel parser generator binaries for use in SSA renderer (when I enable it).
* Import external .ass files. Does not actually work, but rapidly approaches it.
References #17.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/MatroskaImportPrivate.cpp

    r306 r310  
    456456                 
    457457        } else if ((*imgDesc)->cType == kSubFormatUTF8) { 
    458                 mkvTrack.theTrack = CreatePlaintextSubTrack(theMovie, imgDesc, GetMovieTimeScale(theMovie), dataRef, dataRefType); 
     458                mkvTrack.theTrack = CreatePlaintextSubTrack(theMovie, imgDesc, GetMovieTimeScale(theMovie), dataRef, dataRefType, kSubFormatUTF8); 
    459459                if (mkvTrack.theTrack == NULL) 
    460460                        return GetMoviesError(); 
  • trunk/Perian.xcodeproj/project.pbxproj

    r300 r310  
    102102                11C85FE70A64315500DF3D73 /* Perian-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 11A709DA0A3CFCB6002058D4 /* Perian-Info.plist */; }; 
    103103                11F28DAD0B52EB75000AF78C /* SUUpdateAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 11F28DAC0B52EB75000AF78C /* SUUpdateAlert.m */; }; 
     104                3D211A1D0B6B18880051299D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F539CD110B62BC82005A72C9 /* Foundation.framework */; }; 
     105                3D211A200B6B1A540051299D /* SSADocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D211A1F0B6B1A540051299D /* SSADocument.m */; }; 
     106                3D211A230B6B1A660051299D /* Categories.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D211A220B6B1A660051299D /* Categories.m */; }; 
     107                3D211A300B6B1AD80051299D /* SSATagParsing.m.rl in Resources */ = {isa = PBXBuildFile; fileRef = 3D211A2F0B6B1AD80051299D /* SSATagParsing.m.rl */; }; 
    104108                3D4A7A990B5533BC004C5D6A /* ColorConversions.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D4A7A980B5533BC004C5D6A /* ColorConversions.c */; }; 
    105109                6116E5510B43C27B0020F1CE /* ACBaseCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6116E5370B43C27B0020F1CE /* ACBaseCodec.cpp */; }; 
     
    240244/* End PBXBuildFile section */ 
    241245 
     246/* Begin PBXBuildRule section */ 
     247                3D211A2D0B6B1A880051299D /* PBXBuildRule */ = { 
     248                        isa = PBXBuildRule; 
     249                        compilerSpec = com.apple.compilers.proxy.script; 
     250                        filePatterns = "*.c.rl *.cpp.rl *.cp.rl *.cxx.rl *.m.rl *.mm.rl"; 
     251                        fileType = pattern.proxy; 
     252                        isEditable = 1; 
     253                        outputFiles = ( 
     254                                "$(DERIVED_FILES_DIR)/$(INPUT_FILE_BASE)", 
     255                        ); 
     256                        script = "RAGEL=${PROJECT_DIR}/ragel\nRLCODEGEN=${PROJECT_DIR}/rlcodegen\n\n${RAGEL} -o ${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.ragel ${INPUT_FILE_PATH} || exit\n${RLCODEGEN} -T1 -o ${DERIVED_FILES_DIR}/${INPUT_FILE_BASE} ${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.ragel || exit"; 
     257                }; 
     258/* End PBXBuildRule section */ 
     259 
    242260/* Begin PBXContainerItemProxy section */ 
    243261                11BA3DAF0A61EE90008AF206 /* PBXContainerItemProxy */ = { 
     
    417435                11F28DAB0B52EB75000AF78C /* SUUpdateAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUUpdateAlert.h; sourceTree = "<group>"; }; 
    418436                11F28DAC0B52EB75000AF78C /* SUUpdateAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUUpdateAlert.m; sourceTree = "<group>"; }; 
     437                3D211A1E0B6B1A540051299D /* SSADocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SSADocument.h; sourceTree = "<group>"; }; 
     438                3D211A1F0B6B1A540051299D /* SSADocument.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SSADocument.m; sourceTree = "<group>"; }; 
     439                3D211A210B6B1A660051299D /* Categories.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Categories.h; path = ../../SSAView/Categories.h; sourceTree = SOURCE_ROOT; }; 
     440                3D211A220B6B1A660051299D /* Categories.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = Categories.m; path = ../../SSAView/Categories.m; sourceTree = SOURCE_ROOT; }; 
     441                3D211A2E0B6B1AD80051299D /* SSATagParsing.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SSATagParsing.h; sourceTree = "<group>"; }; 
     442                3D211A2F0B6B1AD80051299D /* SSATagParsing.m.rl */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 30; path = SSATagParsing.m.rl; sourceTree = "<group>"; }; 
    419443                3D4A7A970B5533BC004C5D6A /* ColorConversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorConversions.h; sourceTree = "<group>"; }; 
    420444                3D4A7A980B5533BC004C5D6A /* ColorConversions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ColorConversions.c; sourceTree = "<group>"; }; 
     
    595619                F560DF0203D622D001ABA332 /* FFusionCodec.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = FFusionCodec.r; sourceTree = "<group>"; }; 
    596620                F57755F40B51EB1800C7D833 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; 
    597                 F5CFD1B40B50009000616865 /* PerianPanePListGenerator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = PerianPanePListGenerator; sourceTree = BUILT_PRODUCTS_DIR; }; 
     621                F5CFD1B40B50009000616865 /* PerianPanePListGenerator */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = PerianPanePListGenerator; sourceTree = BUILT_PRODUCTS_DIR; }; 
    598622                F5CFD1BC0B5000CE00616865 /* GBPerianPanePListGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GBPerianPanePListGenerator.h; sourceTree = "<group>"; }; 
    599623                F5CFD1BD0B5000CE00616865 /* GBPerianPanePListGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GBPerianPanePListGenerator.m; sourceTree = "<group>"; }; 
     
    625649                                8F483B550A642644002CCA73 /* libavformat.a in Frameworks */, 
    626650                                8F483B5E0A6426C1002CCA73 /* AudioToolbox.framework in Frameworks */, 
     651                                3D211A1D0B6B18880051299D /* Foundation.framework in Frameworks */, 
    627652                        ); 
    628653                        runOnlyForDeploymentPostprocessing = 0; 
     
    738763                                61D517720AE0402E00A671E1 /* CommonUtils.c */, 
    739764                                6116E74E0B4738CE0020F1CE /* CodecIDs.h */, 
     765                                3D211A210B6B1A660051299D /* Categories.h */, 
     766                                3D211A220B6B1A660051299D /* Categories.m */, 
    740767                        ); 
    741768                        name = Source; 
     
    837864                        isa = PBXGroup; 
    838865                        children = ( 
     866                                3D211A2E0B6B1AD80051299D /* SSATagParsing.h */, 
     867                                3D211A2F0B6B1AD80051299D /* SSATagParsing.m.rl */, 
     868                                3D211A1E0B6B1A540051299D /* SSADocument.h */, 
     869                                3D211A1F0B6B1A540051299D /* SSADocument.m */, 
    839870                                613CD51A0AD1FB650098A825 /* TextSubCodec.c */, 
    840871                                613CD51B0AD1FB650098A825 /* TextSubCodec.h */, 
     
    11721203                        ); 
    11731204                        buildRules = ( 
     1205                                3D211A2D0B6B1A880051299D /* PBXBuildRule */, 
    11741206                        ); 
    11751207                        dependencies = ( 
     
    13341366                                11A70AD90A3D0149002058D4 /* FFusion.icns in Resources */, 
    13351367                                11C85FE70A64315500DF3D73 /* Perian-Info.plist in Resources */, 
     1368                                3D211A300B6B1AD80051299D /* SSATagParsing.m.rl in Resources */, 
    13361369                        ); 
    13371370                        runOnlyForDeploymentPostprocessing = 0; 
     
    14771510                                F52286260B50625E00F8CF7D /* bitstream_info.c in Sources */, 
    14781511                                3D4A7A990B5533BC004C5D6A /* ColorConversions.c in Sources */, 
     1512                                3D211A200B6B1A540051299D /* SSADocument.m in Sources */, 
     1513                                3D211A230B6B1A660051299D /* Categories.m in Sources */, 
    14791514                        ); 
    14801515                        runOnlyForDeploymentPostprocessing = 0; 
  • trunk/SubImport.c

    r298 r310  
    5858 
    5959Track CreatePlaintextSubTrack(Movie theMovie, ImageDescriptionHandle imgDesc,  
    60                               TimeScale timescale, Handle dataRef, OSType dataRefType
     60                              TimeScale timescale, Handle dataRef, OSType dataRefType, FourCharCode subType
    6161{ 
    6262        Rect movieBox; 
     
    7171 
    7272        (*imgDesc)->idSize = sizeof(ImageDescription); 
    73         (*imgDesc)->cType = kSubFormatUTF8
     73        (*imgDesc)->cType = subType
    7474        (*imgDesc)->width = FixedToInt(trackWidth); 
    7575        (*imgDesc)->height = FixedToInt(trackHeight); 
     
    9191        return theTrack; 
    9292} 
     93 
     94extern ComponentResult LoadSubStationAlphaSubtitles(const FSRef *theDirectory, CFStringRef filename, Movie theMovie, Track *firstSubTrack); 
    9395 
    9496ComponentResult LoadSubRipSubtitles(const FSRef *theDirectory, CFStringRef filename, Movie theMovie, Track *firstSubTrack) 
     
    138140 
    139141        // millisecond accuracy 
    140         theTrack = CreatePlaintextSubTrack(theMovie, textDesc, 1000, dataRef, dataRefType); 
     142        theTrack = CreatePlaintextSubTrack(theMovie, textDesc, 1000, dataRef, dataRefType, kSubFormatUTF8); 
    141143        if (theTrack == NULL) { 
    142144                err = GetMoviesError(); 
     
    294296                        if (actRange.location == extRange.location) 
    295297                                LoadSubRipSubtitles(&parentDir, cfFoundFilename, theMovie, &firstSubTrack); 
     298                         
     299                        actRange = CFStringFind(cfFoundFilename, CFSTR(".ass"), kCFCompareCaseInsensitive | kCFCompareBackwards); 
     300                        if (actRange.location == extRange.location) 
     301                                LoadSubStationAlphaSubtitles(&parentDir, cfFoundFilename, theMovie, &firstSubTrack); 
    296302 
    297303                        // VobSub 
  • trunk/SubImport.h

    r218 r310  
    2222 
    2323Track CreatePlaintextSubTrack(Movie theMovie, ImageDescriptionHandle imgDesc,  
    24                               TimeScale timescale, Handle dataRef, OSType dataRefType); 
     24                              TimeScale timescale, Handle dataRef, OSType dataRefType, FourCharCode subType); 
    2525 
    2626#ifdef __cplusplus