Changeset 923

Show
Ignore:
Timestamp:
08/02/08 16:24:20 (4 months ago)
Author:
astrange
Message:

Merge trunk to the branch.
Disable ssse3 qpel stuff (https://roundup.mplayerhq.hu/roundup/ffmpeg/issue463)

Files:

Legend:

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

    • Property svn:externals changed from
      ffmpeg -r 13239 svn://svn.mplayerhq.hu/ffmpeg/trunk
      libebml -r 1306 https://services.corecodec.com/svn/matroska/trunk/libebml
      libmatroska -r 1306 https://services.corecodec.com/svn/matroska/trunk/libmatroska
      a52codec -r 64 http://svn.cod3r.com/a52codec/trunk
      to
      ffmpeg -r 14508 svn://svn.mplayerhq.hu/ffmpeg/trunk
      libebml -r 1306 https://services.corecodec.com/svn/matroska/trunk/libebml
      libmatroska -r 1306 https://services.corecodec.com/svn/matroska/trunk/libmatroska
      a52codec -r 64 http://svn.cod3r.com/a52codec/trunk

  • branches/perian-1.1/CPFPerianPrefPaneController.h

    r685 r923  
    5656        IBOutlet NSButton                                       *button_install; 
    5757        IBOutlet NSTextField                            *textField_installStatus; 
    58         IBOutlet NSProgressIndicator            *progress_install; 
    5958         
    6059        IBOutlet NSTextField                            *textField_currentVersion; 
     60        IBOutlet NSTextField                            *textField_updateStatus; 
    6161        IBOutlet NSButton                                       *button_updateCheck; 
    62         IBOutlet NSProgressIndicator            *progress_updateCheck; 
    6362        IBOutlet NSButton                                       *button_autoUpdateCheck; 
    6463         
  • branches/perian-1.1/CPFPerianPrefPaneController.m

    r904 r923  
    403403 
    404404- (void) dealloc { 
     405        [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:UPDATE_STATUS_NOTIFICATION object:nil]; 
    405406        [perianForumURL release]; 
    406407        [perianDonateURL release]; 
     
    657658                auth = nil; 
    658659         
    659         int tag = 0; 
    660660        componentPath = [[self quickTimeComponentDir:userInstalled] stringByAppendingPathComponent:@"Perian.component"]; 
    661661        if(auth != nil && !userInstalled) 
     
    688688- (IBAction)installUninstall:(id)sender 
    689689{ 
    690         [progress_install startAnimation:sender]; 
    691690        if(installStatus == InstallStatusInstalled) 
    692691                [NSThread detachNewThreadSelector:@selector(uninstall:) toTarget:self withObject:nil]; 
     
    697696- (void)installComplete:(id)sender 
    698697{ 
    699         [progress_install stopAnimation:sender]; 
    700698        [self checkForInstallation]; 
    701699} 
     
    779777 
    780778#pragma mark Check Updates 
     779- (void)updateCheckStatusChanged:(NSNotification*)notification 
     780{ 
     781        NSString *status = [notification object]; 
     782         
     783        //FIXME localize these 
     784        if ([status isEqualToString:@"Starting"]) { 
     785                [textField_updateStatus setStringValue:@"Checking..."]; 
     786        } else if ([status isEqualToString:@"Error"]) { 
     787                [textField_updateStatus setStringValue:@"Couldn't reach the update server."]; 
     788        } else if ([status isEqualToString:@"NoUpdates"]) { 
     789                [textField_updateStatus setStringValue:@"There are no updates."]; 
     790        } else if ([status isEqualToString:@"NoUpdates"]) { 
     791                [textField_updateStatus setStringValue:@"Updates found!"]; 
     792        } 
     793} 
     794 
    781795- (IBAction)updateCheck:(id)sender  
    782796{ 
    783797        FSRef updateCheckRef; 
    784798         
     799        [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:UPDATE_STATUS_NOTIFICATION object:nil]; 
     800        [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(updateCheckStatusChanged:) name:UPDATE_STATUS_NOTIFICATION object:nil]; 
    785801        CFPreferencesSetAppValue((CFStringRef)NEXT_RUN_KEY, NULL, perianAppID); 
    786802        CFPreferencesSetAppValue((CFStringRef)MANUAL_RUN_KEY, [NSNumber numberWithBool:YES], perianAppID); 
     
    800816        else 
    801817                CFPreferencesSetAppValue(key, [NSDate distantFuture], perianAppID); 
     818     
     819    CFPreferencesAppSynchronize(perianAppID); 
    802820}  
    803821 
     
    901919{        
    902920        [self setKey:ExternalSubtitlesKey forAppID:perianAppID fromBool:(BOOL)[sender state]]; 
     921    CFPreferencesAppSynchronize(perianAppID); 
    903922} 
    904923 
  • branches/perian-1.1/CodecIDs.h

    r681 r923  
    9393        kAudioFormatRealLossless                = 'RALF', 
    9494        kAudioFormatRealAtrac3                  = 'ATRC', 
     95        kAudioFormatNellymoser                                  = 'NELL', 
    9596         
    9697        kSubFormatUTF8                          = 'SRT ', 
  • branches/perian-1.1/FFissionCodec/FFissionCodec.r

    r636 r923  
    9898#define kComponentInfo                                  "An AudioCodec that decodes DCA Audio into linear PCM" 
    9999#include "XCAResources.r" 
     100 
     101#define kPrimaryResourceID                              146 
     102#define kComponentType                                  'adec' 
     103#define kComponentSubtype                               kAudioFormatNellymoser 
     104#define kComponentName                                  "Nellymoser ASAO" 
     105#define kComponentInfo                                  "An AudioCodec that decodes Nellymoser ASAO into linear PCM" 
     106#include "XCAResources.r" 
  • branches/perian-1.1/FFissionCodec/FFissionDecoder.cpp

    r690 r923  
    4848        { kAudioFormatTTA, CODEC_ID_TTA }, 
    4949        { kAudioFormatDTS, CODEC_ID_DTS }, 
     50        { kAudioFormatNellymoser, CODEC_ID_NELLYMOSER }, 
    5051        { 0, CODEC_ID_NONE } 
    5152}; 
  • branches/perian-1.1/FFusionCodec.c

    r887 r923  
    162162 
    163163extern void init_FFmpeg(); 
    164 extern CFMutableStringRef GetHomeDirectory(); 
     164extern CFMutableStringRef CopyHomeDirectory(); 
    165165 
    166166#define FFusionDebugPrint(x...) if (glob->fileLog) Codecprintf(glob->fileLog, x); 
     
    194194} 
    195195 
     196Boolean FFusionAlreadyRanUpdateCheck = 0; 
     197 
    196198void FFusionRunUpdateCheck() 
    197199{ 
     200        if (FFusionAlreadyRanUpdateCheck) return; 
     201 
    198202    CFDateRef lastRunDate = CFPreferencesCopyAppValue(CFSTR("NextRunDate"), CFSTR("org.perian.Perian")); 
    199203    CFAbsoluteTime now = CFAbsoluteTimeGetCurrent(); 
    200204     
    201         if (lastRunDate != nil && CFDateGetAbsoluteTime(lastRunDate) > now) 
    202         return; 
    203  
    204     if(lastRunDate != nil) 
    205         CFRelease(lastRunDate); 
     205        FFusionAlreadyRanUpdateCheck = 1; 
     206         
     207        if (lastRunDate) { 
     208                Boolean exit = CFDateGetAbsoluteTime(lastRunDate) > now; 
     209                CFRelease(lastRunDate); 
     210                if (exit) return; 
     211        } 
    206212     
    207213    //Two places to check, home dir and / 
    208214     
    209     CFMutableStringRef location = GetHomeDirectory(); 
     215    CFMutableStringRef location = CopyHomeDirectory(); 
    210216    CFStringAppend(location, CFSTR("/Library/PreferencePanes/Perian.prefPane/Contents/Resources/PerianUpdateChecker.app")); 
    211217     
     
    522528        Handle imgDescExt; 
    523529        OSErr err = noErr; 
     530        enum PixelFormat pixelFormat = PIX_FMT_NONE; 
    524531         
    525532    // We first open libavcodec library and the codec corresponding 
     
    771778                        err = featureUnsupported; 
    772779                 
     780                // this format doesn't have enough information in its headers 
     781                // we have to decode the first frame 
     782                if (glob->avContext->pix_fmt == PIX_FMT_NONE && p->bufferSize) { 
     783                        AVFrame temp; 
     784                        int got_picture; 
     785                        avcodec_open(glob->avContext, glob->avCodec); 
     786                        avcodec_decode_video(glob->avContext, &temp,  
     787                                                                 &got_picture, (UInt8*)p->data, p->bufferSize); 
     788                         
     789                        avcodec_close(glob->avContext); 
     790                        pixelFormat = glob->avContext->pix_fmt; 
     791                } 
     792                 
    773793                // some hooks into ffmpeg's buffer allocation to get frames in  
    774794                // decode order without delay more easily 
     
    789809        } 
    790810                 
     811                if (pixelFormat == PIX_FMT_NONE) 
     812                        pixelFormat = glob->avContext->pix_fmt; 
    791813    } 
    792814     
     
    827849         
    828850        if (!err) { 
    829         switch (glob->avContext->pix_fmt) 
     851        switch (pixelFormat) 
    830852        { 
    831853                case PIX_FMT_BGR24: 
     
    17011723        {             
    17021724            got_picture = 0; 
    1703             len = 1; 
    17041725                        Codecprintf(glob->fileLog, "Error while decoding frame\n"); 
    17051726             
  • branches/perian-1.1/GBPerianPanePListGenerator.m

    r378 r923  
    5353        [plist setObject:components forKey:ComponentInfoDictionaryKey]; 
    5454        [plist writeToFile:[NSString stringWithUTF8String:argv[3]] atomically:YES]; 
     55    [plist release]; 
    5556        [pool release]; 
    5657         
  • branches/perian-1.1/Patches/ffmpeg-h264dsp-crash.diff

    r879 r923  
    11Index: ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c 
    22=================================================================== 
    3 --- ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c  (revision 13183
     3--- ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c  (revision 14508
    44+++ ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c  (working copy) 
    55@@ -185,8 +185,12 @@ 
     
    1616         "pxor   %%mm7, %%mm7        \n\t" 
    1717         "movd %5, %%mm2             \n\t" 
     18Index: ffmpeg/libavcodec/i386/dsputil_mmx.c 
     19=================================================================== 
     20--- ffmpeg/libavcodec/i386/dsputil_mmx.c        (revision 14508) 
     21+++ ffmpeg/libavcodec/i386/dsputil_mmx.c        (working copy) 
     22@@ -2626,6 +2626,8 @@ 
     23             H264_QPEL_FUNCS(3, 2, sse2); 
     24             H264_QPEL_FUNCS(3, 3, sse2); 
     25         } 
     26+#undef  H264_QPEL_FUNCS 
     27+#define H264_QPEL_FUNCS(x, y, CPU)  
     28 #ifdef HAVE_SSSE3 
     29         if(mm_flags & MM_SSSE3){ 
     30             H264_QPEL_FUNCS(1, 0, ssse3); 
    1831Index: ffmpeg/libavcodec/i386/h264dsp_mmx.c 
    1932=================================================================== 
    20 --- ffmpeg/libavcodec/i386/h264dsp_mmx.c        (revision 13183
     33--- ffmpeg/libavcodec/i386/h264dsp_mmx.c        (revision 14508
    2134+++ ffmpeg/libavcodec/i386/h264dsp_mmx.c        (working copy) 
    22 @@ -1912,6 +1912,7 @@ 
     35@@ -1922,6 +1922,7 @@ 
    2336 #define H264_CHROMA_OP4(S,D,T) 
    2437 #define H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_mmx 
     
    2841 #define H264_CHROMA_MC8_MV0 put_pixels8_mmx 
    2942 #include "dsputil_h264_template_mmx.c" 
    30 @@ -1929,6 +1930,7 @@ 
     43@@ -1939,6 +1940,7 @@ 
    3144 #undef H264_CHROMA_OP4 
    3245 #undef H264_CHROMA_MC8_TMPL 
     
    3649 #undef H264_CHROMA_MC8_MV0 
    3750  
    38 @@ -1937,6 +1939,7 @@ 
     51@@ -1947,6 +1949,7 @@ 
    3952                                "pavgb " #T ", " #D " \n\t" 
    4053 #define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_mmx2 
     
    4659Index: ffmpeg/libavcodec/dsputil.c 
    4760=================================================================== 
    48 --- ffmpeg/libavcodec/dsputil.c (revision 13183
     61--- ffmpeg/libavcodec/dsputil.c (revision 14508
    4962+++ ffmpeg/libavcodec/dsputil.c (working copy) 
    5063@@ -1592,7 +1592,7 @@ 
  • branches/perian-1.1/Perian.xcodeproj/project.pbxproj

    r888 r923  
    4848                        buildConfigurationList = F5CFD2EA0B5012E800616865 /* Build configuration list for PBXAggregateTarget "A52Codec" */; 
    4949                        buildPhases = ( 
     50                                3D79C0540DFBA1FF00EEFE22 /* ShellScript */, 
    5051                                F5CFD2E00B5012BC00616865 /* CopyFiles */, 
    5152                                F5CFD2E30B5012DB00616865 /* CopyFiles */, 
     
    111112                3D41BEB40BCD3B510069E7C2 /* libuniversaldetector.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D41BE9A0BCD3B330069E7C2 /* libuniversaldetector.a */; }; 
    112113                3D4A7A990B5533BC004C5D6A /* ColorConversions.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D4A7A980B5533BC004C5D6A /* ColorConversions.c */; settings = {COMPILER_FLAGS = "-O3 -fweb -fno-reorder-blocks -fomit-frame-pointer"; }; }; 
    113                 3DAD32DA0B6DB26100DA0A72 /* StdIOCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61CB114D0ACDF3C2007994BD /* StdIOCallback.cpp */; }; 
     114                3D95B9010E208965007C8F51 /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D95B9000E208965007C8F51 /* libbz2.dylib */; }; 
     115                3D95B9020E20896F007C8F51 /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D95B9000E208965007C8F51 /* libbz2.dylib */; }; 
    114116                3DB2BB290B6C92F000416863 /* SubATSUIRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DB2BB280B6C92F000416863 /* SubATSUIRenderer.m */; }; 
    115117                6116E5510B43C27B0020F1CE /* ACBaseCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6116E5370B43C27B0020F1CE /* ACBaseCodec.cpp */; }; 
     
    453455                1162A0530B51ECE1006591C8 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; }; 
    454456                116C42520B5041BD00FB0738 /* PerianUpdateChecker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PerianUpdateChecker.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
    455                 116C42540B5041BD00FB0738 /* PerianUpdateChecker-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = "PerianUpdateChecker-Info.plist"; path = "Plists/PerianUpdateChecker-Info.plist"; sourceTree = "<group>"; }; 
     457                116C42540B5041BD00FB0738 /* PerianUpdateChecker-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "PerianUpdateChecker-Info.plist"; path = "Plists/PerianUpdateChecker-Info.plist"; sourceTree = "<group>"; }; 
    456458                116C42650B50426700FB0738 /* UpdateCheckerAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UpdateCheckerAppDelegate.h; sourceTree = "<group>"; }; 
    457459                116C42660B50426700FB0738 /* UpdateCheckerAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UpdateCheckerAppDelegate.m; sourceTree = "<group>"; }; 
     
    469471                1184A38B0B505A9800C8452A /* SUStatusController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUStatusController.h; sourceTree = "<group>"; }; 
    470472                1184A38C0B505A9800C8452A /* SUStatusController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUStatusController.m; sourceTree = "<group>"; }; 
    471                 11A709DA0A3CFCB6002058D4 /* Perian-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = "Perian-Info.plist"; path = "Plists/Perian-Info.plist"; sourceTree = "<group>"; }; 
     473                11A709DA0A3CFCB6002058D4 /* Perian-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Perian-Info.plist"; path = "Plists/Perian-Info.plist"; sourceTree = "<group>"; }; 
    472474                11A70AC10A3D0105002058D4 /* Perian.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Perian.component; sourceTree = BUILT_PRODUCTS_DIR; }; 
    473475                11BEFB2C0C18E23E00BC9324 /* Read Me.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = "Read Me.rtf"; path = "Release/Read Me.rtf"; sourceTree = "<group>"; }; 
     
    496498                3D4A7A970B5533BC004C5D6A /* ColorConversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorConversions.h; sourceTree = "<group>"; }; 
    497499                3D4A7A980B5533BC004C5D6A /* ColorConversions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ColorConversions.c; sourceTree = "<group>"; }; 
     500                3D95B9000E208965007C8F51 /* libbz2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbz2.dylib; path = /usr/lib/libbz2.dylib; sourceTree = "<absolute>"; }; 
    498501                3DB2BB270B6C92F000416863 /* SubATSUIRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SubATSUIRenderer.h; path = Subtitles/SubATSUIRenderer.h; sourceTree = "<group>"; }; 
    499502                3DB2BB280B6C92F000416863 /* SubATSUIRenderer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SubATSUIRenderer.m; path = Subtitles/SubATSUIRenderer.m; sourceTree = "<group>"; }; 
     
    655658                61FD41320B4F6F0800BEEFEA /* MatroskaImportPrivate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MatroskaImportPrivate.cpp; sourceTree = "<group>"; }; 
    656659                83D1D6C80B4C794700E09EC9 /* Perian.prefPane */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Perian.prefPane; sourceTree = BUILT_PRODUCTS_DIR; }; 
    657                 83D1D6C90B4C794800E09EC9 /* PerianPane-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = "PerianPane-Info.plist"; path = "Plists/PerianPane-Info.plist"; sourceTree = "<group>"; }; 
     660                83D1D6C90B4C794800E09EC9 /* PerianPane-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "PerianPane-Info.plist"; path = "Plists/PerianPane-Info.plist"; sourceTree = "<group>"; }; 
    658661                83D1D6CE0B4C7AC400E09EC9 /* PreferencePanes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PreferencePanes.framework; path = /System/Library/Frameworks/PreferencePanes.framework; sourceTree = "<absolute>"; }; 
    659662                83D1D6DD0B4C7F8300E09EC9 /* PerianPrefPane.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = PerianPrefPane.nib; sourceTree = "<group>"; }; 
     
    710713                                3D211A1D0B6B18880051299D /* Foundation.framework in Frameworks */, 
    711714                                3D41BEB40BCD3B510069E7C2 /* libuniversaldetector.a in Frameworks */, 
     715                                3D95B9020E20896F007C8F51 /* libbz2.dylib in Frameworks */, 
    712716                        ); 
    713717                        runOnlyForDeploymentPostprocessing = 0; 
     
    734738                                F53E18E50B4F483C003A0471 /* Security.framework in Frameworks */, 
    735739                                F57755F50B51EB1800C7D833 /* CoreFoundation.framework in Frameworks */, 
     740                                3D95B9010E208965007C8F51 /* libbz2.dylib in Frameworks */, 
    736741                        ); 
    737742                        runOnlyForDeploymentPostprocessing = 0; 
     
    766771                        isa = PBXGroup; 
    767772                        children = ( 
     773                                3D95B9000E208965007C8F51 /* libbz2.dylib */, 
    768774                                F539CD110B62BC82005A72C9 /* Foundation.framework */, 
    769775                                1162A0530B51ECE1006591C8 /* WebKit.framework */, 
     
    15391545                        shellScript = "# Xcode auto-versioning script for Subversion\n# by Axel Andersson, modified by Daniel Jalkut to add\n# \"--revision HEAD\" to the svn info line, which allows\n# the latest revision to always be used.\n\n# further modified by Augie Fackler to be gross and sh-based in places\n# so that you can have svn installed anywhere\nPATH=$PATH:/usr/local/bin:/usr/bin:/sw/bin:/opt/local/bin\nffmpeg_rev=`cat \"$SYMROOT/Universal/buildid\"`\nREV=`svnversion -n ./`\necho $REV\n\necho | perl <<EOF\nuse strict;\ndie \"\\$0: Must be run from Xcode\" unless \\$ENV{\"BUILT_PRODUCTS_DIR\"};\n\nmy \\$INFO = \"\\$ENV{BUILT_PRODUCTS_DIR}/\\$ENV{WRAPPER_NAME}/Contents/Info.plist\";\n\nmy \\$version = \"$REV\";\n\n# (Match the last group of digits and optional letter M/S):\n\n# ugly yet functional (barely) regex by Daniel Jalkut:\n#$version =~ s/([\\d]*:)(\\d+[M|S]*).*/$2/;\n\n# better yet still functional regex via Kevin \"Regex Nerd\" Ballard\n(\\$version =~ m/\\d+[MS]*\\$/) && (\\$version = \\$&);\n\nopen(FH, \"\\$INFO\") or die \"\\$0: \\$INFO: $!\";\nmy \\$info = join(\"\", <FH>);\nclose(FH);\n\n#\\$info =~ s/([\\t ]+<key>CFBundleVersion<\\/key>\\n[\\t ]+<string>).*?(<\\/string>)/\\$1\\$version\\$2/;\n\\$info =~ s/SVNREVISION/\\$version/;\n\\$info =~ s/FFMPEGREVISION/$ffmpeg_rev/;\n\nopen(FH, \">\\$INFO\") or die \"\\$0: \\$INFO: \\$!\";\nprint FH \\$info;\nclose(FH);\nEOF\n"; 
    15401546                }; 
     1547                3D79C0540DFBA1FF00EEFE22 /* ShellScript */ = { 
     1548                        isa = PBXShellScriptBuildPhase; 
     1549                        buildActionMask = 2147483647; 
     1550                        files = ( 
     1551                        ); 
     1552                        inputPaths = ( 
     1553                        ); 
     1554                        outputPaths = ( 
     1555                        ); 
     1556                        runOnlyForDeploymentPostprocessing = 0; 
     1557                        shellPath = /bin/sh; 
     1558                        shellScript = "pushd a52codec/build\nln -s Deployment+Debug Development || true\nln -s Development Deployment || true\nln -s Deployment Deployment+Debug || true\npopd"; 
     1559                }; 
    15411560                F535FCD50B4D605900F00D14 /* ShellScript */ = { 
    15421561                        isa = PBXShellScriptBuildPhase; 
     
    16291648                                3D211A230B6B1A660051299D /* SubUtilities.m in Sources */, 
    16301649                                3DB2BB290B6C92F000416863 /* SubATSUIRenderer.m in Sources */, 
    1631                                 3DAD32DA0B6DB26100DA0A72 /* StdIOCallback.cpp in Sources */, 
    16321650                                6156986F0BCDA87700E17ADE /* ringbuffer.cpp in Sources */, 
    16331651                                F57676060BE1A18300B2434B /* FrameBuffer.c in Sources */, 
     
    18671885                                GCC_PRECOMPILE_PREFIX_HEADER = YES; 
    18681886                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 
    1869                                 GCC_PREPROCESSOR_DEFINITIONS = DEBUG_BUILD; 
    18701887                                GCC_WARN_ABOUT_RETURN_TYPE = YES; 
    18711888                                GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; 
     
    19551972                                GCC_ALTIVEC_EXTENSIONS = YES; 
    19561973                                GCC_MODEL_TUNING = G5; 
     1974                                GCC_PREPROCESSOR_DEFINITIONS = DEBUG_BUILD; 
    19571975                                OTHER_LDFLAGS = ( 
    19581976                                        "-read_only_relocs", 
  • branches/perian-1.1/Release/Artwork/periantranslations.rtf

    r717 r923  
    1 {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf42
    2 {\fonttbl\f0\fnil\fcharset77 LucidaGrande;\f1\fnil\fcharset102 STHeiti;\f2\fnil\fcharset78 HiraMaruPro-W4; 
     1{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf33
     2{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset134 STHeiti;\f2\fnil\fcharset128 HiraMaruPro-W4; 
    33} 
    44{\colortbl;\red255\green255\blue255;} 
     
    88\f0\fs26 \cf0 Double-click Perian.prefPane to begin\ 
    99Dubbelklik op Perian.prefPane om te beginnen\ 
    10 Double-clique sur le Perian.prefPane \'88 commencer\ 
     10Double-cliquez sur Perian.prefPane pour commencer\ 
    1111Doppelklick auf Perian.prefPane um zu beginnen\ 
    1212Doppio clica su Perian.prefPane per cominciare\ 
    1313Haga doble clic Perian.prefPane para empezar\ 
    14 D\'90 um clique duplo Perian.prefpane come\'8dar\ 
     14D\'ea um clique duplo Perian.prefpane come\'e7ar\ 
    1515 
    16 \f1 \'cb\'ab\'bb\'f7  
    17 \f0 Perian.prefPane 
    18 \f1  \'bf\'aa\'ca\'bc\ 
     16\f1\b \'cb\'ab\'bb\'f7  
     17\f0\b0 Perian.prefPane 
     18\f1\b  \'bf\'aa\'ca\'bc\ 
    1919 
    20 \f0 \uc0\u1044 \u1074 \u1086 \u1081 \u1085 \u1086 \u1081  \u1097 \u1077 \u1083 \u1095 \u1086 \u1082  Perian.prefPane, \u1095 \u1090 \u1086 \u1073 \u1099  \u1085 \u1072 \u1095 \u1072 \u1090 \u1100 \u1089 \u1103 \ 
     20\f0\b0 \uc0\u1044 \u1074 \u1086 \u1081 \u1085 \u1086 \u1081  \u1097 \u1077 \u1083 \u1095 \u1086 \u1082  Perian.prefPane, \u1095 \u1090 \u1086 \u1073 \u1099  \u1085 \u1072 \u1095 \u1072 \u1090 \u1100 \u1089 \u1103 \ 
    2121 
    2222\f2 \'8e\'6e\'82\'df\'82\'e9\'82\'c9\'82\'cd 
  • branches/perian-1.1/Subtitles/SubATSUIRenderer.m

    r902 r923  
    350350-(void*)completedStyleParsing:(SubStyle*)s 
    351351{ 
    352         const ATSUAttributeTag tags[] = {kATSUStyleRenderingOptionsTag, kATSUSizeTag, kATSUQDBoldfaceTag, kATSUQDItalicTag, kATSUQDUnderlineTag, kATSUStyleStrikeThroughTag, kATSUFontTag}; 
    353         const ByteCount          sizes[] = {sizeof(ATSStyleRenderingOptions), sizeof(Fixed), sizeof(Boolean), sizeof(Boolean), sizeof(Boolean), sizeof(Boolean), sizeof(ATSUFontID)}; 
    354          
    355         ATSUFontID font = GetFontIDForSSAName(s->fontname); 
     352        const ATSUAttributeTag tags[] = {kATSUStyleRenderingOptionsTag, kATSUSizeTag, kATSUQDBoldfaceTag, kATSUQDItalicTag, kATSUQDUnderlineTag, kATSUStyleStrikeThroughTag, kATSUFontTag, kATSUVerticalCharacterTag}; 
     353        const ByteCount          sizes[] = {sizeof(ATSStyleRenderingOptions), sizeof(Fixed), sizeof(Boolean), sizeof(Boolean), sizeof(Boolean), sizeof(Boolean), sizeof(ATSUFontID), sizeof(ATSUVerticalCharacterType)}; 
     354         
     355        NSString *fn = s->fontname; 
     356        ATSUVerticalCharacterType vertical = ParseFontVerticality(&fn) ? kATSUStronglyVertical : kATSUStronglyHorizontal; 
     357        ATSUFontID font = GetFontIDForSSAName(fn); 
    356358        ATSFontRef fontRef = font; 
    357359        ATSStyleRenderingOptions opt = kATSStyleApplyAntiAliasing; 
     
    360362        ATSUStyle style; 
    361363                 
    362         const ATSUAttributeValuePtr vals[] = {&opt, &size, &b, &i, &u, &st, &font}; 
     364        const ATSUAttributeValuePtr vals[] = {&opt, &size, &b, &i, &u, &st, &font, &vertical}; 
    363365         
    364366        if (!s->platformSizeScale) s->platformSizeScale = GetWinFontSizeScale(fontRef); 
     
    462464                        sv(); 
    463465                        { 
     466                                ATSUVerticalCharacterType vertical = ParseFontVerticality(&sval) ? kATSUStronglyVertical : kATSUStronglyHorizontal; 
    464467                                ATSUFontID font = GetFontIDForSSAName(sval); 
    465468                                 
    466                                 if (font) SetATSUStyleOther(spanEx->style, kATSUFontTag, sizeof(ATSUFontID), &font); 
     469                                if (font) { 
     470                                        SetATSUStyleFlag(spanEx->style, kATSUVerticalCharacterTag, vertical); 
     471                                        SetATSUStyleOther(spanEx->style, kATSUFontTag, sizeof(ATSUFontID), &font); 
     472                                } 
    467473                        } 
    468474                        break; 
  • branches/perian-1.1/Subtitles/SubContext.h

    r887 r923  
    5555 
    5656extern UInt8 SSA2ASSAlignment(UInt8 a); 
    57 void ParseASSAlignment(UInt8 a, UInt8 *alignH, UInt8 *alignV); 
     57extern void ParseASSAlignment(UInt8 a, UInt8 *alignH, UInt8 *alignV); 
    5858extern SubRGBAColor ParseSSAColor(unsigned rgb); 
     59extern BOOL ParseFontVerticality(NSString **fontname); 
  • branches/perian-1.1/Subtitles/SubContext.m

    r893 r923  
    6262                case 3: case 6: case 9: *alignH = kSubAlignmentRight; break; 
    6363        } 
     64} 
     65 
     66BOOL ParseFontVerticality(NSString **fontname) 
     67{ 
     68        if ([*fontname characterAtIndex:0] == '@') { 
     69                *fontname = [*fontname substringFromIndex:1]; 
     70                return YES; 
     71        } 
     72        return NO; 
    6473} 
    6574 
  • branches/perian-1.1/Subtitles/SubImport.mm

    r902 r923  
    10461046{ 
    10471047        priv = [[SubSerializer alloc] init]; 
     1048    CFRetain(priv); 
    10481049} 
    10491050 
    10501051CXXSubSerializer::~CXXSubSerializer() 
    10511052{ 
    1052         if (priv) {[(SubSerializer*)priv release]; priv = NULL;} 
     1053        if (priv) {CFRelease(priv); [(SubSerializer*)priv release]; priv = NULL;} 
    10531054} 
    10541055 
  • branches/perian-1.1/Subtitles/SubUtilities.m

    r887 r923  
    141141} 
    142142 
    143 CFMutableStringRef GetHomeDirectory() 
     143CFMutableStringRef CopyHomeDirectory() 
    144144{ 
    145145        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
  • branches/perian-1.1/Update Checker Sources/NSString+extras.m

    r269 r923  
    8181         
    8282        [componentsCopy removeObjectsInRange: NSMakeRange (ix, len - ix)]; 
     83    [componentsCopy autorelease]; 
    8384 
    8485        return [componentsCopy componentsJoinedByString: @" "]; 
  • branches/perian-1.1/Update Checker Sources/UpdateCheckerAppDelegate.h

    r624 r923  
    1818#define UPDATE_URL_KEY @"UpdateFeedURL" 
    1919#define SKIPPED_VERSION_KEY @"SkippedVersion" 
     20#define UPDATE_STATUS_NOTIFICATION @"org.perian.UpdateCheckStatus" 
    2021#define TIME_INTERVAL_TIL_NEXT_RUN 7*24*60*60 
    2122 
  • branches/perian-1.1/Update Checker Sources/UpdateCheckerAppDelegate.m

    r624 r923  
    3535        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    3636        lastRunDate = [[defaults objectForKey:NEXT_RUN_KEY] retain]; 
    37         if (lastRunDate == nil || [lastRunDate laterDate:[NSDate date]] != lastRunDate) { 
    38                 //this means we should in fact run 
    39                 [defaults setObject:[NSDate dateWithTimeIntervalSinceNow:TIME_INTERVAL_TIL_NEXT_RUN] forKey:NEXT_RUN_KEY]; 
    40                 manualRun = [defaults boolForKey:MANUAL_RUN_KEY]; 
    41                 [defaults removeObjectForKey:MANUAL_RUN_KEY]; 
    42                 [self doUpdateCheck]; 
    43         } else { 
    44                 //another instance was already started and therefore we don't need to do this again 
    45                 [[NSApplication sharedApplication] terminate:self]; 
    46         } 
     37         
     38        [defaults setObject:[NSDate dateWithTimeIntervalSinceNow:TIME_INTERVAL_TIL_NEXT_RUN] forKey:NEXT_RUN_KEY]; 
     39        manualRun = [defaults boolForKey:MANUAL_RUN_KEY]; 
     40        [defaults removeObjectForKey:MANUAL_RUN_KEY]; 
     41        [defaults synchronize]; 
     42        [self doUpdateCheck]; 
    4743} 
    4844 
     
    5652        updateUrlString = [[updateUrlString substringToIndex:[updateUrlString length]-4] stringByAppendingFormat:@"-%@.xml", betaAppcastUrl]; 
    5753#endif 
     54        if(manualRun) 
     55                [[NSDistributedNotificationCenter defaultCenter] postNotificationName:UPDATE_STATUS_NOTIFICATION object:@"Starting"]; 
    5856         
    5957        SUAppcast *appcast = [[SUAppcast alloc] init]; 
     
    8179    NSString *panePath = [[[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] stringByDeletingLastPathComponent] stringByDeletingLastPathComponent]; 
    8280        updateAvailable = (updateAvailable && (SUStandardVersionComparison([latest fileVersion], [[NSBundle bundleWithPath:panePath] objectForInfoDictionaryKey:@"CFBundleVersion"]) == NSOrderedAscending)); 
     81         
     82        if (![panePath isEqualToString:@"Perian.prefPane"]) { 
     83                NSLog(@"The update checker needs to be run from inside the preference pane, quitting..."); 
     84                updateAvailable = 0; 
     85        } 
     86         
    8387        NSString *skippedVersion = [[NSUserDefaults standardUserDefaults] objectForKey:SKIPPED_VERSION_KEY]; 
    8488        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    8589        if (updateAvailable && (!skippedVersion ||  
    8690                (skippedVersion && ![skippedVersion isEqualToString:[latest versionString]]))) { 
     91                if(manualRun) 
     92                        [[NSDistributedNotificationCenter defaultCenter] postNotificationName:UPDATE_STATUS_NOTIFICATION object:@"YesUpdates"]; 
    8793                [self showUpdatePanelForItem:latest]; 
    8894        } else { 
    8995                if(manualRun) 
    90                         NSRunAlertPanel(SULocalizedString(@"No Update Found!", nil), SULocalizedString(@"Your copy of Perian is up to date", nil), nil, nil, nil)
     96                        [[NSDistributedNotificationCenter defaultCenter] postNotificationName:UPDATE_STATUS_NOTIFICATION object:@"NoUpdates"]
    9197                [[NSApplication sharedApplication] terminate:self]; 
    9298        } 
     99     
     100    [appcast release]; 
    93101} 
    94102 
     
    97105        [self updateFailed]; 
    98106        if(manualRun) 
    99                 [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An error occurred while trying to load Perian's version info. Please try again later.", nil)]; 
     107                [[NSDistributedNotificationCenter defaultCenter] postNotificationName:UPDATE_STATUS_NOTIFICATION object:@"Error"]; 
     108    [appcast release]; 
    100109        [[NSApplication sharedApplication] terminate:self];      
    101110} 
  • branches/perian-1.1/Update Checker Sources/main.m

    r887 r923  
    1313#define lockPath "/tmp/PerianUpdateLock" 
    1414 
     15static int fp = -1; 
     16 
     17static void deleteLock() 
     18{ 
     19        close(fp); 
     20        unlink(lockPath); 
     21} 
     22 
    1523int main(int argc, char *argv[]) 
    1624{ 
    17         int fp = open(lockPath, O_CREAT | O_EXCL); 
    18         if(fp = -1) 
     25        fp = open(lockPath, O_CREAT | O_EXCL); 
     26        if(fp == -1) 
    1927        { 
    2028                struct stat lockfile; 
     
    3139        if(fp == -1) 
    3240                return 0; 
     41         
     42        atexit(deleteLock); 
    3343 
    3444        int ret = NSApplicationMain(argc,  (const char **) argv); 
    3545         
    36         unlink(lockPath); 
    37          
    3846        return ret; 
    3947} 
  • branches/perian-1.1/createStaticLibs.sh

    r893 r923  
    2727    generalConfigureOptions="$generalConfigureOptions --disable-decoder=cavs --disable-decoder=vc1 --disable-decoder=wmv3 --disable-mmx --enable-shared" 
    2828fi  
    29          
     29 
     30if [ "$CC" = "" ]; then 
     31        CC="gcc" 
     32        export CC 
     33fi 
     34 
    3035export sdkflags 
    3136 
     
    6873fi 
    6974 
    70 patch -p0 < Patches/ffmpeg-h264dsp-chroma-mc4.diff 
     75patch -p0 < Patches/ffmpeg-h264dsp-crash.diff 
     76patch -p0 < Patches/ffmpeg-forceinline.diff 
    7177touch ffmpeg/patched 
    7278 
     
    106112        if [ "$oldbuildid_ffmpeg" != "quick" ] ; then 
    107113            if [ `arch` = ppc ] ; then 
    108                 "$SRCROOT/ffmpeg/configure" --enable-cross-compile --arch=i386 --extra-ldflags="$sdkflags -arch i386" --extra-cflags="-arch i386 $sdkflags $optCFlags" $extraConfigureOptions $generalConfigureOptions --cpu=pentium-m  
     114                "$SRCROOT/ffmpeg/configure" --cc=$CC --enable-cross-compile --arch=i386 --extra-ldflags="$sdkflags -arch i386" --extra-cflags="-arch i386 $sdkflags $optCFlags" $extraConfigureOptions $generalConfigureOptions --cpu=pentium-m  
    109115            else 
    110                 "$SRCROOT/ffmpeg/configure" --extra-cflags='$sdkflags $optCFlags' $extraConfigureOptions $generalConfigureOptions --cpu=pentium-m 
     116                "$SRCROOT/ffmpeg/configure" --cc=$CC --extra-cflags="$sdkflags $optCFlags" $extraConfigureOptions $generalConfigureOptions --cpu=pentium-m 
    111117            fi 
    112118         
     
    136142        if [ "$oldbuildid_ffmpeg" != "quick" ] ; then 
    137143            if [ `arch` = ppc ] ; then 
    138                 "$SRCROOT/ffmpeg/configure" --extra-cflags='-faltivec $sdkflags $optCFlags' $extraConfigureOptions $generalConfigureOptions 
     144                "$SRCROOT/ffmpeg/configure" --cc=$CC --extra-cflags="-faltivec $sdkflags $optCFlags" $extraConfigureOptions $generalConfigureOptions 
    139145            else 
    140                 "$SRCROOT/ffmpeg/configure" --enable-cross-compile --arch=ppc  --extra-ldflags="$sdkflags -arch ppc" --extra-cflags="-faltivec -arch ppc $sdkflags $optCFlags" $extraConfigureOptions $generalConfigureOptions 
     146                "$SRCROOT/ffmpeg/configure" --cc=$CC --enable-cross-compile --arch=ppc  --extra-ldflags="$sdkflags -arch ppc" --extra-cflags="-faltivec -arch ppc $sdkflags $optCFlags" $extraConfigureOptions $generalConfigureOptions 
    141147            fi 
    142148         
  • branches/perian-1.1/ff_MovieImport.c

    r887 r923  
    118118                REGISTER_DECODER(tta); 
    119119                REGISTER_DECODER(dca); 
     120                REGISTER_DECODER(nellymoser); 
    120121                 
    121122                REGISTER_DECODER(dvdsub); 
  • branches/perian-1.1/ff_private.c

    r900 r923  
    169169        (*imgHdl)->idSize = sizeof(ImageDescription); 
    170170         
    171         if (codec->codec_tag
     171        if (!((*imgHdl)->cType = map_video_codec_to_mov_tag(codec->codec_id))
    172172                (*imgHdl)->cType = BSWAP(codec->codec_tag); 
    173         else 
    174                 // need to lookup the fourcc from the codec_id 
    175                 (*imgHdl)->cType = map_video_codec_to_mov_tag(codec->codec_id); 
    176173//      FourCCprintf("fourcc: ", (*imgHdl)->cType); 
    177174         
     
    389386                case CODEC_ID_TTA: 
    390387                        asbd->mFormatID = kAudioFormatTTA; 
     388                        break; 
     389                case CODEC_ID_NELLYMOSER: 
     390                        asbd->mFormatID = kAudioFormatNellymoser; 
    391391                        break; 
    392392                default: 
     
    11371137                 
    11381138                if(err == noErr) 
    1139                         err = MovieExecuteWiredActions(movie, 0, container); 
     1139                        MovieExecuteWiredActions(movie, 0, container); 
    11401140                 
    11411141                err = QTDisposeAtomContainer(container); 
  • trunk/PerianPrefPane.nib/info.nib

    <