OSDN Git Service

MacGui: HTTP optimized mp4 implementation
authordynaflash <dynaflash@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 14 Dec 2007 16:19:46 +0000 (16:19 +0000)
committerdynaflash <dynaflash@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 14 Dec 2007 16:19:46 +0000 (16:19 +0000)
- New checkbox to enable http optimized mp4's
- Shows/Hides depending on the "format" selection
- Presets use new objectForKey:@"Mp4HttpOptimize"
- Also renamed the outlet for 64 bit mp4's to more descriptive "fDstMp4LargeFileCheck"

git-svn-id: svn://localhost/HandBrake/trunk@1127 b64f7644-9d1e-0410-96f1-a4d463321fa5

macosx/Controller.h
macosx/Controller.mm
macosx/English.lproj/MainMenu.nib/classes.nib
macosx/English.lproj/MainMenu.nib/info.nib
macosx/English.lproj/MainMenu.nib/keyedobjects.nib

index 1d64bc3..b51ca4e 100644 (file)
     /* Destination box */
     IBOutlet NSTextField         * fDstFormatField;
        IBOutlet NSPopUpButton       * fDstFormatPopUp;
-       IBOutlet NSButton            * fDstMpgLargeFileCheck;
-    IBOutlet NSTextField         * fDstCodecsField;
+       IBOutlet NSTextField         * fDstCodecsField;
     IBOutlet NSPopUpButton       * fDstCodecsPopUp;
     IBOutlet NSTextField         * fDstFile1Field;
     IBOutlet NSTextField         * fDstFile2Field;
     IBOutlet NSButton            * fDstBrowseButton;
+    /* MP4 Options */
+    // Creates 64 bit mp4's that allow file sizes over 4gb
+    IBOutlet NSButton            * fDstMp4LargeFileCheck;
+    // Optimizes mp4's for http
+    IBOutlet NSButton            * fDstMp4HttpOptFileCheck;
        
     /* Video box */
     IBOutlet NSTextField         * fVidRateField;
index 921d5a2..c16de3f 100644 (file)
@@ -18,7 +18,6 @@
 
 #define _(a) NSLocalizedString(a,NULL)
 
-
 static int FormatSettings[4][10] =
   { { HB_MUX_MP4 | HB_VCODEC_FFMPEG | HB_ACODEC_FAAC,
          HB_MUX_MP4 | HB_VCODEC_X264   | HB_ACODEC_FAAC,
@@ -390,10 +389,10 @@ static NSString *        ChooseSourceIdentifier             = @"Choose Source It
                fPicLabelAr,fPicLabelDeinterlace,fPicLabelSrcX,fPicLabelOutputX,
                fPicLabelPAROutputX,fPicSettingPARWidth,fPicSettingPARHeight,
                fPicSettingPAR,fPicLabelAnamorphic,fPresetsAdd,fPresetsDelete,
-               fCreateChapterMarkers,fVidTurboPassCheck,fDstMpgLargeFileCheck,fPicLabelAutoCrop,
+               fCreateChapterMarkers,fVidTurboPassCheck,fDstMp4LargeFileCheck,fPicLabelAutoCrop,
                fPicSettingAutoCrop,fPicSettingDetelecine,fPicLabelDetelecine,fPicLabelDenoise,fPicSettingDenoise,
         fSubForcedCheck,fPicSettingDeblock,fPicLabelDeblock,fPresetsOutlineView,fAudDrcSlider,
-        fAudDrcField,fAudDrcLabel};
+        fAudDrcField,fAudDrcLabel,fDstMp4HttpOptFileCheck};
 
     for( unsigned i = 0;
          i < sizeof( controls ) / sizeof( NSControl * ); i++ )
@@ -1397,7 +1396,7 @@ static NSString *        ChooseSourceIdentifier             = @"Choose Source It
         /* We set the largeFileSize (64 bit formatting) variable here to allow for > 4gb files based on the format being
                mpeg4 and the checkbox being checked 
                *Note: this will break compatibility with some target devices like iPod, etc.!!!!*/
-               if ([[NSUserDefaults standardUserDefaults] boolForKey:@"AllowLargeFiles"] > 0 && [fDstMpgLargeFileCheck state] == NSOnState)
+               if ([[NSUserDefaults standardUserDefaults] boolForKey:@"AllowLargeFiles"] > 0 && [fDstMp4LargeFileCheck state] == NSOnState)
                {
                        job->largeFileSize = 1;
                }
@@ -1405,7 +1404,16 @@ static NSString *        ChooseSourceIdentifier             = @"Choose Source It
                {
                        job->largeFileSize = 0;
                }
-       }
+        /* We set http optimized mp4 here */
+        if ([fDstMp4HttpOptFileCheck state] == NSOnState)
+               {
+        job->mp4_optimize = 1;
+        }
+        else
+        {
+        job->mp4_optimize = 0;
+        }
+    }
        if ([fDstFormatPopUp indexOfSelectedItem] == 0 || [fDstFormatPopUp indexOfSelectedItem] == 3)
        {
          /* We set the chapter marker extraction here based on the format being
@@ -2172,7 +2180,9 @@ static NSString *        ChooseSourceIdentifier             = @"Choose Source It
     int format = [fDstFormatPopUp indexOfSelectedItem];
     char * ext = NULL;
        /* Initially set the large file (64 bit formatting) output checkbox to hidden */
-    [fDstMpgLargeFileCheck setHidden: YES];
+    [fDstMp4LargeFileCheck setHidden: YES];
+    [fDstMp4HttpOptFileCheck setHidden: YES];
+    
     /* Update the codecs popup */
     [fDstCodecsPopUp removeAllItems];
     switch( format )
@@ -2194,17 +2204,19 @@ static NSString *        ChooseSourceIdentifier             = @"Choose Source It
                        /* We enable the create chapters checkbox here since we are .mp4*/
                        [fCreateChapterMarkers setEnabled: YES];
                        /* We show the Large File (64 bit formatting) checkbox since we are .mp4 
-                       if we have enabled the option in the global preferences*/
+             if we have enabled the option in the global preferences*/
                        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"AllowLargeFiles"] > 0)
                        {
-                               [fDstMpgLargeFileCheck setHidden: NO];
+                               [fDstMp4LargeFileCheck setHidden: NO];
                        }
-                               else
-                               {
-                                       /* if not enable in global preferences, we additionaly sanity check that the
-                                       hidden checkbox is set to off. */
-                    [fDstMpgLargeFileCheck setState: NSOffState];
-                               }
+            else
+            {
+                /* if not enable in global preferences, we additionaly sanity check that the
+                 hidden checkbox is set to off. */
+                [fDstMp4LargeFileCheck setState: NSOffState];
+            }
+            /* We show the HTTP Optimized checkbox here since we are mp4 */
+            [fDstMp4HttpOptFileCheck setHidden: NO];
             break;
             
         case 1:
@@ -2346,7 +2358,7 @@ static NSString *        ChooseSourceIdentifier             = @"Choose Source It
                        
                }
                /* Make sure the 64bit formatting checkbox is off */
-               [fDstMpgLargeFileCheck setState: NSOffState];
+               [fDstMp4LargeFileCheck setState: NSOffState];
        }
     
        [self calculatePictureSizing: sender];
@@ -3263,7 +3275,9 @@ if (item == nil)
         /* Chapter Markers*/
         [fCreateChapterMarkers setState:[[chosenPreset objectForKey:@"ChapterMarkers"] intValue]];
         /* Allow Mpeg4 64 bit formatting +4GB file sizes */
-        [fDstMpgLargeFileCheck setState:[[chosenPreset objectForKey:@"Mp4LargeFile"] intValue]];
+        [fDstMp4LargeFileCheck setState:[[chosenPreset objectForKey:@"Mp4LargeFile"] intValue]];
+        /* Mux mp4 with http optimization */
+        [fDstMp4HttpOptFileCheck setState:[[chosenPreset objectForKey:@"Mp4HttpOptimize"] intValue]];
         /* Codecs */
         [fDstCodecsPopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"FileCodecs"]]];
         [self codecsPopUpChanged: NULL];
@@ -3623,8 +3637,10 @@ if (item == nil)
        /* Chapter Markers fCreateChapterMarkers*/
        [preset setObject:[NSNumber numberWithInt:[fCreateChapterMarkers state]] forKey:@"ChapterMarkers"];
        /* Allow Mpeg4 64 bit formatting +4GB file sizes */
-       [preset setObject:[NSNumber numberWithInt:[fDstMpgLargeFileCheck state]] forKey:@"Mp4LargeFile"];
-       /* Codecs */
+       [preset setObject:[NSNumber numberWithInt:[fDstMp4LargeFileCheck state]] forKey:@"Mp4LargeFile"];
+    /* Mux mp4 with http optimization */
+    [preset setObject:[NSNumber numberWithInt:[fDstMp4HttpOptFileCheck state]] forKey:@"Mp4HttpOptimize"];
+    /* Codecs */
        [preset setObject:[fDstCodecsPopUp titleOfSelectedItem] forKey:@"FileCodecs"];
        /* Video encoder */
        [preset setObject:[fVidEncoderPopUp titleOfSelectedItem] forKey:@"VideoEncoder"];
index 8ecb1f9..ffb9558 100644 (file)
                                <string>NSTextField</string>
                                <key>fDstFormatPopUp</key>
                                <string>NSPopUpButton</string>
-                               <key>fDstMpgLargeFileCheck</key>
+                               <key>fDstMp4HttpOptFileCheck</key>
+                               <string>NSButton</string>
+                               <key>fDstMp4LargeFileCheck</key>
                                <string>NSButton</string>
                                <key>fOpenSourceTitleMMenu</key>
                                <string>NSMenuItem</string>
index 3605576..2c679cd 100644 (file)
@@ -9,7 +9,9 @@
        <key>IBOldestOS</key>
        <integer>5</integer>
        <key>IBOpenObjects</key>
-       <array/>
+       <array>
+               <integer>2</integer>
+       </array>
        <key>IBSystem Version</key>
        <string>9B18</string>
        <key>targetFramework</key>
index b008240..94a6009 100644 (file)
Binary files a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib and b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib differ