- Adds a vfr checkbox next to the detelecine filter in the Picture Settings Window
- Tuns on detelecine and disables its checkbox
- Sets Framerate in the main window to 29.967 and disables it
- Sets job->vfr = 1 if vfr is checked in -prepareJob
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1052
b64f7644-9d1e-0410-96f1-
a4d463321fa5
job->arate = hb_audio_rates[[fAudRatePopUp
indexOfSelectedItem]].rate;
job->abitrate = [[fAudBitratePopUp selectedItem] tag];
-
+
+ /* set vfr according to the Picture Window */
+ if ([fPictureController vfr])
+ {
+ job->vfr = 1;
+ }
+ else
+ {
+ job->vfr = 0;
+ }
+
/* Filters */
job->filters = hb_list_init();
else {
[fPicSettingDetelecine setStringValue: @"No"];
}
+
+ /* VFR (Variable Frame Rate) */
+ if ([fPictureController vfr]) {
+ /* vfr has to set the framerate to 29.97 (ntsc video)
+ and disable the framerate popup */
+ [fVidRatePopUp selectItemAtIndex: 8];
+ [fVidRatePopUp setEnabled: NO];
+ /* We change the string of the fps popup to warn that vfr is on Framerate (FPS): */
+ [fVidRateField setStringValue: @"Framerate (VFR On):"];
+
+ }
+ else {
+ /* vfr is off, make sure the framerate popup is enabled */
+ [fVidRatePopUp setEnabled: YES];
+ /* and make sure the label for framerate is set to its default */
+ [fVidRateField setStringValue: @"Framerate (FPS):"];
+ }
/* Deinterlace */
if ([fPictureController deinterlace] == 0)
fPicturePanel = NSPanel;
fPrevButton = NSButton;
fRatioCheck = NSButton;
+ fVFRCheck = NSButton;
fWidthField = NSTextField;
fWidthStepper = NSStepper;
};
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
- <string>496 129 356 240 0 0 1440 878 </string>
+ <string>45 380 356 240 0 0 1440 878 </string>
<key>IBFramework Version</key>
<string>446.1</string>
<key>IBOpenObjects</key>
IBOutlet NSStepper * fCropRightStepper;
IBOutlet NSPopUpButton * fDeinterlacePopUp;
IBOutlet NSButton * fDetelecineCheck;
+ IBOutlet NSButton * fVFRCheck;
IBOutlet NSButton * fDeblockCheck;
IBOutlet NSPopUpButton * fDenoisePopUp;
IBOutlet NSButton * fPARCheck;
BOOL keepAspectRatioPreviousState;
struct {
- int detelecine;
+ int detelecine;
+ int vfr;
int deinterlace;
int denoise;
int deblock;
- (int) detelecine;
- (void) setDetelecine: (int) setting;
+- (int) vfr;
+- (void) setVFR: (int) setting;
- (int) deinterlace;
- (void) setDeinterlace: (int) setting;
- (int) denoise;
job->deinterlace = 0;
}
fPictureFilterSettings.denoise = [fDenoisePopUp indexOfSelectedItem];
+ fPictureFilterSettings.vfr = [fVFRCheck state];
+ if (fPictureFilterSettings.vfr > 0)
+ {
+ [fDetelecineCheck setState:NSOnState];
+ [fDetelecineCheck setEnabled: NO];
+ }
+ else
+ {
+ [fDetelecineCheck setEnabled: YES];
+ }
fPictureFilterSettings.detelecine = [fDetelecineCheck state];
fPictureFilterSettings.deblock = [fDeblockCheck state];
job->pixel_ratio = ( [fPARCheck state] == NSOnState );
fPictureFilterSettings.detelecine = setting;
}
+- (int) vfr
+{
+ return fPictureFilterSettings.vfr;
+}
+
+- (void) setVFR: (int) setting
+{
+ fPictureFilterSettings.vfr = setting;
+}
+
- (int) deinterlace
{
return fPictureFilterSettings.deinterlace;